Hello Gregory, Saturday, January 5, 2008, 4:25:00 AM, you wrote:
> Index: run-tests.php > =================================================================== > RCS file: /repository/php-src/run-tests.php,v > retrieving revision 1.226.2.37.2.35.2.10 > diff -u -r1.226.2.37.2.35.2.10 run-tests.php > --- run-tests.php 1 Jan 2008 06:15:40 -0000 1.226.2.37.2.35.2.10 > +++ run-tests.php 5 Jan 2008 03:22:01 -0000 > @@ -1034,7 +1034,7 @@ > if (preg_match('/^--([_A-Z]+)--/', $line, $r)) { > $section = $r[1]; > $section_text[$section] = ''; > - $secfile = $section == 'FILE' || $section == > 'FILEEOF'; > + $secfile = $section == 'FILE' || $section == > 'FILEEOF' || $section > == 'FILE_EXTERNAL'; > $secdone = false; > continue; > } > @@ -1060,7 +1060,7 @@ > $borked = false; > } > } else { > - if (@count($section_text['FILE']) + > @count($section_text['FILEEOF']) != 1) { > + if (@count($section_text['FILE']) + > @count($section_text['FILEEOF']) + > @count($section_text['FILE_EXTERNAL']) != 1) { > $bork_info = "missing section --FILE--"; > $borked = true; > } > @@ -1068,6 +1068,17 @@ > $section_text['FILE'] = preg_replace("/[\r\n]+$/", '', > $section_text['FILEEOF']); > unset($section_text['FILEEOF']); > } > + if (@count($section_text['FILE_EXTERNAL']) == 1) { > + // don't allow tests to retrieve files from anywhere > but this > subdirectory > + $section_text['FILE_EXTERNAL'] = dirname($file) . '/' > . > trim(str_replace('..', '', $section_text['FILE_EXTERNAL'])); > + if (@file_exists($section_text['FILE_EXTERNAL'])) { > + $section_text['FILE'] = > file_get_contents($section_text['FILE_EXTERNAL']); > + unset($section_text['FILE_EXTERNAL']); > + } else { > + $bork_info = "could not load > --FILE_EXTERNAL-- " . > dirname($file) . '/' . trim($section_text['FILE_EXTERNAL']); > + $borked = true; > + } > + } > if ((@count($section_text['EXPECT']) + > @count($section_text['EXPECTF']) + > @count($section_text['EXPECTREGEX'])) != 1) { > $bork_info = "missing section --EXPECT--, --EXPECTF-- > or > --EXPECTREGEX--"; > $borked = true; > @@ -1093,7 +1104,7 @@ > $tested = trim($section_text['TEST']); > > /* For GET/POST tests, check if cgi sapi is available and if it is, > use it. */ > - if (!empty($section_text['GET']) || !empty($section_text['POST']) || > !empty($section_text['POST_RAW']) || !empty($section_text['COOKIE'])) { > + if (!empty($section_text['GET']) || !empty($section_text['POST']) || > !empty($section_text['POST_RAW']) || !empty($section_text['COOKIE']) || > !empty($section_text['EXPECT_HEADERS'])) { > if (isset($php_cgi)) { > $old_php = $php; > $php = $php_cgi .' -C '; > @@ -1355,12 +1366,15 @@ > $raw_lines = explode("\n", $post); > > $request = ''; > + $started = false; > foreach ($raw_lines as $line) { > if (empty($env['CONTENT_TYPE']) && > preg_match('/^Content-Type:(.*)/i', $line, $res)) { > $env['CONTENT_TYPE'] = > trim(str_replace("\r", '', $res[1])); > continue; > } > - $request .= $line . "\n"; > + if ($started) $request .= "\n"; > + $started = true; > + $request .= $line; > } > > $env['CONTENT_LENGTH'] = strlen($request); Please apply this to PHP 5.2, 5.3 and HEAD. Best regards, Marcus -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php