1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 08:12:21 +01:00
Files
archived-php-src/sapi/cli/tests/017.phpt
Niels Dossche dcc3255b18 Fix GH-10489: run-tests.php does not escape path when building cmd (#10560)
Multiple tests had to be changed to escape the arguments in shell
commands. Some tests are skipped because they behave differently with
spaces in the path versus without. One notable example of this is the
hashbang test which does not work because spaces in hashbangs paths are
not supported in Linux.

Co-authored-by: Michael Voříšek <mvorisek@mvorisek.cz>
2023-02-25 14:02:06 +00:00

108 lines
1.4 KiB
PHP

--TEST--
CLI -a and libedit
--EXTENSIONS--
readline
--SKIPIF--
<?php
include "skipif.inc";
if (readline_info('done') !== NULL) {
die ("skip need readline support using libedit");
}
?>
--FILE--
<?php
$php = getenv('TEST_PHP_EXECUTABLE_ESCAPED');
$ini = getenv('TEST_PHP_EXTRA_ARGS');
$descriptorspec = [['pipe', 'r'], STDOUT, STDERR];
$codes = array();
$codes[1] = <<<EOT
echo 'Hello world';
exit
EOT;
$codes[] = <<<EOT
echo 'multine
single
quote';
exit
EOT;
$codes[] = <<<EOT
echo <<<HEREDOC
Here
comes
the
doc
HEREDOC;
EOT;
$codes[] = <<<EOT
if (0) {
echo "I'm not there";
}
echo "Done";
EOT;
$codes[] = <<<EOT
function a_function_with_some_name() {
echo "I was called!";
}
a_function_w );
EOT;
foreach ($codes as $key => $code) {
echo "\n--------------\nSnippet no. $key:\n--------------\n";
$proc = proc_open("$php $ini -a", $descriptorspec, $pipes);
fwrite($pipes[0], $code);
fclose($pipes[0]);
proc_close($proc);
}
echo "\nDone\n";
?>
--EXPECT--
--------------
Snippet no. 1:
--------------
Interactive shell
Hello world
--------------
Snippet no. 2:
--------------
Interactive shell
multine
single
quote
--------------
Snippet no. 3:
--------------
Interactive shell
Here
comes
the
doc
--------------
Snippet no. 4:
--------------
Interactive shell
Done
--------------
Snippet no. 5:
--------------
Interactive shell
Parse error: Unmatched ')' in php shell code on line 1
Done