2015-10-04 52 views
0

我写,需要调用程序给不同的错误代码的一些测试 例如,测试脚本是喜欢如何让shell脚本返回所需的错误代码?

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,因此我永远无法测试否定的测试用例。

A C的解决办法是: 猫fio.c

#include <stdio.h> 
int main() 
{ 
return 1; 
} 

怎样使一个shell脚本返回所需的错误代码?

回答

0

问题出在您测试条件的方式。首先测试最简单的事情:

$ cat stress 
#!/bin/bash 
exit 1 

$ ./stress 
$ echo $? 
1 

你确定你不是这个意思:

[ $? -ne 0 ] && [ "$pass" == "fail" ] && echo "ERROR: CPU stress test has failed" 
+0

它现在。大声笑 – Victor