From 2724828c4f829e8f648479b1125135d9819d9d39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=93=AD=E6=98=95?= Date: Fri, 26 Mar 2021 22:19:19 +0800 Subject: [PATCH] Optimized code for `co-phpunit`. (#3422) --- co-phpunit | 102 +++++++++++++++++++---------------------------------- 1 file changed, 37 insertions(+), 65 deletions(-) diff --git a/co-phpunit b/co-phpunit index 869b12d..74f0036 100755 --- a/co-phpunit +++ b/co-phpunit @@ -1,72 +1,44 @@ #!/usr/bin/env php - + * + * 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); \ No newline at end of file