mirror of
https://github.com/php/php-src.git
synced 2025-08-16 14:08:47 +02:00
Add tests for built-in webserver
This commit is contained in:
parent
5dbf73a866
commit
00bab0493e
4 changed files with 96 additions and 0 deletions
29
sapi/cli/tests/php_cli_server.inc
Normal file
29
sapi/cli/tests/php_cli_server.inc
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
define ("PHP_CLI_SERVER_ADDRESS", "localhost:8964");
|
||||||
|
|
||||||
|
function php_cli_server_start($php_executable, $code = 'echo "Hello world";') {
|
||||||
|
$doc_root = __DIR__;
|
||||||
|
$router = "router.php";
|
||||||
|
file_put_contents($doc_root . '/' . $router, '<?php ' . $code . ' ?>');
|
||||||
|
|
||||||
|
$descriptorspec = array(
|
||||||
|
0 => STDIN,
|
||||||
|
1 => STDOUT,
|
||||||
|
2 => STDERR,
|
||||||
|
);
|
||||||
|
|
||||||
|
$cmd = "{$php_executable} -t {$doc_root} -S " . PHP_CLI_SERVER_ADDRESS . " {$router}";
|
||||||
|
|
||||||
|
$handle = proc_open($cmd, $descriptorspec, $pipes, $doc_root);
|
||||||
|
sleep(1);
|
||||||
|
|
||||||
|
return $handle;
|
||||||
|
}
|
||||||
|
|
||||||
|
function php_cli_server_shutdown($handle) {
|
||||||
|
proc_terminate($handle);
|
||||||
|
proc_close($handle);
|
||||||
|
@unlink(__DIR__ . "router.php");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
?>
|
21
sapi/cli/tests/php_cli_server_001.phpt
Normal file
21
sapi/cli/tests/php_cli_server_001.phpt
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
--TEST--
|
||||||
|
basic function
|
||||||
|
--INI--
|
||||||
|
allow_url_fopen = TRUE
|
||||||
|
--SKIPIF--
|
||||||
|
<?php
|
||||||
|
include "skipif.inc";
|
||||||
|
if (substr(PHP_OS, 0, 3) == 'WIN') {
|
||||||
|
die ("skip not for Windows");
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
include "php_cli_server.inc";
|
||||||
|
$php = getenv('TEST_PHP_EXECUTABLE');
|
||||||
|
$handle = php_cli_server_start($php);
|
||||||
|
var_dump(file_get_contents("http://" . PHP_CLI_SERVER_ADDRESS));
|
||||||
|
php_cli_server_shutdown($handle);
|
||||||
|
?>
|
||||||
|
--EXPECT--
|
||||||
|
string(11) "Hello world"
|
23
sapi/cli/tests/php_cli_server_002.phpt
Normal file
23
sapi/cli/tests/php_cli_server_002.phpt
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
--TEST--
|
||||||
|
$_SERVER variable
|
||||||
|
--INI--
|
||||||
|
allow_url_fopen = TRUE
|
||||||
|
--SKIPIF--
|
||||||
|
<?php
|
||||||
|
include "skipif.inc";
|
||||||
|
if (substr(PHP_OS, 0, 3) == 'WIN') {
|
||||||
|
die ("skip not for Windows");
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
--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"]);');
|
||||||
|
var_dump(file_get_contents("http://" . PHP_CLI_SERVER_ADDRESS));
|
||||||
|
php_cli_server_shutdown($handle);
|
||||||
|
?>
|
||||||
|
--EXPECTF--
|
||||||
|
string(%d) "string(%d) "%s/tests"
|
||||||
|
string(%d) "PHP %s Development Server"
|
||||||
|
"
|
23
sapi/cli/tests/php_cli_server_003.phpt
Normal file
23
sapi/cli/tests/php_cli_server_003.phpt
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
--TEST--
|
||||||
|
Bug #55726 (Changing the working directory makes router script inaccessible)
|
||||||
|
--INI--
|
||||||
|
allow_url_fopen = 1
|
||||||
|
--SKIPIF--
|
||||||
|
<?php
|
||||||
|
include "skipif.inc";
|
||||||
|
if (substr(PHP_OS, 0, 3) == 'WIN') {
|
||||||
|
die ("skip not for Windows");
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
include "php_cli_server.inc";
|
||||||
|
$php = getenv('TEST_PHP_EXECUTABLE');
|
||||||
|
$handle = php_cli_server_start($php, '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"
|
||||||
|
string(4) "okey"
|
Loading…
Add table
Add a link
Reference in a new issue