mirror of
https://github.com/php/php-src.git
synced 2024-11-23 09:54:15 +08:00
When encountering a test that users GET/POST make run-tests.php use CGI
sapi if it is avaliable. If CLI sapi is not avaliable print a clear error when make test is executed.
This commit is contained in:
parent
3fbe69f49a
commit
64d6421885
@ -50,11 +50,15 @@ install-tester:
|
||||
|
||||
install-su: install-pear install-tester
|
||||
|
||||
test: $(SAPI_CLI_PATH)
|
||||
@TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
|
||||
TEST_PHP_SRCDIR=$(top_srcdir) \
|
||||
CC="$(CC)" \
|
||||
$(top_builddir)/$(SAPI_CLI_PATH) -d 'open_basedir=' -d 'safe_mode=0' -d 'output_buffering=0' $(top_srcdir)/run-tests.php $(TESTS)
|
||||
test:
|
||||
-@if test -x $(SAPI_CLI_PATH) && test ! -z $(SAPI_CLI_PATH); then \
|
||||
TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
|
||||
TEST_PHP_SRCDIR=$(top_srcdir) \
|
||||
CC="$(CC)" \
|
||||
$(top_builddir)/$(SAPI_CLI_PATH) -d 'open_basedir=' -d 'safe_mode=0' -d 'output_buffering=0' $(top_srcdir)/run-tests.php $(TESTS); \
|
||||
else \
|
||||
echo "ERROR: Cannot run tests without CLI sapi."; \
|
||||
fi
|
||||
|
||||
clean:
|
||||
find . -name \*.lo -o -name \*.o | xargs rm -f
|
||||
|
@ -117,7 +117,7 @@ if (getenv('TEST_PHP_EXECUTABLE')) {
|
||||
putenv("TEST_PHP_EXECUTABLE=$php");
|
||||
}
|
||||
}
|
||||
if (!file_exists($php)) {
|
||||
if (empty($php) || !file_exists($php)) {
|
||||
error("environment variable TEST_PHP_EXECUTABLE must be set to specify PHP executable!");
|
||||
}
|
||||
|
||||
@ -665,6 +665,14 @@ TEST $file
|
||||
}
|
||||
fclose($fp);
|
||||
|
||||
/* For GET/POST tests, check if cgi sapi is avaliable and if it is, use it. */
|
||||
if ((!empty($section_text['GET']) || !empty($section_text['POST']))) {
|
||||
if (file_exists("./sapi/cgi/php")) {
|
||||
$old_php = $php;
|
||||
$php = realpath("./sapi/cgi/php") . ' -C ';
|
||||
}
|
||||
}
|
||||
|
||||
$shortname = str_replace($cwd.'/', '', $file);
|
||||
$tested = trim($section_text['TEST'])." [$shortname]";
|
||||
|
||||
@ -708,6 +716,9 @@ TEST $file
|
||||
} else {
|
||||
echo "\n";
|
||||
}
|
||||
if (isset($old_php)) {
|
||||
$php = $old_php;
|
||||
}
|
||||
return 'SKIPPED';
|
||||
}
|
||||
if (eregi("^info", trim($output))) {
|
||||
@ -795,6 +806,11 @@ COMMAND $cmd
|
||||
$output = trim($out);
|
||||
$output = preg_replace('/\r\n/',"\n",$output);
|
||||
|
||||
/* when using CGI, strip the headers from the output */
|
||||
if (isset($old_php) && ($pos = strpos($output, "\n\n")) !== FALSE) {
|
||||
$output = substr($output, ($pos + 2));
|
||||
}
|
||||
|
||||
if (isset($section_text['EXPECTF']) || isset($section_text['EXPECTREGEX'])) {
|
||||
if (isset($section_text['EXPECTF'])) {
|
||||
$wanted = trim($section_text['EXPECTF']);
|
||||
@ -821,6 +837,9 @@ COMMAND $cmd
|
||||
if (preg_match("/^$wanted_re\$/s", $output)) {
|
||||
@unlink($tmp_file);
|
||||
echo "PASS $tested\n";
|
||||
if (isset($old_php)) {
|
||||
$php = $old_php;
|
||||
}
|
||||
return 'PASSED';
|
||||
}
|
||||
|
||||
@ -832,6 +851,9 @@ COMMAND $cmd
|
||||
if ($ok) {
|
||||
@unlink($tmp_file);
|
||||
echo "PASS $tested\n";
|
||||
if (isset($old_php)) {
|
||||
$php = $old_php;
|
||||
}
|
||||
return 'PASSED';
|
||||
}
|
||||
}
|
||||
@ -890,6 +912,10 @@ $output
|
||||
error_report($file,$logname,$tested);
|
||||
}
|
||||
|
||||
if (isset($old_php)) {
|
||||
$php = $old_php;
|
||||
}
|
||||
|
||||
return $warn ? 'WARNED' : 'FAILED';
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user