Perl Timeout: сгенерировал временный make-файл со многими тестами, включая бесконечный цикл и передачу в "system $ temp_make_cmd" - PullRequest
0 голосов
/ 30 ноября 2018

Я создаю один временный make-файл для многих тестовых случаев, который выполняется последовательно при передаче его системной команде, например:

 system $temp_make_cmd;

Для нормального случая make-файл запускается до завершения.

Но если у нас есть какой-то промежуточный тестовый случай с бесконечным циклом, тогда моя реализация тайм-аута просто убивает процесс бесконечного цикла и выходит.Хотя я хочу, чтобы после таймаута он выполнял и другие тесты.Помогите мне решить мою проблему.

Ниже приведен пример сценария:

my $pid = fork;
if ( $pid == 0) {

    POSIX::setpgid(0,0);
   system ("$temp_make_cmd");
}
   sleep 10;
 my $result = waitpid(-1, WNOHANG); 

 if ($result==0) {

    kill('TERM', -$pid);                   

}

Реализованные запросы для справки: как убить процесс, имеющий несколько форков, используя perl

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...