Skip to content

Commit

Permalink
Optimized code for co-phpunit. (#3422)
Browse files Browse the repository at this point in the history
  • Loading branch information
limingxinleo authored Mar 26, 2021
1 parent af12cc3 commit 2724828
Showing 1 changed file with 37 additions and 65 deletions.
102 changes: 37 additions & 65 deletions co-phpunit
Original file line number Diff line number Diff line change
@@ -1,72 +1,44 @@
#!/usr/bin/env php
<?php

<?php
declare (strict_types=1);
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
if (version_compare('7.3.0', PHP_VERSION, '>')) {
fwrite(STDERR, sprintf('This version of PHPUnit requires PHP >= 7.3.' . PHP_EOL . 'You are using PHP %s (%s).' . PHP_EOL, PHP_VERSION, PHP_BINARY));
die(1);
}
if (!ini_get('date.timezone')) {
ini_set('date.timezone', 'UTC');
}
foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php') as $file) {
if (file_exists($file)) {
define('PHPUNIT_COMPOSER_INSTALL', $file);
break;
}
}
unset($file);
if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
fwrite(STDERR, 'You need to set up the project dependencies using Composer:' . PHP_EOL . PHP_EOL . ' composer install' . PHP_EOL . PHP_EOL . 'You can learn all about Composer on https://getcomposer.org/.' . PHP_EOL);
die(1);
}
$options = getopt('', array('prepend:'));
if (isset($options['prepend'])) {
require $options['prepend'];
}
unset($options);
require PHPUNIT_COMPOSER_INSTALL;
$code = 0;
Swoole\Coroutine::set(['exit_condition' => function(){
Swoole\Coroutine::set(['hook_flags' => SWOOLE_HOOK_ALL, 'exit_condition' => function () {
return Swoole\Coroutine::stats()['coroutine_num'] === 0;
}]);
Swoole\Coroutine::create(function () use (&$code) {
if (version_compare('7.1.0', PHP_VERSION, '>')) {
fwrite(
STDERR,
sprintf(
'This version of PHPUnit is supported on PHP 7.1 and PHP 7.2.' . PHP_EOL .
'You are using PHP %s (%s).' . PHP_EOL,
PHP_VERSION,
PHP_BINARY
)
);

die(1);
}

if (! ini_get('date.timezone')) {
ini_set('date.timezone', 'UTC');
}

$dirs = [
getcwd() . '/vendor/autoload.php',
__DIR__ . '/../../autoload.php',
__DIR__ . '/../vendor/autoload.php',
__DIR__ . '/vendor/autoload.php',
];

foreach ($dirs as $file) {
if (file_exists($file)) {
define('PHPUNIT_COMPOSER_INSTALL', $file);

break;
}
}

unset($file);

if (! defined('PHPUNIT_COMPOSER_INSTALL')) {
fwrite(
STDERR,
'You need to set up the project dependencies using Composer:' . PHP_EOL . PHP_EOL .
' composer install' . PHP_EOL . PHP_EOL .
'You can learn all about Composer on https://getcomposer.org/.' . PHP_EOL
);

die(1);
}

$options = getopt('', ['prepend:']);

if (isset($options['prepend'])) {
require $options['prepend'];
}

unset($options);

require PHPUNIT_COMPOSER_INSTALL;

Swoole\Coroutine\run(function () use(&$code) {
$code = PHPUnit\TextUI\Command::main(false);

Swoole\Timer::clearAll();
});

swoole_event_wait();

exit($code);
die($code);

0 comments on commit 2724828

Please sign in to comment.