Skip to content

Commit 6a8c8bc

Browse files
committed
Fix HHVM compatibility and increase test timeouts for slower systems
1 parent 971af97 commit 6a8c8bc

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

src/Process.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,7 @@ public function start(LoopInterface $loop, $interval = 0.1)
180180
}
181181

182182
foreach ($pipes as $n => $fd) {
183-
$meta = \stream_get_meta_data($fd);
184-
if (\strpos($meta['mode'], 'w') !== false) {
183+
if (\strpos($this->fds[$n][1], 'w') === false) {
185184
$stream = new WritableResourceStream($fd, $loop);
186185
} else {
187186
$stream = new ReadableResourceStream($fd, $loop);

tests/AbstractProcessTest.php

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -308,12 +308,13 @@ public function testDetectsClosingStdoutWithoutHavingToWaitForExit()
308308
$process->start($loop);
309309

310310
$closed = false;
311-
$process->stdout->on('close', function () use (&$closed) {
311+
$process->stdout->on('close', function () use (&$closed, $loop) {
312312
$closed = true;
313+
$loop->stop();
313314
});
314315

315-
// run loop for 0.1s only
316-
$loop->addTimer(0.1, function () use ($loop) {
316+
// run loop for maximum of 0.5s only
317+
$loop->addTimer(0.5, function () use ($loop) {
317318
$loop->stop();
318319
});
319320
$loop->run();
@@ -330,15 +331,21 @@ public function testKeepsRunningEvenWhenAllStdioPipesHaveBeenClosed()
330331
$process->start($loop);
331332

332333
$closed = 0;
333-
$process->stdout->on('close', function () use (&$closed) {
334+
$process->stdout->on('close', function () use (&$closed, $loop) {
334335
++$closed;
336+
if ($closed === 2) {
337+
$loop->stop();
338+
}
335339
});
336-
$process->stderr->on('close', function () use (&$closed) {
340+
$process->stderr->on('close', function () use (&$closed, $loop) {
337341
++$closed;
342+
if ($closed === 2) {
343+
$loop->stop();
344+
}
338345
});
339346

340-
// run loop for 0.1s only
341-
$loop->addTimer(0.1, function () use ($loop) {
347+
// run loop for maximum 0.5s only
348+
$loop->addTimer(0.5, function () use ($loop) {
342349
$loop->stop();
343350
});
344351
$loop->run();
@@ -359,7 +366,7 @@ public function testDetectsClosingProcessEvenWhenAllStdioPipesHaveBeenClosed()
359366
$loop->run();
360367
$time = microtime(true) - $time;
361368

362-
$this->assertLessThan(0.1, $time);
369+
$this->assertLessThan(0.5, $time);
363370
$this->assertSame(0, $process->getExitCode());
364371
}
365372

0 commit comments

Comments
 (0)