Files
php-src/sapi/cli/tests/bug78323.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

79 lines
1.5 KiB
PHP

--TEST--
Bug #78323 Test exit code and error message for invalid parameters
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
$php = getenv('TEST_PHP_EXECUTABLE_ESCAPED');
// There are 3 types of option errors:
// 1 : in flags
// 2 option not found
// 3 no argument for option
// colon in flags
ob_start();
passthru("$php -a:Z 2>&1", $exitCode);
$output = ob_get_contents();
ob_end_clean();
$lines = preg_split('/\R/', $output);
echo $lines[0], "\n",
$lines[1], "\n",
"Done: $exitCode\n\n";
// option not found
ob_start();
passthru("$php -Z 2>&1", $exitCode);
$output = ob_get_contents();
ob_end_clean();
$lines = preg_split('/\R/', $output);
echo $lines[0], "\n",
$lines[1], "\n",
"Done: $exitCode\n\n";
// no argument for option
ob_start();
passthru("$php --memory-limit=1G 2>&1", $exitCode);
$output = ob_get_contents();
ob_end_clean();
$lines = preg_split('/\R/', $output);
echo $lines[0], "\n",
$lines[1], "\n",
"Done: $exitCode\n\n";
// Successful execution
ob_start();
passthru("$php -dmemory-limit=1G -v", $exitCode);
$output = ob_get_contents();
ob_end_clean();
$lines = preg_split('/\R/', $output);
echo $lines[0], "\n",
"Done: $exitCode\n";
?>
--EXPECTF--
Error in argument %d, char %d: : in flags
Usage: %s [options] [-f] <file> [--] [args...]
Done: 1
Error in argument %d, char %d: option not found %s
Usage: %s [options] [-f] <file> [--] [args...]
Done: 1
Error in argument %d, char %d: no argument for option %s
Usage: %s [options] [-f] <file> [--] [args...]
Done: 1
PHP %s
Done: 0