2013-04-23 76 views
0

這是一個比我的理解更重要的問題。我使用Test::More通過TAP::Harness運行一些測試。TAP的等待狀態的意義是什麼?

當測試運行時,它會返回一個退出代碼和一個等待代碼。

退出代碼被設計爲在失敗時返回非零值,按照Test::Moredocumentation

但是等待代碼意味着什麼?它似乎是我正在運行的測試失敗測試次數(256 * n)的倍數。

我的猜測是該協議試圖模擬Unix與父子過程的關係,但我對等待代碼一無所知。

回答

3

有關如何構造等待代碼的更多信息,see the notes on $?。正如你猜測的那樣,Test :: More的退出代碼乘以256,通常這個值將是失敗測試的數量。

原因等待代碼是非常有用的,它可以讓你看到的時候,因爲下一個信號線束退出代碼:

use Test::More tests => 2; 

ok 1,"first"; 
kill 15,$$; 
ok 1,"second"; 

將產生的15觀望狀態是否腳本曾經從出口信號取決於你在做什麼;我有一個系統必須調用不可靠的遠程服務,並在另一端死亡時看到SIGPIPE錯誤。