Small tweaks to php scripts

This commit is contained in:
Gabriel Caruso 2018-07-09 00:56:45 -03:00
parent 094c2aaf83
commit c7d1c14b5c
No known key found for this signature in database
GPG key ID: D93D6E258EFC438A
2 changed files with 128 additions and 128 deletions

View file

@ -89,7 +89,7 @@ if (ob_get_level()) echo "Not all buffers were deleted.\n";
error_reporting(E_ALL);
$environment = isset($_ENV) ? $_ENV : array();
$environment = $_ENV ?? array();
// Note: php.ini-development sets variables_order="GPCS" not "EGPCS", in which case $_ENV is NOT populated.
// detect and handle this case, or die or warn
if (empty($environment)) {
@ -1028,7 +1028,7 @@ function mail_qa_team($data, $status = false)
{
$url_bits = parse_url(QA_SUBMISSION_PAGE);
if (($proxy = getenv('http_proxy'))) {
if ($proxy = getenv('http_proxy')) {
$proxy = parse_url($proxy);
$path = $url_bits['host'].$url_bits['path'];
$host = $proxy['host'];
@ -1148,7 +1148,7 @@ function system_with_timeout($commandline, $env = null, $stdin = null, $captureS
unset($pipes[0]);
}
$timeout = $valgrind ? 300 : (isset($env['TEST_TIMEOUT']) ? $env['TEST_TIMEOUT'] : 60);
$timeout = $valgrind ? 300 : ($env['TEST_TIMEOUT'] ?? 60);
while (true) {
/* hide errors from interrupted syscalls */
@ -1934,7 +1934,7 @@ COMMAND $cmd
$hrtime = hrtime();
$startTime = $hrtime[0]*1000000000 + $hrtime[1];
$out = system_with_timeout($cmd, $env, isset($section_text['STDIN']) ? $section_text['STDIN'] : null, $captureStdIn, $captureStdOut, $captureStdErr);
$out = system_with_timeout($cmd, $env, $section_text['STDIN'] ?? null, $captureStdIn, $captureStdOut, $captureStdErr);
junit_finish_timer($shortname);
$hrtime = hrtime();
@ -2215,7 +2215,7 @@ $output
error_report($file, $log_filename, $tested);
}
}
if ($valgrind && $leaked && $cfg["show"]["mem"]) {
show_file_block('mem', file_get_contents($memcheck_filename));
}
@ -2823,7 +2823,7 @@ function junit_mark_test_as($type, $file_name, $test_name, $time = null, $messag
junit_suite_record($suite, 'test_total');
$time = null !== $time ? $time : junit_get_timer($file_name);
$time = $time ?? junit_get_timer($file_name);
junit_suite_record($suite, 'execution_time', $time);
$escaped_details = htmlspecialchars($details, ENT_QUOTES, 'UTF-8');

View file

@ -140,7 +140,7 @@ function mkpath($path,$mode = 0777) {
function copyfiles($src,$new) {
$d = dir($src);
while (($entry = $d->read())) {
while ($entry = $d->read()) {
if (is_file("$src/$entry")) {
copy("$src/$entry", "$new/$entry");
}
@ -154,14 +154,14 @@ function post_result_data($query,$data)
$post = "php_test_data=" . urlencode(base64_encode(preg_replace("/[\\x00]/", "[0x0]", $data)));
$r = new HTTPRequest($url,NULL,NULL,$post);
return $this->response_headers['Status']=='200';
}
}
function execute($command, $args=NULL, $input=NULL, $cwd=NULL, $env=NULL)
{
$data = "";
if (gettype($args)=='array') {
if (is_array($args)) {
$args = join($args,' ');
}
$commandline = "$command $args";
@ -179,7 +179,7 @@ function execute($command, $args=NULL, $input=NULL, $cwd=NULL, $env=NULL)
return NULL;
}
}
fclose($pipes[0]);
while (true) {
@ -247,7 +247,7 @@ class HTTPRequest
/*
URL is the full url
headers is assoc array of outgoing http headers
options may include
timeout
proxy_host
@ -255,7 +255,7 @@ class HTTPRequest
proxy_user
proxy_pass
method (GET|POST)
post data is, well, post data. It is not processed so
multipart stuff must be prepared before calling this
(or add it to class)
@ -269,14 +269,14 @@ class HTTPRequest
$this->postdata = &$postdata;
$this->doRequest();
}
function doRequest()
{
if (!$this->_validateUrl()) return;
if (isset($this->options['timeout']))
if (isset($this->options['timeout']))
$this->timeout = (int)$this->options['timeout'];
$this->_sendHTTP();
}
@ -295,7 +295,7 @@ class HTTPRequest
$this->urlparts['path'] = '/';
return TRUE;
}
function _parseResponse()
{
if (preg_match("/^(.*?)\r?\n\r?\n(.*)/s", $this->incoming_payload, $match)) {
@ -319,7 +319,7 @@ class HTTPRequest
$this->errmsg = 'Invalid HTTP Response';
return FALSE;
}
function &_getRequest()
{
$fullpath = $this->urlparts['path'].
@ -343,13 +343,13 @@ class HTTPRequest
$headertext .= "$k: $v\r\n";
}
$method = trim($this->options['method'])?strtoupper(trim($this->options['method'])):'GET';
$this->outgoing_payload =
$this->outgoing_payload =
"$method $fullpath HTTP/1.0\r\n".
$headertext."\r\n".
$this->postdata;
return $this->outgoing_payload;
}
function _sendHTTP()
{
$this->_getRequest();
@ -357,7 +357,7 @@ class HTTPRequest
$port = $this->urlparts['port'];
if (isset($this->options['proxy_host'])) {
$host = $this->options['proxy_host'];
$port = isset($this->options['proxy_port'])?$this->options['proxy_port']:8080;
$port = $this->options['proxy_port'] ?? 8080;
}
// send
if ($this->timeout > 0) {
@ -378,7 +378,7 @@ class HTTPRequest
$this->errmsg = "Error Sending Request Data to $host";
return NULL;
}
while ($data = fread($fp, 32768)) {
$this->incoming_payload .= $data;
}
@ -422,7 +422,7 @@ class testHarness {
'w' => array('TEST_WEB' ,'' ,0 ,'run tests via http'),
'x' => array('TEST_WEB_EXT' ,'file ext' ,'php' ,'http file extension to use')
);
public $conf = array();
public $test_to_run = array();
public $test_files = array();
@ -439,7 +439,7 @@ class testHarness {
public $test_executable_iscgi = false;
public $inisettings; // the test executables settings, used for web tests
public $iswin32 = false;
public $ddash = "=====================================================================";
public $sdash = "---------------------------------------------------------------------";
@ -463,7 +463,7 @@ class testHarness {
'error_append_string'=>'',
'auto_prepend_file'=>'',
'auto_append_file'=>'',
);
);
public $env = array();
public $info_params = array();
@ -472,7 +472,7 @@ class testHarness {
$this->checkRequirements();
$this->env = $_ENV;
$this->removeSensitiveEnvVars();
$this->initializeConfiguration();
$this->parseArgs();
$this->setTestPaths();
@ -490,13 +490,13 @@ class testHarness {
$this->conf['TEST_PHP_SRCDIR'] = str_replace('/','\\',$this->conf['TEST_PHP_SRCDIR']);
$this->conf['TEST_BASE_PATH'] = str_replace('/','\\',$this->conf['TEST_BASE_PATH']);
}
if (!$this->conf['TEST_WEB'] && !is_executable($this->conf['TEST_PHP_EXECUTABLE'])) {
$this->error("invalid PHP executable specified by TEST_PHP_EXECUTABLE = " .
$this->conf['TEST_PHP_EXECUTABLE']);
return false;
}
$this->getInstalledExtensions();
$this->getExecutableInfo();
$this->getExecutableIniSettings();
@ -506,11 +506,11 @@ class testHarness {
// add TEST_PHP_SRCDIR to the include path, this facilitates
// tests including files from src/tests
//$this->ini_overwrites['include_path'] = $this->cwd.($this->iswin32?';.;':':.:').$this->exec_info['INCLUDE_PATH'];
$params = array();
settings2array($this->ini_overwrites,$params);
$this->info_params = settings2params($params);
$this->contextHeader();
if ($this->conf['TEST_CONTEXT_INFO']) return;
$this->loadFileList();
@ -524,7 +524,7 @@ class testHarness {
$out = $this->runscript(PHP_INI_SETTINGS_SCRIPT,true);
$this->inisettings = unserialize($out);
}
function getExecutableInfo()
{
$out = $this->runscript(PHP_INFO_SCRIPT,true);
@ -540,7 +540,7 @@ class testHarness {
}
$this->exec_info = $info;
}
function getInstalledExtensions()
{
// get the list of installed extensions
@ -579,21 +579,21 @@ class testHarness {
}
}
// Use this function to do any displaying of text, so that
// things can be over-written as necessary.
function writemsg($msg) {
echo $msg;
}
// Another wrapper function, this one should be used any time
// a particular test passes or fails
function showstatus($item, $status, $reason = '') {
switch($status) {
case 'PASSED':
$this->writemsg("PASSED: $item ($reason)\n");
@ -606,8 +606,8 @@ class testHarness {
break;
}
}
function help()
{
$usage = "usage: php run-tests.php [options]\n";
@ -616,17 +616,17 @@ class testHarness {
}
return $usage;
}
function parseArgs() {
global $argc;
global $argv;
global $_SERVER;
if (!isset($argv)) {
$argv = $_SERVER['argv'];
$argc = $_SERVER['argc'];
}
$conf = NULL;
for ($i=1; $i<$argc;) {
if ($argv[$i][0] != '-') continue;
@ -638,7 +638,7 @@ class testHarness {
switch($opt) {
case 'c':
/* TODO: Implement configuraiton file */
include($value);
include $value;
if (!isset($conf)) {
$this->writemsg("Invalid configuration file\n");
exit(1);
@ -655,13 +655,13 @@ class testHarness {
if ($this->xargs[$opt][1] && isset($value))
$this->conf[$this->xargs[$opt][0]] = $value;
else if (!$this->xargs[$opt][1])
$this->conf[$this->xargs[$opt][0]] = isset($value)?$value:1;
$this->conf[$this->xargs[$opt][0]] = $value ?? 1;
else
$this->error("Invalid argument setting for argument $opt, should be [{$this->xargs[$opt][1]}]\n");
break;
}
}
// set config into environment, this allows
// executed tests to find out about the test
// configurations. config file or args overwrite
@ -680,14 +680,14 @@ class testHarness {
$this->env['SSH_AUTH_SOCK']='deleted';
$this->env['SSH_TTY']='deleted';
}
function setEnvConfigVar($name)
{
if (isset($this->env[$name])) {
$this->conf[$name] = $this->env[$name];
}
}
function initializeConfiguration()
{
foreach ($this->xargs as $arg=>$arg_info) {
@ -715,7 +715,7 @@ class testHarness {
}
}
}
function test_sort($a, $b) {
$ta = strpos($a, "{$this->cwd}/tests")===0 ? 1 + (strpos($a, "{$this->cwd}/tests/run-test")===0 ? 1 : 0) : 0;
$tb = strpos($b, "{$this->cwd}/tests")===0 ? 1 + (strpos($b, "{$this->cwd}/tests/run-test")===0 ? 1 : 0) : 0;
@ -745,7 +745,7 @@ class testHarness {
exit;
}
}
//
// Write test context information.
//
@ -767,12 +767,12 @@ class testHarness {
foreach ($this->conf as $k=>$v) {
$conf .= sprintf("%-20.s: %s\n",$k,$v);
}
$exeinfo = '';
if (!$this->conf['TEST_WEB'])
$exeinfo = "CWD : {$this->cwd}\n".
"PHP : {$this->conf['TEST_PHP_EXECUTABLE']}\n";
$this->writemsg("\n$this->ddash\n".
"$exeinfo$info\n".
"Test Harness Configuration:\n$conf\n".
@ -780,12 +780,12 @@ class testHarness {
"Test Dirs : $dirs\n".
"$this->ddash\n");
}
function loadFileList()
{
foreach ($this->test_dirs as $dir) {
if (is_dir($dir)) {
$this->findFilesInDir($dir, ($dir == 'ext'));
$this->findFilesInDir($dir, $dir == 'ext');
} else {
$this->test_files[] = $dir;
}
@ -793,7 +793,7 @@ class testHarness {
usort($this->test_files,array($this,"test_sort"));
$this->writemsg("found ".count($this->test_files)." files\n");
}
function moveTestFiles()
{
if (!$this->conf['TEST_BASE_PATH'] ||
@ -819,7 +819,7 @@ class testHarness {
}
$this->test_files = $files;
}
function findFilesInDir($dir,$is_ext_dir=FALSE,$ignore=FALSE)
{
$skip = array('.', '..', 'CVS');
@ -833,13 +833,13 @@ class testHarness {
}
$this->findFilesInDir("$dir/$name", FALSE, $ignore || $skip_ext);
}
// Cleanup any left-over tmp files from last run.
if (substr($name, -4) == '.tmp') {
@unlink("$dir/$name");
continue;
}
// Otherwise we're only interested in *.phpt files.
if (substr($name, -5) == '.phpt') {
if ($ignore) {
@ -852,7 +852,7 @@ class testHarness {
}
closedir($o);
}
function runHeader()
{
$this->writemsg("TIME START " . date('Y-m-d H:i:s', $this->start_time) . "\n".$this->ddash."\n");
@ -862,14 +862,14 @@ class testHarness {
$this->writemsg("Running all test files.\n");
}
}
function run()
{
$this->start_time = time();
$this->runHeader();
// Run selected tests.
if (count($this->test_to_run)) {
foreach($this->test_to_run as $name=>$runnable) {
if(!preg_match("/\.phpt$/", $name))
continue;
@ -891,10 +891,10 @@ class testHarness {
$this->writemsg("No tests were run.\n");
return;
}
$n_total = count($this->test_results);
$n_total += $this->ignored_by_ext;
$sum_results = array('PASSED'=>0, 'SKIPPED'=>0, 'FAILED'=>0);
foreach ($this->test_results as $v) {
$sum_results[$v]++;
@ -904,7 +904,7 @@ class testHarness {
foreach ($sum_results as $v => $n) {
$percent_results[$v] = (100.0 * $n) / $n_total;
}
$this->writemsg("\n".$this->ddash."\n".
"TIME END " . date('Y-m-d H:i:s', $this->end_time) . "\n".
$this->ddash."\n".
@ -920,7 +920,7 @@ class testHarness {
$this->sdash."\n".
"Time taken : " . sprintf("%4d seconds", $this->end_time - $this->start_time) . "\n".
$this->ddash."\n");
$failed_test_summary = '';
if ($this->failed_tests) {
$failed_test_summary .= "\n".$this->ddash."\n".
@ -930,7 +930,7 @@ class testHarness {
}
$failed_test_summary .= $this->ddash."\n";
}
if ($failed_test_summary && !$this->conf['NO_PHPTEST_SUMMARY']) {
$this->writemsg($failed_test_summary);
}
@ -944,9 +944,9 @@ class testHarness {
flush();
$user_input = fgets($fp, 10);
$just_save_results = (strtolower($user_input[0]) == 's');
if ($just_save_results || strlen(trim($user_input)) == 0 || strtolower($user_input[0]) == 'y') {
/*
/*
* Collect information about the host system for our report
* Fetch phpinfo() output so that we can see the PHP environment
* Make an archive of all the failed tests
@ -961,12 +961,12 @@ class testHarness {
$user_email = trim(fgets($fp, 1024));
$user_email = str_replace("@", " at ", str_replace(".", " dot ", $user_email));
}
$failed_tests_data = '';
$sep = "\n" . str_repeat('=', 80) . "\n";
$failed_tests_data .= $failed_test_summary . "\n";
if (array_sum($this->failed_tests)) {
foreach ($this->failed_tests as $test_info) {
$failed_tests_data .= $sep . $test_info['name'];
@ -978,7 +978,7 @@ class testHarness {
} else {
$status = "success";
}
$failed_tests_data .= "\n" . $sep . 'BUILD ENVIRONMENT' . $sep;
$failed_tests_data .= "OS:\n". PHP_OS. "\n\n";
$automake = $autoconf = $libtool = $compiler = 'N/A';
@ -999,7 +999,7 @@ class testHarness {
}
}
}
$failed_tests_data .= "Automake:\n$automake\n";
$failed_tests_data .= "Autoconf:\n$autoconf\n";
$failed_tests_data .= "Libtool:\n$libtool\n";
@ -1013,7 +1013,7 @@ class testHarness {
$failed_tests_data .= $sep . "PHPINFO" . $sep;
$failed_tests_data .= shell_exec($this->conf['TEST_PHP_EXECUTABLE'].' -dhtml_errors=0 -i');
$compression = 0;
if ($just_save_results ||
@ -1022,7 +1022,7 @@ class testHarness {
$fp = fopen($output_file, "w");
fwrite($fp, $failed_tests_data);
fclose($fp);
if (!$just_save_results)
echo "\nThe test script was unable to automatically send the report to PHP's QA Team\n";
echo "Please send ".$output_file." to ".PHP_QA_EMAIL." manually, thank you.\n";
@ -1032,7 +1032,7 @@ class testHarness {
}
}
}
if($this->conf['REPORT_EXIT_STATUS'] and $sum_results['FAILED']) {
exit(1);
}
@ -1041,7 +1041,7 @@ class testHarness {
function getINISettings(&$section_text)
{
$ini_settings = $this->ini_overwrites;
// Any special ini settings
// Any special ini settings
// these may overwrite the test defaults...
if (array_key_exists('INI', $section_text)) {
settings2array(preg_split( "/[\n\r]+/", $section_text['INI']), $ini_settings);
@ -1090,11 +1090,11 @@ class testHarness {
// eval fails if no newline
return eval("$data\n");
}
function getENVSettings(&$section_text,$testfile)
{
$env = $this->env;
// Any special environment settings
// Any special environment settings
// these may overwrite the test defaults...
if (array_key_exists('ENV', $section_text)) {
$sect = $this->evalSettings($testfile,$section_text['ENV']);
@ -1107,7 +1107,7 @@ class testHarness {
function getEvalTestSettings($section_text,$testfile)
{
$rq = array();
// Any special environment settings
// Any special environment settings
// these may overwrite the test defaults...
if ($section_text) {
$sect = $this->evalSettings($testfile,$section_text);
@ -1116,7 +1116,7 @@ class testHarness {
}
return $rq;
}
//
// Load the sections of the test file.
//
@ -1131,10 +1131,10 @@ class testHarness {
'_FILE' => $file,
'_DIR' => realpath(dirname($file)),
);
$fp = @fopen($file, "r")
or $this->error("Cannot open test file: $file");
$section = '';
while (!feof($fp)) {
$line = fgets($fp);
@ -1144,7 +1144,7 @@ class testHarness {
$section_text[$section] = '';
continue;
}
// Add to the section text.
$section_text[$section] .= $line;
}
@ -1199,13 +1199,13 @@ class testHarness {
if ($this->conf['TEST_PHP_DETAILED'] > 2)
print "SKIPIF: [$output]\n";
if (preg_match("/^skip/i", $output)){
$reason = (preg_match("/^skip\s*(.+)\$/", $output)) ? preg_replace("/^skip\s*(.+)\$/", "\\1", $output) : FALSE;
$reason = preg_match("/^skip\s*(.+)\$/", $output) ? preg_replace("/^skip\s*(.+)\$/", "\\1", $output) : FALSE;
$this->showstatus($section_text['TEST'], 'SKIPPED', $reason);
return 'SKIPPED';
}
if (preg_match("/^info/i", $output)) {
$reason = (preg_match("/^info\s*(.+)\$/", $output)) ? preg_replace("/^info\s*(.+)\$/", "\\1", $output) : FALSE;
$reason = preg_match("/^info\s*(.+)\$/", $output) ? preg_replace("/^info\s*(.+)\$/", "\\1", $output) : FALSE;
if ($reason) {
$tested .= " (info: $reason)";
}
@ -1221,15 +1221,15 @@ class testHarness {
{
if ($this->conf['TEST_PHP_DETAILED'])
$this->writemsg("\n=================\nTEST $file\n");
$section_text = $this->getSectionText($file);
if ($this->iswin32)
$shortname = str_replace($this->conf['TEST_BASE_PATH'].'\\', '', $file);
else
$shortname = str_replace($this->conf['TEST_BASE_PATH'].'/', '', $file);
$tested = $section_text['TEST']." [$shortname]";
if ($this->conf['TEST_WEB']) {
$tmp_file = preg_replace('/\.phpt$/','.'.$this->conf['TEST_WEB_EXT'],$file);
$uri = $this->conf['TEST_BASE_SCRIPT_NAME'].str_replace($this->conf['TEST_BASE_PATH'], '', $tmp_file);
@ -1238,19 +1238,19 @@ class testHarness {
$tmp_file = preg_replace('/\.phpt$/','.php',$file);
}
@unlink($tmp_file);
// unlink old test results
// unlink old test results
@unlink(preg_replace('/\.phpt$/','.diff',$file));
@unlink(preg_replace('/\.phpt$/','.log',$file));
@unlink(preg_replace('/\.phpt$/','.exp',$file));
@unlink(preg_replace('/\.phpt$/','.out',$file));
if (!$this->conf['TEST_WEB']) {
// Reset environment from any previous test.
$env = $this->getENVSettings($section_text,$tmp_file);
$ini_overwrites = $this->getINIParams($section_text);
}
// if this is a cgi test, prepare for it
$query_string = '';
$havepost = array_key_exists('POST', $section_text) && !empty($section_text['POST']);
@ -1274,9 +1274,9 @@ class testHarness {
$request = $this->getEvalTestSettings(@$section_text['REQUEST'],$tmp_file);
$headers = $this->getEvalTestSettings(@$section_text['HEADERS'],$tmp_file);
$method = isset($request['method'])?$request['method']:$havepost?'POST':'GET';
$method = $request['method'] ?? $havepost ? 'POST' : 'GET';
$query_string = $haveget?$section_text['GET']:'';
$options = array();
$options['method']=$method;
if (isset($this->conf['timeout'])) $options['timeout'] = $this->conf['timeout'];
@ -1284,7 +1284,7 @@ class testHarness {
if (isset($this->conf['proxy_port'])) $options['proxy_port'] = $this->conf['proxy_port'];
if (isset($this->conf['proxy_user'])) $options['proxy_user'] = $this->conf['proxy_user'];
if (isset($this->conf['proxy_pass'])) $options['proxy_pass'] = $this->conf['proxy_pass'];
$post = $havepost?$section_text['POST']:NULL;
$url = $this->conf['TEST_SERVER_URL'];
if (isset($request['SCRIPT_NAME']))
@ -1303,7 +1303,7 @@ class testHarness {
$this->writemsg("\nURL = $url\n");
} else if ($do_cgi) {
$query_string = $haveget?$section_text['GET']:'';
if (!array_key_exists('GATEWAY_INTERFACE', $env))
$env['GATEWAY_INTERFACE']='CGI/1.1';
if (!array_key_exists('SERVER_SOFTWARE', $env))
@ -1327,7 +1327,7 @@ class testHarness {
$env['SCRIPT_NAME']='';
if (!array_key_exists('SCRIPT_FILENAME', $env))
$env['SCRIPT_FILENAME']='';
if (array_key_exists('POST', $section_text) && (!$haveget || !empty($section_text['POST']))) {
$post = $section_text['POST'];
$content_length = strlen($post);
@ -1346,14 +1346,14 @@ class testHarness {
$env['CONTENT_LENGTH']='';
}
if ($this->conf['TEST_PHP_DETAILED'] > 1)
$this->writemsg("\nCONTENT_LENGTH = " . $env['CONTENT_LENGTH'] .
"\nCONTENT_TYPE = " . $env['CONTENT_TYPE'] .
"\nPATH_TRANSLATED = " . $env['PATH_TRANSLATED'] .
"\nPATH_INFO = " . $env['PATH_INFO'] .
"\nQUERY_STRING = " . $env['QUERY_STRING'] .
"\nREDIRECT_STATUS = " . $env['REDIRECT_STATUS'] .
"\nREQUEST_METHOD = " . $env['REQUEST_METHOD'] .
"\nSCRIPT_NAME = " . $env['SCRIPT_NAME'] .
$this->writemsg("\nCONTENT_LENGTH = " . $env['CONTENT_LENGTH'] .
"\nCONTENT_TYPE = " . $env['CONTENT_TYPE'] .
"\nPATH_TRANSLATED = " . $env['PATH_TRANSLATED'] .
"\nPATH_INFO = " . $env['PATH_INFO'] .
"\nQUERY_STRING = " . $env['QUERY_STRING'] .
"\nREDIRECT_STATUS = " . $env['REDIRECT_STATUS'] .
"\nREQUEST_METHOD = " . $env['REQUEST_METHOD'] .
"\nSCRIPT_NAME = " . $env['SCRIPT_NAME'] .
"\nSCRIPT_FILENAME = " . $env['SCRIPT_FILENAME'] . "\n");
/* not cgi spec to put query string on command line,
but used by a couple tests to catch a security hole
@ -1362,7 +1362,7 @@ class testHarness {
$args = $env['QUERY_STRING'];
$args = "$ini_overwrites $tmp_file \"$args\" 2>&1";
} else {
$args = $section_text['ARGS'] ? $section_text['ARGS'] : '';
$args = $section_text['ARGS'] ?: '';
$args = "$ini_overwrites $tmp_file $args 2>&1";
}
@ -1390,14 +1390,14 @@ class testHarness {
}
}
}
if ($this->conf['TEST_PHP_DETAILED'] > 2) {
echo "HEADERS: ";
print_r($headers);
echo "OUTPUT: \n$out\n";
}
// Does the output match what is expected?
$output = trim($out);
$output = preg_replace('/\r\n/',"\n",$output);
@ -1431,10 +1431,10 @@ class testHarness {
$start = $end = $length;
}
// quote a non re portion of the string
$temp = $temp . preg_quote(substr($wanted_re, $startOffset, ($start - $startOffset)), '/');
$temp .= preg_quote(substr($wanted_re, $startOffset, ($start - $startOffset)), '/');
// add the re unquoted.
if ($end > $start) {
$temp = $temp . '(' . substr($wanted_re, $start+2, ($end - $start-2)). ')';
$temp = $temp . '(' . substr($wanted_re, $start+2, $end - $start-2). ')';
}
$startOffset = $end + 2;
}
@ -1473,7 +1473,7 @@ class testHarness {
$wanted_re = str_replace('%f', '[+-]?\.?\d+\.?\d*(?:[Ee][+-]?\d+)?', $wanted_re);
$wanted_re = str_replace('%c', '.', $wanted_re);
// %f allows two points "-.0.0" but that is the best *simple* expression
}
/* DEBUG YOUR REGEX HERE
var_dump($wanted_re);
@ -1482,7 +1482,7 @@ class testHarness {
*/
$failed = !preg_match("/^$wanted_re\$/s", $output);
}
$skipexpect = false;
if (!$failed && $this->conf['TEST_WEB'] && isset($section_text['EXPECTHEADERS'])) {
$want = array();
@ -1502,7 +1502,7 @@ class testHarness {
$failed = TRUE;
}
}
// different servers may do different things on non-200 results
// for instance, IIS will deliver it's own error pages, so we
// cannot expect to match up the EXPECT section. We may however,
@ -1510,50 +1510,50 @@ class testHarness {
// need to change later.
$skipexpect = isset($headers['Status']) && $headers['Status'] != 200;
}
if (!$failed && !$skipexpect && isset($section_text['EXPECT'])) {
$wanted = $section_text['EXPECT'];
$wanted = preg_replace('/\r\n/',"\n",$wanted);
$failed = (0 != strcmp($output,$wanted));
}
if (!$failed) {
@unlink($tmp_file);
$this->showstatus($tested, 'PASSED');
return 'PASSED';
}
// Test failed so we need to report details.
$this->showstatus($tested, 'FAILED');
$this->failed_tests[] = array(
'name' => $file,
'test_name' => $tested,
'output' => preg_replace('/\.phpt$/','.log', $file),
'diff' => preg_replace('/\.phpt$/','.diff', $file)
);
if ($this->conf['TEST_PHP_DETAILED'])
$this->writemsg(generate_diff($wanted,$output)."\n");
// write .exp
if (strpos($this->conf['TEST_PHP_LOG_FORMAT'],'E') !== FALSE) {
$logname = preg_replace('/\.phpt$/','.exp',$file);
file_put_contents($logname,$wanted);
}
// write .out
if (strpos($this->conf['TEST_PHP_LOG_FORMAT'],'O') !== FALSE) {
$logname = preg_replace('/\.phpt$/','.out',$file);
file_put_contents($logname,$output);
}
// write .diff
if (strpos($this->conf['TEST_PHP_LOG_FORMAT'],'D') !== FALSE) {
$logname = preg_replace('/\.phpt$/','.diff',$file);
file_put_contents($logname,generate_diff($wanted,$output));
}
// write .log
if (strpos($this->conf['TEST_PHP_LOG_FORMAT'],'L') !== FALSE) {
$logname = preg_replace('/\.phpt$/','.log',$file);
@ -1572,7 +1572,7 @@ class testHarness {
//
// Write an error in a format recognizable to Emacs or MSVC.
//
function error_report($testname,$logname,$tested)
function error_report($testname,$logname,$tested)
{
$testname = realpath($testname);
$logname = realpath($logname);