Re: [PHP-CVS] svn: /php/php-src/trunk/ run-tests.php

2009-12-16 Thread Jani Taskinen
Why didn't you merge this to all branches? The run-test.php has so far 
been same in all of them. Can't really do regression testing if you 
change how tests are run for one branch..:)


--Jani

On 12/16/2009 01:16 PM, Dmitry Stogov wrote:

dmitry   Wed, 16 Dec 2009 11:16:03 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=292196

Log:
Fixed test engine to support non utf-8 tests

Changed paths:
 U   php/php-src/trunk/run-tests.php

Modified: php/php-src/trunk/run-tests.php
===
--- php/php-src/trunk/run-tests.php 2009-12-16 11:15:22 UTC (rev 292195)
+++ php/php-src/trunk/run-tests.php 2009-12-16 11:16:03 UTC (rev 292196)
@@ -1130,6 +1130,17 @@
}
  }

+function binary_section($section) {
+   return ($section == 'FILE' ||
+   $section == 'FILEEOF' ||
+   $section == 'EXPECT' ||
+   $section == 'EXPECTF' ||
+   $section == 'EXPECTREGEX' ||
+   $section == 'EXPECTHEADERS' ||
+   $section == 'SKIPIF' ||
+   $section == 'CLEAN');
+}
+
  //
  //  Run an individual test case.
  //
@@ -1159,7 +1170,7 @@
// Load the sections of the test file.
$section_text = array('TEST' =  '');

-   $fp = fopen($file, rt) or error(Cannot open test file: $file);
+   $fp = fopen($file, rb) or error(Cannot open test file: $file);

$borked = false;
$bork_info = '';
@@ -1187,28 +1198,41 @@
while (!feof($fp)) {
$line = fgets($fp);

+   if ($line === false) {
+   break;
+   }
+
// Match the beginning of a section.
-   if (preg_match('/^--([_A-Z]+)--/', $line, $r)) {
-   $section = $r[1];
+   if (preg_match(b'/^--([_A-Z]+)--/', $line, $r)) {
+   $section = (unicode)$r[1];

if (isset($section_text[$section])) {
$bork_info = duplicated $section section;
$borked= true;
}

-   $section_text[$section] = '';
+   $section_text[$section] = binary_section($section) ? 
b'' : '';
$secfile = $section == 'FILE' || $section == 'FILEEOF' 
|| $section == 'FILE_EXTERNAL';
$secdone = false;
continue;
}

+   if (!binary_section($section)) {
+   $line = unicode_decode($line, utf-8);
+   if ($line == false) {
+   $bork_info = cannot read test;
+   $borked = true;
+   break;
+   }
+   }
+
// Add to the section text.
if (!$secdone) {
$section_text[$section] .= $line;
}

// End of actual test?
-   if ($secfile  preg_match('/^===DONE===\s*$/', $line)) {
+   if ($secfile  preg_match(b'/^===DONE===\s*$/', $line)) {
$secdone = true;
}
}
@@ -1233,7 +1257,7 @@
}

if (@count($section_text['FILEEOF']) == 1) {
-   $section_text['FILE'] = 
preg_replace(/[\r\n]+$/, '', $section_text['FILEEOF']);
+   $section_text['FILE'] = 
preg_replace(b/[\r\n]+$/, b'', $section_text['FILEEOF']);
unset($section_text['FILEEOF']);
}

@@ -1776,7 +1800,9 @@
// quote a non re portion of the string
$temp = $temp . preg_quote(substr($wanted_re, 
$startOffset, ($start - $startOffset)),  b'/');
// add the re unquoted.
-   $temp = $temp . b'(' . substr($wanted_re, 
$start+2, ($end - $start-2)). b')';
+   if ($end  $start) {
+   $temp = $temp . b'(' . 
substr($wanted_re, $start+2, ($end - $start-2)). b')';
+   }
$startOffset = $end + 2;
}
$wanted_re = $temp;
@@ -1956,7 +1982,7 @@
  function comp_line($l1, $l2, $is_reg)
  {
if ($is_reg) {
-   return preg_match((binary) /^$l1$/s, (binary) $l2);
+   return preg_match(b'/^'. (binary) $l1 . b'$/s', (binary) $l2);
} else {
return !strcmp((binary) $l1, (binary) $l2);
}





--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-CVS] svn: /php/php-src/trunk/ run-tests.php

2009-07-29 Thread Jani Taskinen

On 07/29/2009 12:22 PM, Greg Beaver wrote:

cellog   Wed, 29 Jul 2009 09:22:57 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=286499

Log:
fix EXPECTF tests that have binary in their output by always processing output 
and expected output as binary

Changed paths:
 U   php/php-src/trunk/run-tests.php



This file should be same in all branches. Please sync it with the others 
too.


--Jani



--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php