我正在爲實現應用程序模板的OCaml庫Gasoline編寫自動化測試。應用將失敗,並在某些情況下在規定的退出代碼,如退出代碼64 EXIT_USAGE
當應用程序調用一個不適形成命令行:執行命令並測試其退出狀態的Unix實用程序
% ./punishment.byte -x
punishment.byte: illegal option -- x
Usage: punishment.byte [-n number] [-p paragraph] [-c configfile]
Exit 64
是否有可用於一個標準的Unix工具運行子命令./punishment.byte -x
,如果子命令退出狀態碼64,則退出狀態碼0?像
% expect_status 64 ./punishment.byte -x
punishment.byte: illegal option -- x
Usage: punishment.byte [-n number] [-p paragraph] [-c configfile]
Exit 0
由於我使用一個Makefile來協調測試的東西,一個清晰的語句,如expect_status 64 ./punishment.byte -x
將是不錯的。
注
- 在控制檯交互實施例中的線
Exit
是資料,而不是輸出的一部分。 - 我很清楚,我可以編寫這樣一個工具,以及如何去做,我只是想確保沒有標準命令做到這一點。
我不知道標準實用程序(可能有一個),但shell將最後一個退出代碼存儲在$?中。變量。我想你可以用幾行shell腳本編寫你自己的工具,例如如果[「$?」 -eq「$ expected」]然後退出0 fi。 – bmb 2014-09-30 00:13:16
是的,有一個標準的工具;它被稱爲外殼。 8-)} – 2014-09-30 00:31:46
你可能感興趣的有[GNU Autotest](https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Using-Autotest.html)。 – 5gon12eder 2014-09-30 01:30:34