- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是一个反转字符串的简单程序。
void str_reverse(const char*, size_t, char*, size_t);
int main(){
char str[256];
while(fgets(str, 256, stdin)){
if(strncasecmp(str, "quit", 4) == 0) break;
size_t size_reversed = strlen(str) * sizeof(char);
char* reversed = malloc(size_reversed);
str_reverse(str, sizeof(str), reversed, size_reversed);
printf("Orginal String : %s\n", str);
printf("Reversed String : %s\n", reversed);
printf("__________________________________\n");
free(reversed);
}
return 0;
}
void str_reverse(const char* str1, size_t size1, char* str2, size_t size2){
memcpy(str2, str1, size1);
char temp;
size_t len = strlen(str2) - 1;
size_t stop = len/2;
size_t i,k;
for(i = 0, k = len; i < stop; i++, k--)
{
temp = str2[k];
str2[k] = str2[i];
str2[i] = temp;
}
//return str;
}
我正在尝试编写一个 bash 脚本来自动编译和测试该程序。我有以下测试用例:
谁能帮我开始做这件事。谢谢。
最佳答案
我会更改程序以接受要反转的字符串作为命令行参数,然后打印反转后的字符串作为输出。然后,使用 bash 脚本将程序的输出与预期输出进行比较。
int main(int argc, char* argv[]){
if ( argc != 2 )
{
fprintf(stderr, "Expect to see one argument.\n");
return EXIT_FAILURE;
}
char* str = argv[1];
size_t size_reversed = strlen(str) * sizeof(char);
char* reversed = malloc(size_reversed+1);
str_reverse(str, strlen(str), reversed, size_reversed);
printf("%s\n", reversed);
free(reversed);
return EXIT_SUCCESS;
}
和 bash 脚本:
#!/bin/bash
function test_program()
{
in="$1"
expected_out="$2"
out=$(./program "$in")
if [ "$out" != "$expected_out" ]
then
echo "output: $out"
echo "expected output: $expected_out"
echo "Test failed."
else
echo "Test passed"
fi
}
test_program "automate the compilation" "noitalipmoc eht etamotua"
test_program "compilation" "noitalipmoc"
test_program "abcd" "dcba"
关于c - 用于测试程序的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30381881/
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 3 年前。 Improve
我目前正在从事类似bash的项目。但是,我需要使用数千个测试来测试该项目,而这些测试无法手动检查。这就是为什么我想自动执行测试。 我的程序使用fgets()来获取用户输入。我知道如何直接向程序发送参数
我想在 Android 中编写一个原生应用程序进行测试表面抛物线。是否有任何简单的程序显示如何创建Surfaceflinger 上的表面、寄存器缓冲区和后置缓冲区。 最佳答案 frameworks/b
有一个对象依赖于计时来正常运行。不幸的是,计时持续时间本身太长,无法实时对其进行实际测试,并且由于对象的性质,缩短持续时间违背了测试的目的。 测试此类对象的最佳方法是什么?理想情况下,会有一些可以使用
我首先要说的是,我是一名几乎没有 C++ 经验的大学生。你听对了多少次?我正在使用 libnodave 库中的测试程序 testISO_TCP(简化版)。该程序在连接到 seimens 300 PLC
我正在尝试构建一个非常简单的libodbc++程序。最近,我们注意到了一个奇怪的内存泄漏,我们认为这是由于ODBC++和IDS驱动程序之间的某个地方引起的-我正在编写一个测试来证明这一点。 我使用以下
我对 JavaScript 还很陌生,我有一点疑问。 我创建了这个 JSFiddle:https://jsfiddle.net/AndreaNobili/1up938xf/ 我只定义了执行简单求和(无
我用三个类文件在 IntelliJ 中创建了一个 maven 项目: package mavenKris; import org.apache.hadoop.io.Text; import org.a
我下载了包含 freeglut 的“非官方 OpenGL 软件 SDK”,但我似乎无法让它工作。我在 Windows 上。我在 Visual Studio 2010 或 MinGW g++ 上都没有成
我正在尝试使用 std::async 在 C++ 中调用异步函数按照这个官方cplusplus.com示例代码。 不幸的是,编译失败了。运行时 mingw32-make ,我收到以下错误: main.
我是一名优秀的程序员,十分优秀!