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:
Ilia Alshanetsky 2003-07-24 17:44:16 +00:00
parent 3fbe69f49a
commit 64d6421885
2 changed files with 36 additions and 6 deletions

View File

@ -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

View File

@ -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';
}