helly           Sat Aug  9 13:21:19 2003 EDT

  Modified files:              
    /php-src    run-tests.php 
  Log:
  Complain about borked tests instead of spitting out errors
  
Index: php-src/run-tests.php
diff -u php-src/run-tests.php:1.172 php-src/run-tests.php:1.173
--- php-src/run-tests.php:1.172 Sat Aug  9 07:57:02 2003
+++ php-src/run-tests.php       Sat Aug  9 13:21:19 2003
@@ -247,7 +247,7 @@
 Options:
     -l <file>   Read the testfiles to be executed from <file>. After the test 
                 has finished all failed tests are written to the same <file>. 
-                If the list is empty and now further test is specified then
+                If the list is empty and no further test is specified then
                 all tests are executed.
 
     -r <file>   Read the testfiles to be executed from <file>.
@@ -641,7 +641,7 @@
 
        // Load the sections of the test file.
        $section_text = array(
-               'TEST'   => '(unnamed test)',
+               'TEST'   => '',
                'SKIPIF' => '',
                'GET'    => '',
                'ARGS'   => '',
@@ -649,7 +649,17 @@
 
        $fp = @fopen($file, "r") or error("Cannot open test file: $file");
 
-       $section = '';
+       if (!feof($fp)) {
+               $line = fgets($fp);
+       } else {
+               echo "BORK empty test [$file]\n";
+               return 'BORKED';
+       }
+       if (!ereg('^--TEST--',$line,$r)) {
+               echo "BORK tests must start with --TEST-- [$file]\n";
+               return 'BORKED';
+       }
+       $section = 'TEST';
        while (!feof($fp)) {
                $line = fgets($fp);
 
@@ -663,6 +673,14 @@
                // Add to the section text.
                $section_text[$section] .= $line;
        }
+       if ([EMAIL PROTECTED]($section_text['FILE'])) {
+               echo "BORK missing section --FILE-- [$file]\n";
+               return 'BORKED';
+       }
+       if (!(@count($section_text['EXPECT']) + @count($section_text['EXPECTF']) + 
@count($section_text['EXPECTREGEX']))) {
+               echo "BORK missing section --EXPECT--, --EXPECTF-- or --EXPECTREGEX-- 
[$file]\n";
+               return 'BORKED';
+       }
        fclose($fp);
 
        /* For GET/POST tests, check if cgi sapi is avaliable and if it is, use it. */
@@ -868,7 +886,7 @@
        if ($warn) {
                echo "WARN $tested$info\n";
        } else {
-               echo "FAIL $tested\n";
+               echo "FAIL $tested$info\n";
        }
 
        $PHP_FAILED_TESTS[] = array(
@@ -933,7 +951,7 @@
                $r = explode("\n", $wanted_re);
                for($idx = 0; $idx < min(count($o),count($r)); $idx++) {
                        if (preg_match('/^'.$r[$idx].'$/s', $o[$idx])) {
-                               $w[$idx] = $o[$idx];  
+                               $w[$idx] = $o[$idx];
                        }
                }
        }
@@ -945,6 +963,8 @@
        foreach($o1 as $idx => $val) $o2[sprintf("%03d>",$idx)] = sprintf("%03d+ ", 
$idx+1).$val;
        $diff = array_merge($w2, $o2);
        ksort($diff);
+       $r = is_null($wanted_re) ? $w : explode("\n", $wanted_re);
+       $diff = generate_array_diff($r,$o,!is_null($wanted_re),$w);
        return implode("\r\n", $diff);
 }
 
@@ -987,7 +1007,7 @@
        $n_total = count($test_results);
        $n_total += $ignored_by_ext;
        
-       $sum_results = array('PASSED'=>0, 'WARNED'=>0, 'SKIPPED'=>0, 'FAILED'=>0);
+       $sum_results = array('PASSED'=>0, 'WARNED'=>0, 'SKIPPED'=>0, 'FAILED'=>0, 
'BORKED'=>0);
        foreach ($test_results as $v) {
                $sum_results[$v]++;
        }
@@ -1014,7 +1034,12 @@
 ";
        }
        $summary .= "
-Number of tests : " . sprintf("%4d",$n_total) . "
+Number of tests : " . sprintf("%4d",$n_total);
+       if ($sum_results['BORKED']) {
+       $summary .= "
+Tests borked    : " . sprintf("%4d 
(%2.1f%%)",$sum_results['BORKED'],$percent_results['BORKED']);
+       }
+       $summary .= "
 Tests skipped   : " . sprintf("%4d 
(%2.1f%%)",$sum_results['SKIPPED'],$percent_results['SKIPPED']) . "
 Tests warned    : " . sprintf("%4d 
(%2.1f%%)",$sum_results['WARNED'],$percent_results['WARNED']) . "
 Tests failed    : " . sprintf("%4d 
(%2.1f%%)",$sum_results['FAILED'],$percent_results['FAILED']) . "



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

Reply via email to