1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2025-01-17 02:01:12 +01:00
phorge-arcanist/support/unit/sleep.php
epriestley 79d3692f66 [Wilds] Pass or skip all remaining Windows unit test failures
Summary:
Ref T13209. This gives us a clean suite under Windows. The actual changes are a lot of miscellaneous stuff which I'll walk through inline in more detail.

The biggest change here is just rewriting some stuff like `cat`, `echo`, `sleep`, etc., in PHP. These commands either don't exist, don't work the same way, or are shell builtins (and we're now bypassing the shell) under Windows. So replace `cat ...` with `php -f cat.php -- ...` to make the tests portable.

Test Plan: No remaining test failures on Windows.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13209

Differential Revision: https://secure.phabricator.com/D19729
2018-10-03 07:48:47 -07:00

20 lines
377 B
PHP
Executable file

<?php
if ($argc != 2) {
echo "usage: sleep <duration>\n";
exit(1);
}
// NOTE: Sleep for the requested duration even if our actual sleep() call is
// interrupted by a signal.
$then = microtime(true) + (double)$argv[1];
while (true) {
$now = microtime(true);
if ($now >= $then) {
break;
}
$sleep = max(1, ($then - $now));
usleep((int)($sleep * 1000000));
}