Commit:    ca7438d6799e51f60e8c56ec93c5a39562f11f71
Author:    zoe slattery <z...@php.net>         Tue, 14 Aug 2012 19:44:57 +0100
Parents:   d212f75880adaeb7e08e1b3cb1f58f8fd616e248
Branches:  master

Link:       
http://git.php.net/?p=phpruntests.git;a=commitdiff;h=ca7438d6799e51f60e8c56ec93c5a39562f11f71

Log:
committing stable code on the way tio redir impl

Changed paths:
  M  src/run-tests.php
  M  src/taskScheduler/rtTaskScheduler.php
  M  src/taskScheduler/rtTaskSchedulerFile.php
  M  src/taskScheduler/rtTaskTestGroup.php
  M  src/testcase/rtPhpTest.php
  M  src/testgroup/rtGroupConfiguration.php
  M  src/testgroup/rtPhpTestGroup.php
  M  src/testrun/rtPhpTestRun.php
  M  tests/rtPhpTestGroupTest.php

diff --git a/src/run-tests.php b/src/run-tests.php
index a71ba30..3d11d00 100644
--- a/src/run-tests.php
+++ b/src/run-tests.php
@@ -3,6 +3,7 @@
  * Main php file for run-tests.php
  */
 
+
 error_reporting(E_ALL);
 
 /**
diff --git a/src/taskScheduler/rtTaskScheduler.php 
b/src/taskScheduler/rtTaskScheduler.php
index 5b50fd9..56bc3a8 100644
--- a/src/taskScheduler/rtTaskScheduler.php
+++ b/src/taskScheduler/rtTaskScheduler.php
@@ -131,6 +131,7 @@ class rtTaskScheduler
                        $task = $this->taskList[$i];
                        $task->run();
                        $results = $task->getResult();
+
                        rtTestOutputWriter::flushResult($results, 
$this->reportStatus);
                        $this->resultList[] = $results;
                }
diff --git a/src/taskScheduler/rtTaskSchedulerFile.php 
b/src/taskScheduler/rtTaskSchedulerFile.php
index 7f98828..326c615 100644
--- a/src/taskScheduler/rtTaskSchedulerFile.php
+++ b/src/taskScheduler/rtTaskSchedulerFile.php
@@ -220,7 +220,8 @@ class rtTaskSchedulerFile extends rtTaskScheduler
                                print "ERROR unserialize - cid $cid\n";
                                continue;
                        }
-
+                       
+                       
                        $task->run();
                        
                        $e = microtime(true);
diff --git a/src/taskScheduler/rtTaskTestGroup.php 
b/src/taskScheduler/rtTaskTestGroup.php
index 6f9c665..f1c225e 100644
--- a/src/taskScheduler/rtTaskTestGroup.php
+++ b/src/taskScheduler/rtTaskTestGroup.php
@@ -32,7 +32,7 @@ class rtTaskTestGroup extends rtTask implements 
rtTaskInterface
        public function run()
        {
                $testGroup = new rtPhpTestGroup($this->runConfiguration, 
$this->subDirectory);
-               $testGroup->runGroup($this->runConfiguration);
+               $testGroup->run();
         $this->result = $testGroup->getResults();
                return true;
        }
diff --git a/src/testcase/rtPhpTest.php b/src/testcase/rtPhpTest.php
index ce2141a..4e572e0 100644
--- a/src/testcase/rtPhpTest.php
+++ b/src/testcase/rtPhpTest.php
@@ -106,7 +106,7 @@ class rtPhpTest
             $this->testStatus = $this->sections['SKIPIF']->run($this, 
$runConfiguration);
             
$this->testStatus->setExecutedPhpCommand($this->sections['SKIPIF']->getPhpCommand());
         }
-
+        //TODO: D'oh - what is this meant to be?
         if (!$this->testStatus->getValue('skip') && 
!$this->testStatus->getValue('skip')) {
             $this->testStatus = $this->fileSection->run($this, 
$runConfiguration);
             
$this->testStatus->setExecutedPhpCommand($this->fileSection->getPhpCommand());
diff --git a/src/testgroup/rtGroupConfiguration.php 
b/src/testgroup/rtGroupConfiguration.php
index b3d9bbc..00548e4 100644
--- a/src/testgroup/rtGroupConfiguration.php
+++ b/src/testgroup/rtGroupConfiguration.php
@@ -1 +1,31 @@
 <?php
+/**
+ * rtGroupConfiguration
+ *
+ * Defines environment for a group of test. Could be either setting group 
+ * environment variables (as in redirected tests) of setting parameters 
+ * to stop the group being run in parallel
+ *
+ * @category   Testing
+ * @package    RUNTESTS
+ * @author     Zoe Slattery <z...@php.net>
+ * @author     Stefan Priebsch <sprieb...@php.net>
+ * @copyright  2009 The PHP Group
+ * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
+ *
+ */
+class rtGroupConfiguration
+{
+       protected $testDirectory;
+       
+
+    public function __construct(rtRuntestsConfiguration $runConfiguration, 
$directory)
+    {
+        $this->testDirectory = $directory;
+    }
+    
+    public function parseRedirect(rtPHPTest $redirectedTest) {
+       var_dump($redirectedTest->getSection('REDIRECTTEST'));          
+    }
+}
+
diff --git a/src/testgroup/rtPhpTestGroup.php b/src/testgroup/rtPhpTestGroup.php
index 735d2df..b052284 100644
--- a/src/testgroup/rtPhpTestGroup.php
+++ b/src/testgroup/rtPhpTestGroup.php
@@ -12,19 +12,21 @@
  * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
  *
  */
