#!/usr/bin/env php SWOOLE_LOG_INFO, 'trace_flags' => 0 ]); /* * This file is part of PHPUnit. * * (c) Sebastian Bergmann * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ if (PHP_VERSION_ID <= 70100) { fwrite( STDERR, sprintf( 'This version of PHPUnit is supported on PHP 7.1 and above.' . 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', 'Asia/Shanghai'); } require $root . '/vendor/autoload.php'; sleep(1); const ZM_VERSION_ID = \ZM\ConsoleApplication::VERSION_ID; const ZM_VERSION = \ZM\ConsoleApplication::VERSION; // 模拟define const ZM_PROCESS_MASTER = 1; const ZM_PROCESS_MANAGER = 2; const ZM_PROCESS_WORKER = 4; const ZM_PROCESS_USER = 8; const ZM_PROCESS_TASKWORKER = 16; define('FRAMEWORK_ROOT_DIR', dirname(__DIR__) . '/'); define('WORKING_DIR', getcwd()); const SOURCE_ROOT_DIR = WORKING_DIR; define('LOAD_MODE', is_dir(SOURCE_ROOT_DIR . '/src/ZM') ? 0 : 1); chdir(__DIR__ . '/../'); $framework = new \ZM\Framework([ 'log-debug' => true, 'disable-safe-exit' => false, 'worker-num' => 1, ]); $framework::$server->addProcess(new \Swoole\Process(static function () use ($root, $framework) { try { require_once $root . '/tests/bootstrap.php'; PHPUnit\TextUI\Command::main(false); Swoole\Process::wait(); } catch (Throwable) { } finally { zm_atomic('server_is_stopped')->set(1); \Swoole\Process::kill(getmypid(), SIGKILL); $framework::$server->stop(); $framework::$server->shutdown(); trigger_error('PHPUnit test process exit'); } }, null, null, true)); $framework->start(); Swoole\Event::wait();