2015-10-04 51 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