我正在编写一些测试,要求调用程序提供不同的错误代码 例如,测试脚本就像
cpu_test.sh
stress --cpu "$cpus" --timeout 30000 --verbose >> "$data"
[ $? -ne 0 ] && pass="fail" && echo "ERROR: CPU stress test has failed"
现在,我不能在单元测试中等待30000秒。因此,我想设定一条假的“压力”的道路。只返回错误代码的二进制文件:
$cat stress
#!/bin/bash
exit 1
但回声$?返回' 0'而不是1,因此我永远无法测试负面的测试用例。
C解决方案是: cat fio.c
#include <stdio.h>
int main()
{
return 1;
}
如何让shell脚本返回所需的错误代码?
答案 0 :(得分:0)
问题在于您测试病情的方式。首先测试最简单的事情:
$ cat stress
#!/bin/bash
exit 1
$ ./stress
$ echo $?
1
你确定你没有意思:
[ $? -ne 0 ] && [ "$pass" == "fail" ] && echo "ERROR: CPU stress test has failed"