2013-04-23 77 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错误。