-class rtPhpTestGroup
+class rtPhpTestGroup extends rtTask implements rtTaskInterface
 {
     protected $testDirectory;
     protected $testCases;
-    protected $results;
+    protected $result = null;
+    protected $runConfiguration;
 
     public function __construct(rtRuntestsConfiguration $runConfiguration, 
$directory)
     {
+       $this->runConfiguration = $runConfiguration;
         $this->testDirectory = $directory;
-        $this->init($runConfiguration);
+        $this->init();
     }
 
-    public function init(rtRuntestsConfiguration $runConfiguration)
+    public function init()
     {      
         $this->testFiles = rtUtil::getTestList($this->testDirectory);
 
@@ -47,13 +49,13 @@ class rtPhpTestGroup
             $testStatus = new rtTestStatus($testFile->getTestName());
             if ($testFile->arePreconditionsMet() ) {
                 // Create a new test case               
-                $this->testCases[] = new rtPhpTest($testFile->getContents(), 
$testFile->getTestName(), $testFile->getSectionHeadings(), $runConfiguration, 
$testStatus);
+                $this->testCases[] = new rtPhpTest($testFile->getContents(), 
$testFile->getTestName(), $testFile->getSectionHeadings(), 
$this->runConfiguration, $testStatus);
             } elseif 
(in_array("REDIRECTTEST",$testFile->getSectionHeadings())){
                //Redirect handler, save the test case for processing after the 
main groups have finished.
                //Check to make sure that it shouldn't be skipped, if skipped 
don't save it
-               $redirectedTest= new rtPhpTest($testFile->getContents(), 
$testFile->getTestName(), $testFile->getSectionHeadings(), $runConfiguration, 
$testStatus);
+               $redirectedTest= new rtPhpTest($testFile->getContents(), 
$testFile->getTestName(), $testFile->getSectionHeadings(), 
$this->runConfiguration, $testStatus);
                if($redirectedTest->hasSection('SKIPIF')) {
-                       $redirectedTest->runSkipif($runConfiguration);
+                       $redirectedTest->runSkipif($this->runConfiguration);
                        if($redirectedTest->getStatus()->getValue('skip')) {
                                $testStatus->setTrue('skip');
                                $testStatus->setMessage('skip', 
$testFile->getExitMessage());
@@ -61,47 +63,48 @@ class rtPhpTestGroup
                                $testStatus->setTrue('redirected');
                                $testStatus->setMessage('redirected', 
$testFile->getExitMessage());
                        }
-                       $this->results[] = new rtTestResults($redirectedTest, 
$testStatus);
+                       $this->result[] = new rtTestResults($redirectedTest, 
$testStatus);
                }
                
             }else {
                 $testStatus->setTrue('bork');
                 $testStatus->setMessage('bork', $testFile->getExitMessage());
-                $this->results[] = new rtTestResults(null, $testStatus);
+                $this->result[] = new rtTestResults(null, $testStatus);
             }
         }
     }
 
-    public function runGroup(rtRuntestsConfiguration $runConfiguration)
+    public function run()
     {
+       
         if (count($this->testCases) == 0) {
             return;
         }
+       
         foreach ($this->testCases as $testCase) {
 
-            $testCase->executeTest($runConfiguration);
+            $testCase->executeTest($this->runConfiguration);
              
             $testResult = new rtTestResults($testCase);
-            $testResult->processResults($testCase, $runConfiguration);
-            $this->results[] = $testResult;
+            $testResult->processResults($testCase, $this->runConfiguration);
+            $this->result[] = $testResult;
         }
     }
 
     public function writeGroup($outType, $cid=null)
     {
-        $testOutputWriter = rtTestOutputWriter::getInstance($this->results, 
$outType);
+        $testOutputWriter = rtTestOutputWriter::getInstance($this->result, 
$outType);
         $testOutputWriter->write($this->testDirectory, $cid);
     }
     
     
