helly           Wed Dec  5 14:54:08 2007 UTC

  Modified files:              (Branch: PHP_5_3)
    /php-src    run-tests.php 
  Log:
  - - Allow to check the out,exp and diff results on console while executing 
the tests
  
http://cvs.php.net/viewvc.cgi/php-src/run-tests.php?r1=1.226.2.37.2.35.2.4&r2=1.226.2.37.2.35.2.5&diff_format=u
Index: php-src/run-tests.php
diff -u php-src/run-tests.php:1.226.2.37.2.35.2.4 
php-src/run-tests.php:1.226.2.37.2.35.2.5
--- php-src/run-tests.php:1.226.2.37.2.35.2.4   Wed Dec  5 13:55:46 2007
+++ php-src/run-tests.php       Wed Dec  5 14:54:08 2007
@@ -24,7 +24,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: run-tests.php,v 1.226.2.37.2.35.2.4 2007/12/05 13:55:46 helly Exp $ */
+/* $Id: run-tests.php,v 1.226.2.37.2.35.2.5 2007/12/05 14:54:08 helly Exp $ */
 
 /* Sanity check to ensure that pcre extension needed by this script is 
available.
  * In the event it is not, print a nice error message indicating that this 
script will
@@ -260,7 +260,7 @@
 $no_clean = false;
 
 $cfgtypes = array('show', 'keep');
-$cfgfiles = array('skip', 'php', 'clean');
+$cfgfiles = array('skip', 'php', 'clean', 'out', 'diff', 'exp');
 $cfg = array();
 foreach($cfgtypes as $type) {
        $cfg[$type] = array();
@@ -285,11 +285,28 @@
                $switch = substr($argv[$i],1,1);
                $repeat = substr($argv[$i],0,1) == '-';
                while ($repeat) {
-                       $repeat = false;
                        if (!$is_switch) {
                                $switch = substr($argv[$i],1,1);
                        }
                        $is_switch = true;
+                       if ($repeat) {
+                               foreach($cfgtypes as $type) {
+                                       if (strpos($switch, '--'.$type) === 0) {
+                                               foreach($cfgfiles as $file) {
+                                                       if ($switch == 
'--'.$type.'-'.$file) {
+                                                               
$cfg[$type][$file] = true;
+                                                               $is_switch = 
false;
+                                                               break;
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+                       if (!$is_switch) {
+                               $is_switch = true;
+                               break;
+                       }
+                       $repeat = false;
                        switch($switch) {
                                case 'r':
                                case 'l':
@@ -327,15 +344,6 @@
                                                $cfg['keep'][$file] = true;
                                        }
                                        break;
-                               case '--keep-skip':
-                                       $cfg['keep']['skip'] = true;
-                                       break;
-                               case '--keep-php':
-                                       $cfg['keep']['php'] = true;
-                                       break;
-                               case '--keep-clean':
-                                       $cfg['keep']['clean'] = true;
-                                       break;
                                //case 'l'
                                case 'm':
                                        $leak_check = true;
@@ -369,15 +377,6 @@
                                                $cfg['show'][$file] = true;
                                        }
                                        break;
-                               case '--show-skip':
-                                       $cfg['show']['skip'] = true;
-                                       break;
-                               case '--show-php':
-                                       $cfg['show']['php'] = true;
-                                       break;
-                               case '--show-clean':
-                                       $cfg['show']['clean'] = true;
-                                       break;
                                case '--temp-source':
                                        $temp_source = $argv[++$i];
                                        break;
@@ -407,7 +406,7 @@
                                        $html_output = is_resource($html_file);
                                        break;
                                case '--version':
-                                       echo '$Revision: 1.226.2.37.2.35.2.4 
$'."\n";
+                                       echo '$Revision: 1.226.2.37.2.35.2.5 
$'."\n";
                                        exit(1);
 
                                case 'u':
@@ -425,8 +424,8 @@
     php run-tests.php [options] [files] [directories]
 
 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>. 
+    -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 no further test is specified then
                 all tests are executed (same as: -r <file> -w <file>).
 
@@ -444,13 +443,15 @@
                 with value 'bar').
 
     -m          Test for memory leaks with Valgrind.
-    
+
     -N          Always set (Test with unicode_semantics set off in PHP 6).
-    
-    -s <file>   Write output to <file>.
+
+    -p <php>    Specify PHP executable to run.
 
     -q          Quiet, no user interaction (same as environment 
NO_INTERACTION).
 
+    -s <file>   Write output to <file>.
+
     --verbose
     -v          Verbose mode.
 
@@ -458,21 +459,25 @@
     -h          This Help.
 
     --html <file> Generate HTML output.
-       
+
     --temp-source <sdir>  --temp-target <tdir> [--temp-urlbase <url>]
-                Write temporary files to <tdir> by replacing <sdir> from the 
-                filenames to generate with <tdir>. If --html is being used and 
+                Write temporary files to <tdir> by replacing <sdir> from the
+                filenames to generate with <tdir>. If --html is being used and
                 <url> given then the generated links are relative and prefixed
                 with the given url. In general you want to make <sdir> the path
-                to your source files and <tdir> some pach in your web page 
+                to your source files and <tdir> some pach in your web page
                 hierarchy with <url> pointing to <tdir>.
 
     --keep-[all|php|skip|clean]
-                Do not delete 'all' files, 'php' test file, 'skip' or 'clean' 
+                Do not delete 'all' files, 'php' test file, 'skip' or 'clean'
                 file.
 
-    --show-[all|php|skip|clean]
-                Show 'all' files, 'php' test file, 'skip' or 'clean' file.
+    --show-[all|php|skip|clean|exp|diff|out]
+                Show 'all' files, 'php' test file, 'skip' or 'clean' file. You
+                can also use this to show the output 'out', the expected result
+                'exp' or the difference between them 'exp'. The result types
+                get written independent of the log format, however 'diff' only
+                exists when a test fails.
 
     --no-clean  Do not execute clean section if any.
 
@@ -949,6 +954,23 @@
 }
 
 //
+//  Show file or result block
+//
+function show_file_block($file, $block, $section=NULL)
+{
+       global $cfg;
+
+       if ($cfg['show'][$file]) {
+               if (is_null($section)) {
+                       $section = strtoupper($file);
+               }
+               echo "\n========".$section."========\n";
+               echo rtrim($block);
+               echo "\n========DONE========\n";
+       }
+}
+
+//
 //  Run an individual test case.
 //
 function run_test($php, $file, $env)
@@ -1128,7 +1150,7 @@
                }
                $temp_filenames = array(
                        'file' => $copy_file,
-                       'diff' => $diff_filename, 
+                       'diff' => $diff_filename,
                        'log'  => $log_filename,
                        'exp'  => $exp_filename,
                        'out'  => $output_filename,
@@ -1144,7 +1166,7 @@
                $section_text['FILE'] = "# original source file: $shortname\n" 
. $section_text['FILE'];
        }
 
-       // unlink old test results      
+       // unlink old test results
        @unlink($diff_filename);
        @unlink($log_filename);
        @unlink($exp_filename);
@@ -1196,11 +1218,7 @@
        $warn = false;
        if (array_key_exists('SKIPIF', $section_text)) {
                if (trim($section_text['SKIPIF'])) {
-                       if ($cfg['show']['skip']) {
-                               echo "\n========SKIP========\n";
-                               echo $section_text['SKIPIF'];
-                               echo "========DONE========\n";
-                       }
+                       show_file_block('skip', $section_text['SKIPIF']);
                        save_text($test_skipif, $section_text['SKIPIF'], 
$temp_skipif);
                        $extra = substr(PHP_OS, 0, 3) !== "WIN" ?
                                "unset REQUEST_METHOD; unset QUERY_STRING; 
unset PATH_TRANSLATED; unset SCRIPT_FILENAME; unset REQUEST_METHOD;": "";
@@ -1307,11 +1325,7 @@
        }
        
        // We've satisfied the preconditions - run the test!
-       if ($cfg['show']['php']) {
-               echo "\n========TEST========\n";
-               echo $section_text['FILE'];
-               echo "========DONE========\n";
-       }
+       show_file_block('php', $section_text['FILE'], 'TEST');
        save_text($test_file, $section_text['FILE'], $temp_file);
        if (array_key_exists('GET', $section_text)) {
                $query_string = trim($section_text['GET']);
@@ -1406,11 +1420,7 @@
 
        if (array_key_exists('CLEAN', $section_text) && (!$no_clean || 
$cfg['keep']['clean'])) {
                if (trim($section_text['CLEAN'])) {
-                       if ($cfg['show']['clean']) {
-                               echo "\n========CLEAN=======\n";
-                               echo $section_text['CLEAN'];
-                               echo "========DONE========\n";
-                       }
+                       show_file_block('clean', $section_text['CLEAN']);
                        save_text($test_clean, trim($section_text['CLEAN']), 
$temp_clean);
                        if (!$no_clean) {
                                $clean_params = array();
@@ -1485,12 +1495,14 @@
                $output_headers = join("\n", $output_headers);
        }
 
+       show_file_block('out', $output);
        if (isset($section_text['EXPECTF']) || 
isset($section_text['EXPECTREGEX'])) {
                if (isset($section_text['EXPECTF'])) {
                        $wanted = trim($section_text['EXPECTF']);
                } else {
                        $wanted = trim($section_text['EXPECTREGEX']);
                }
+               show_file_block('exp', $wanted);
                $wanted_re = preg_replace('/\r\n/',"\n",$wanted);
                if (isset($section_text['EXPECTF'])) {
                        $wanted_re = preg_quote($wanted_re, '/');
@@ -1527,6 +1539,7 @@
        } else {
                $wanted = trim($section_text['EXPECT']);
                $wanted = preg_replace('/\r\n/',"\n",$wanted);
+               show_file_block('exp', $wanted);
                // compare and leave on success
                if (!strcmp($output, $wanted)) {
                        $passed = true;
@@ -1569,17 +1582,19 @@
                if (strpos($log_format,'E') !== FALSE && 
file_put_contents($exp_filename, $wanted) === FALSE) {
                        error("Cannot create expected test output - 
$exp_filename");
                }
-       
+
                // write .out
                if (strpos($log_format,'O') !== FALSE && 
file_put_contents($output_filename, $output) === FALSE) {
                        error("Cannot create test output - $output_filename");
                }
-       
+
                // write .diff
-               if (strpos($log_format,'D') !== FALSE && 
file_put_contents($diff_filename, generate_diff($wanted,$wanted_re,$output)) 
=== FALSE) {
+               $diff = generate_diff($wanted,$wanted_re,$output);
+               show_file_block('diff', $diff);
+               if (strpos($log_format,'D') !== FALSE && 
file_put_contents($diff_filename, $diff) === FALSE) {
                        error("Cannot create test diff - $diff_filename");
                }
-       
+
                // write .log
                if (strpos($log_format,'L') !== FALSE && 
file_put_contents($log_filename, "
 ---- EXPECTED OUTPUT

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

Reply via email to