Если вы вызываете свою тестовую программу из Perl, то сложный (и традиционный) способ заключается в том, чтобы делать темные и ужасные сдвиги битов до $?
. Вы можете прочитать об этом в документации по системным функциям , если вы действительно хотите узнать, как это сделать.
Способ nice включает использование модуля, который предоставляет вам функцию стиля system
, которая обрабатывает возвращаемые значения для вас:
use IPC::System::Simple qw(systemx EXIT_ANY);
my $exit_value = systemx( EXIT_ANY, 'mytest.t' );
Символ EXIT_ANY
позволяет вашему сценарию возвращать любое значение выхода, которое мы затем можем зафиксировать. Если вы просто хотите убедиться, что ваши скрипты проходят (т. Е. Возвращают нулевой статус выхода) и останавливаются при любой неудаче, это поведение по умолчанию IPC :: System :: Simple :
use IPC::System::Simple qw(systemx);
systemx( 'mytest.t' ); # Run this command successfully or die.
Во всех приведенных выше примерах вы можете запросить команду замены system
вместо systemx
, если вы довольны возможностью включения оболочки. Подробнее см. Документацию IPC :: System :: Simple .
Существуют и другие модули, которые могут позволить вам легко запустить команду и зафиксировать ее значение выхода. TIMTOWTDI.
Сказав это, все хорошие жгуты должны проверить возвращаемые значения для вас, так что только если вы пишете наших собственных тестировщиков, вам нужно посмотреть на это самостоятельно.
Всего наилучшего,
Пол
Раскрытие информации: я написал IPC :: System :: Simple, и поэтому может иметь к ней положительный уклон.