-    public function getResults()
-    {
-       return $this->results;
-    }
-    
     public function getTestCases() {
        return $this->testCases;
     }
+    
+    public function getResults() {
+       return $this->result;
+    }
 
 }
 ?>
diff --git a/src/testrun/rtPhpTestRun.php b/src/testrun/rtPhpTestRun.php
index b3ed91f..cacac1b 100644
--- a/src/testrun/rtPhpTestRun.php
+++ b/src/testrun/rtPhpTestRun.php
@@ -56,12 +56,16 @@ class rtPhpTestRun
                $php = $this->runConfiguration->getSetting('PhpExecutable');
                
$this->runConfiguration->setEnvironmentVariable('TEST_PHP_EXECUTABLE', $php);
 
-
+        // Main decision point. Either we start this with a directory (or set 
of directories, in which case tests are 
+        // run as a group (and in parallel if required) or......
+        //
                if ($this->runConfiguration->getSetting('TestDirectories') != 
null) {
 
                        
$this->run_group($this->runConfiguration->getSetting('TestDirectories'));
 
                } else {
+           //.. the input is a test file, or list of files and are just run as 
single tests
+           // and not in parallel
 
                        if ($this->runConfiguration->getSetting('TestFiles') == 
null) {
                                echo rtText::get('invalidTestFileName');
@@ -74,11 +78,13 @@ class rtPhpTestRun
            if(count($this->redirectedTestCases) > 0) {
                foreach($this->redirectedTestCases as $testCase){
                        echo $testCase->getName() . "\n";
+                       
+                       
                }
+               
             //For each test case - construct a new group
             //Call run_group() again with an array of groups
             //
-            // Need to run the skipif section first (Could this be done 
earlier?)
             // The redirect section has PHP code in it but no tags.
             // It is code the needs to be run as part of run-tests, not as a 
'runnable' section -
             // eek it's eval(). Is there any better way to do this? It's 
setting a 'group 
@@ -123,9 +129,12 @@ class rtPhpTestRun
                 
                // create the task-list
                $taskList = array();
+               
+               
                foreach ($subDirectories as $subDirectory) {
                        $taskList[] = new 
rtTaskTestGroup($this->runConfiguration, $subDirectory);
                }
+               
 
                // run the task-scheduler
                $scheduler = rtTaskScheduler::getInstance();
@@ -146,6 +155,7 @@ class rtPhpTestRun
                        }                               
                }
        }
+       
                        
                // create output
                $type = null;
@@ -183,10 +193,7 @@ class rtPhpTestRun
                        $testFile = new rtPhpTestFile();
                        $testFile->doRead($testName);
                        $testFile->normaliseLineEndings();
-
-                       // var_dump($testFile->getSectionHeadings());
-                       // var_dump($testFile->getContents());
-
+                       
                        $testStatus = new 
rtTestStatus($testFile->getTestName());
                         
 
@@ -204,6 +211,7 @@ class rtPhpTestRun
                                //Redirect handler
                                //Build a list of redirected test cases
                                 
+                               //TODO: need to run the skipif section here..
                                $this->redirectedTestCases[] = new 
rtPhpTest($testFile->getContents(), $testFile->getTestName(), 
$testFile->getSectionHeadings(), $this->runConfiguration, $testStatus);
                                 
                                $testStatus->setTrue('redirected');
diff --git a/tests/rtPhpTestGroupTest.php b/tests/rtPhpTestGroupTest.php
index 1a3ff74..5557b74 100644
--- a/tests/rtPhpTestGroupTest.php
+++ b/tests/rtPhpTestGroupTest.php
@@ -16,11 +16,11 @@ class rtPHpTestGroupTest extends PHPUnit_Framework_TestCase
         $config->configure();          
        
        $phpTestGroup = new rtPhpTestGroup($config, $directory);
-       
+    
        
        $validTestCaseCount = count($phpTestGroup->getTestCases());
        $phptFileCount = count(glob($directory . "/*.phpt"));
-       $inValidTestCaseCount = count($phpTestGroup->getResults());
+       $inValidTestCaseCount = count($phpTestGroup->getResult());
        
         //PhpTestGroup should divide the test cases into valid tests 
(TestCases),
         //or invalid ones. An invalid test is either one which 'borks' (that 
is, the
@@ -39,10 +39,11 @@ class rtPHpTestGroupTest extends PHPUnit_Framework_TestCase
         $config->configure();          
        
        $phpTestGroup = new rtPhpTestGroup($config, $directory);
+    
        
        
        
-       $inValidTests = $phpTestGroup->getResults();
+       $inValidTests = $phpTestGroup->getResult();
        
         foreach($inValidTests as $testResult) {
                if($testResult->getStatus() == 'redirected') {
-- 
PHP Quality Assurance Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to