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