TAP中等待状态的意义是什么?

时间:2013-04-23 09:15:30

标签: perl tap tap-harness test-more

这个问题比我的理解更重要。我正在使用Test::More通过TAP::Harness运行一些测试。

当测试运行时,它会返回退出代码和等待代码。

退出代码旨在根据Test::More documentation在失败时返回非零值。

但等待代码表示什么?对于我正在运行的测试,它似乎是失败测试次数的倍数(256 * n)。

我的猜测是协议试图模仿Unix之间的父子进程关系,但我对等待代码一无所知。

1 个答案:

答案 0 :(得分:3)

有关等待代码结构的详细信息,请see the notes on $?。正如您所推测的那样,Test :: More的退出代码乘以256,通常该值将是失败测试的数量。

等待代码有用的原因是,它可以让您看到由于信号而导致线束下的代码退出:

use Test::More tests => 2;

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

将产生等待状态15.您的脚本是否从信号中退出取决于您正在做什么;我有一个系统必须调用一个不可靠的远程服务,当另一端死亡时会看到SIGPIPE错误。