您如何测试编译后的代码是否返回预期的输出或按预期失败?
我在下面制定了一个工作示例,但它不容易扩展。每个额外的测试都需要额外的嵌套括号。当然我可以把它拆分成其他文件,但是你对如何改进这个有什么建议吗?另外我打算在makefile中使用make test节中的这个,所以我不希望其他人安装默认情况下没有安装的东西,只是为了测试它。并且标准输出也应该与标准错误保持交错。
简化示例:
./testFoo || echo execution failed
./testBar && echo expected failure
(./testBaz && (./testBaz 2>&1 | cmp -s - foo.tst && ( ./testFoo && echo and so on
|| echo testFoo's execution failed )|| echo testBaz's does not match )
|| echo testBaz's execution failed
我当前的测试仪看起来像这样(对于一个测试):
\#!/bin/bash
compiler1 $1 && (compiler2 -E --make $(echo $1 | sed 's/^\(.\)\(.*\)\..*$/\l\1\2/') && (./$(echo $1 | sed 's/^\(.\)\(.*\)\..*$/\l\1\2/') || echo execution failed) || less $(echo $1 | sed 's/^\(.\)\(.*\)\..*$/\l\1\2/').err) || echo compile failed