]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.4'
authorChristoph M. Becker <cmbecker69@gmx.de>
Wed, 29 Jul 2020 10:47:41 +0000 (12:47 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Wed, 29 Jul 2020 10:47:41 +0000 (12:47 +0200)
* PHP-7.4:
  Prevent test case from stalling

1  2 
sapi/cli/tests/sapi_windows_set_ctrl_handler.phpt

index dbb02a00bd4b72026128ffdb23bbef2705ee9d62,4f1963d052b5cadeaf4a72310b0173e1e0cca55e..09030c90f817528fd850c0ade35f40520c5c48a6
@@@ -15,52 -15,54 +15,54 @@@ $is_child = isset($argv[1])
  
  
  if ($is_child) {
 -      function handler($evt)
 -      {
 -              exit(3);
 -      }
 +    function handler($evt)
 +    {
 +        exit(3);
 +    }
  
 -      sapi_windows_set_ctrl_handler('handler');
 +    sapi_windows_set_ctrl_handler('handler');
  
 -      while(1) usleep(100);
 +    while(1) usleep(100);
  } else {
 -      $cmd = PHP_BINARY . " -n " . $argv[0] . " 1";
 -      $spec = [0 => ["pipe", "r"], 1 => ["pipe", "w"]];
 +    $cmd = PHP_BINARY . " -n " . $argv[0] . " 1";
 +    $spec = [0 => ["pipe", "r"], 1 => ["pipe", "w"]];
  
 -      $proc = proc_open($cmd, $spec, $pipes, NULL, NULL, ["bypass_shell" => true, "create_process_group" => true]);
 +    $proc = proc_open($cmd, $spec, $pipes, NULL, NULL, ["bypass_shell" => true, "create_process_group" => true]);
  
 -      if (!is_resource($proc)) {
 -              die("Failed to start child. ");
 -      }
 +    if (!is_resource($proc)) {
 +        die("Failed to start child. ");
 +    }
  
 -      $child_pid = proc_get_status($proc)["pid"];
 -      echo "Started child $child_pid\n";
 -      usleep(300);
 +    $child_pid = proc_get_status($proc)["pid"];
 +    echo "Started child $child_pid\n";
 +    usleep(300);
  
 -      $cmd = "tasklist /FI \"PID eq $child_pid\" /NH";
 -      echo "Running `$cmd` to check the process indeed exists:\n";
 -      echo trim(shell_exec($cmd)) . "\n";
 +    $cmd = "tasklist /FI \"PID eq $child_pid\" /NH";
 +    echo "Running `$cmd` to check the process indeed exists:\n";
 +    echo trim(shell_exec($cmd)) . "\n";
  
 -      $evt = PHP_WINDOWS_EVENT_CTRL_C;
 -      echo "Sending ", get_evt_name($evt), " to child $child_pid\n";
 -      $ret = sapi_windows_generate_ctrl_event($evt, $child_pid);
 +    $evt = PHP_WINDOWS_EVENT_CTRL_C;
 +    echo "Sending ", get_evt_name($evt), " to child $child_pid\n";
 +    $ret = sapi_windows_generate_ctrl_event($evt, $child_pid);
  
 -      echo ($ret ? "Successfully" : "Unsuccessfuly"), " sent ", get_evt_name($evt), " to child $child_pid\n";
 +    echo ($ret ? "Successfully" : "Unsuccessfuly"), " sent ", get_evt_name($evt), " to child $child_pid\n";
  
 -      $max = 5000; $total = 0; $step = 100;
 -      while(proc_get_status($proc)["running"] && $max > $total) {
 -              usleep($step);
 -              $total += $step;
 -      }
 +    $max = 5000; $total = 0; $step = 100;
 +    while(proc_get_status($proc)["running"] && $max > $total) {
 +        usleep($step);
 +        $total += $step;
 +    }
  
 -      $status = proc_get_status($proc);
 -      if ($status["running"]) {
 -              echo "Child $child_pid didn't exit after ${max}us\n";
 +    $status = proc_get_status($proc);
 +    if ($status["running"]) {
 +        echo "Child $child_pid didn't exit after ${max}us\n";
+               foreach ($pipes as $pipe) {
+                       fclose($pipe);
+               }
+               proc_terminate($proc);
 -      } else {
 -              echo "Child $child_pid exit with status ", $status["exitcode"], " after ${total}us\n"; 
 -      }
 +    } else {
 +        echo "Child $child_pid exit with status ", $status["exitcode"], " after ${total}us\n";
 +    }
-     proc_close($proc);
  }
  
  function get_evt_name(int $evt) : ?string