自动使用fgets()测试程序

时间:2012-11-08 16:35:59

标签: c fgets

我目前正在开展类似bash的项目。但是,我需要用几千个测试来测试这个项目,这些测试无法手动检查。这就是我想自动执行测试的原因。

我的程序使用fgets()来获取用户输入。我知道如何直接向程序发送参数,但是当程序启动时,它会显示程序的提示。如何 cat 包含stdin测试的文件,使程序能够解释测试? (并在终端中获取程序输出)。

1 个答案:

答案 0 :(得分:0)

假设您的所有测试输入都存储在名为“test.input”的文件中(每行都是程序的完整输入),您可以在bash中执行以下操作:

export LINE_NO=0
cat test.input | while read LINE; do echo "$LINE" | ./program > results.$LINE_NO;
   LINE_NO=$(($LINE_NO + 1));
done

基本上,对于test.input中的每一行,上面的命令会将它提供给程序并将结果存储在results.0,results.1,results.2等中,其中结果中的数字。 number是test.input文件的行号。

希望这有帮助。