summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShein Alexey <shein@php.net>2011-09-20 14:53:46 +0000
committerShein Alexey <shein@php.net>2011-09-20 14:53:46 +0000
commit2cf4f98c935eabae35450413718b70e29e5d804a (patch)
treeb15912a7d02de6108cb06113d116abf499672181
parent0d74e0f091463fcb42fc1aab444fc92b58eea7c9 (diff)
downloadphp-git-2cf4f98c935eabae35450413718b70e29e5d804a.tar.gz
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
-rw-r--r--sapi/cli/tests/php_cli_server.inc21
-rw-r--r--sapi/cli/tests/php_cli_server_001.phpt6
-rw-r--r--sapi/cli/tests/php_cli_server_002.phpt4
-rw-r--r--sapi/cli/tests/php_cli_server_003.phpt4
4 files changed, 15 insertions, 20 deletions
diff --git a/sapi/cli/tests/php_cli_server.inc b/sapi/cli/tests/php_cli_server.inc
index 012efa704f..3a4e8ebb17 100644
--- a/sapi/cli/tests/php_cli_server.inc
+++ b/sapi/cli/tests/php_cli_server.inc
@@ -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);
}
?>
diff --git a/sapi/cli/tests/php_cli_server_001.phpt b/sapi/cli/tests/php_cli_server_001.phpt
index 30d72700ba..27c81bb6ba 100644
--- a/sapi/cli/tests/php_cli_server_001.phpt
+++ b/sapi/cli/tests/php_cli_server_001.phpt
@@ -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"
diff --git a/sapi/cli/tests/php_cli_server_002.phpt b/sapi/cli/tests/php_cli_server_002.phpt
index 046dd731c1..e1120d61bf 100644
--- a/sapi/cli/tests/php_cli_server_002.phpt
+++ b/sapi/cli/tests/php_cli_server_002.phpt
@@ -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"
diff --git a/sapi/cli/tests/php_cli_server_003.phpt b/sapi/cli/tests/php_cli_server_003.phpt
index 0fe104ff6a..8e7f11fed7 100644
--- a/sapi/cli/tests/php_cli_server_003.phpt
+++ b/sapi/cli/tests/php_cli_server_003.phpt
@@ -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"