1
0
mirror of https://github.com/php/php-src.git synced 2026-04-29 03:03:26 +02:00

Refactored and speeded up php_cli_server tests, also get rid of test hanging on ubuntu:

1) Prepended starting the server with "exec" so proc_terminate can correctly close it (see also this note http://www.php.net/manual/en/function.proc-get-status.php#93382 for details)
2) Moved putting down the server to the shutdown function to make it independent from tests (fatal) errors
3) Moved php cli executable into the function to make tests more readable 
4) changed sleep(1) to usleep(50000) (50 ms) to make tests faster - this needs more testing and if timeout is too small should be increased
This commit is contained in:
Shein Alexey
2011-09-20 14:53:46 +00:00
parent 1b9fbe540e
commit 3c365dc3ef
4 changed files with 15 additions and 20 deletions
+11 -10
View File
@@ -1,7 +1,8 @@
<?php
define ("PHP_CLI_SERVER_ADDRESS", "localhost:8964");
function php_cli_server_start($php_executable, $code = 'echo "Hello world";') {
function php_cli_server_start($code = 'echo "Hello world";') {
$php_executable = getenv('TEST_PHP_EXECUTABLE');
$doc_root = __DIR__;
$router = "router.php";
file_put_contents($doc_root . '/' . $router, '<?php ' . $code . ' ?>');
@@ -12,18 +13,18 @@ function php_cli_server_start($php_executable, $code = 'echo "Hello world";') {
2 => STDERR,
);
$cmd = "{$php_executable} -t {$doc_root} -S " . PHP_CLI_SERVER_ADDRESS . " {$router}";
$cmd = "exec {$php_executable} -t {$doc_root} -S " . PHP_CLI_SERVER_ADDRESS . " {$router}";
$handle = proc_open($cmd, $descriptorspec, $pipes, $doc_root);
sleep(1);
return $handle;
}
register_shutdown_function(
function($handle) {
proc_terminate($handle);
@unlink(__DIR__ . "/router.php");
},
$handle
);
function php_cli_server_shutdown($handle) {
proc_terminate($handle);
proc_close($handle);
@unlink(__DIR__ . "router.php");
return true;
usleep(50000);
}
?>
+2 -4
View File
@@ -12,10 +12,8 @@ if (substr(PHP_OS, 0, 3) == 'WIN') {
--FILE--
<?php
include "php_cli_server.inc";
$php = getenv('TEST_PHP_EXECUTABLE');
$handle = php_cli_server_start($php);
php_cli_server_start();
var_dump(file_get_contents("http://" . PHP_CLI_SERVER_ADDRESS));
php_cli_server_shutdown($handle);
?>
--EXPECT--
--EXPECT--
string(11) "Hello world"
+1 -3
View File
@@ -12,10 +12,8 @@ if (substr(PHP_OS, 0, 3) == 'WIN') {
--FILE--
<?php
include "php_cli_server.inc";
$php = getenv('TEST_PHP_EXECUTABLE');
$handle = php_cli_server_start($php, 'var_dump($_SERVER["DOCUMENT_ROOT"], $_SERVER["SERVER_SOFTWARE"]);');
php_cli_server_start('var_dump($_SERVER["DOCUMENT_ROOT"], $_SERVER["SERVER_SOFTWARE"]);');
var_dump(file_get_contents("http://" . PHP_CLI_SERVER_ADDRESS));
php_cli_server_shutdown($handle);
?>
--EXPECTF--
string(%d) "string(%d) "%s/tests"
+1 -3
View File
@@ -12,11 +12,9 @@ if (substr(PHP_OS, 0, 3) == 'WIN') {
--FILE--
<?php
include "php_cli_server.inc";
$php = getenv('TEST_PHP_EXECUTABLE');
$handle = php_cli_server_start($php, 'chdir("/tmp"); echo "okey";');
php_cli_server_start('chdir("/tmp"); echo "okey";');
var_dump(file_get_contents("http://" . PHP_CLI_SERVER_ADDRESS));
var_dump(file_get_contents("http://" . PHP_CLI_SERVER_ADDRESS));
php_cli_server_shutdown($handle);
?>
--EXPECTF--
string(4) "okey"