Files
Gina Peter Banyard b1a3a4e082 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Update NEWS
  ext/standard/tests: work around Windows quoting with tempfiles.
  .github/scripts/windows: pass an extension_dir to the test runner.
  {ext/standard,sapi/cli}/tests: pass TEST_PHP_EXTRA_ARGS to php
  ext/standard/tests: pass TEST_PHP_EXTRA_ARGS to some proc_open() tests
  sapi/cli/tests/023.phpt: support TEST_PHP_EXTRA_ARGS
  std: Fix memory leak of the last response headers after a nested HTTP request (#24201)
  Fiber: hold the object a callable resolved to in the creating frame (#24134)
2026-10-14 18:39:38 +01:00

132 lines
1.7 KiB
PHP

--TEST--
CLI -a and readline
--EXTENSIONS--
readline
--SKIPIF--
<?php
include "skipif.inc";
if (readline_info('done') === NULL) {
die ("skip need readline support");
}
?>
--FILE--
<?php
$php = getenv('TEST_PHP_EXECUTABLE_ESCAPED');
$args = getenv('TEST_PHP_EXTRA_ARGS');
// disallow console escape sequences that may break the output
putenv('TERM=VT100');
$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";
$code = escapeshellarg($code);
echo shell_exec("echo $code | $php $args -a"), "\n";
}
echo "\nDone\n";
?>
--EXPECT--
--------------
Snippet no. 1:
--------------
Interactive shell
php > echo 'Hello world';
Hello world
php > exit
--------------
Snippet no. 2:
--------------
Interactive shell
php > echo 'multine
php ' single
php ' quote';
multine
single
quote
php > exit
--------------
Snippet no. 3:
--------------
Interactive shell
php > echo <<<HEREDOC
<<< > Here
<<< > comes
<<< > the
<<< > doc
<<< > HEREDOC;
Here
comes
the
doc
php >
--------------
Snippet no. 4:
--------------
Interactive shell
php > if (0) {
php { echo "I'm not there";
php { }
php > echo "Done";
Done
php >
--------------
Snippet no. 5:
--------------
Interactive shell
php > function a_function_with_some_name() {
php { echo "I was called!";
php { }
php > a_function_with_some_name();
I was called!
php >
Done