g2 Mon Jun 29 01:34:55 2009 UTC Added files: /phpruntests/src cmpResults.php
Modified files: /phpruntests/src/testcase/output rtTestOutputWriterList.php rtTestOutputWriterCSV.php rtTestOutputWriterXML.php /phpruntests/src/testgroup rtPhpTestGroup.php /phpruntests/src/testrun rtPhpTestRun.php /phpruntests/src/taskScheduler rtTask.php rtTaskSchedulerFile.php rtTaskTestGroup.php /phpruntests/src/testcase rtTestOutputWriter.php Log: phpruntests - implemented rtTestOutputWriterXML - added cmpResults to compare test-results
http://cvs.php.net/viewvc.cgi/phpruntests/src/testcase/output/rtTestOutputWriterList.php?r1=1.5&r2=1.6&diff_format=u Index: phpruntests/src/testcase/output/rtTestOutputWriterList.php diff -u phpruntests/src/testcase/output/rtTestOutputWriterList.php:1.5 phpruntests/src/testcase/output/rtTestOutputWriterList.php:1.6 --- phpruntests/src/testcase/output/rtTestOutputWriterList.php:1.5 Sun Jun 7 11:06:51 2009 +++ phpruntests/src/testcase/output/rtTestOutputWriterList.php Mon Jun 29 01:34:54 2009 @@ -46,13 +46,18 @@ } - public function write($testDirectory = null) + public function write($testDirectory = null, $cid = null) { if ($testDirectory != null) { echo "\n\nTest output for tests in " . $testDirectory . "\n"; } sort($this->testOutput); foreach ($this->testOutput as $line) { + + if (!is_null($cid)) { + echo "$cid - "; + } + echo $line ."\n"; } } http://cvs.php.net/viewvc.cgi/phpruntests/src/testcase/output/rtTestOutputWriterCSV.php?r1=1.1&r2=1.2&diff_format=u Index: phpruntests/src/testcase/output/rtTestOutputWriterCSV.php diff -u phpruntests/src/testcase/output/rtTestOutputWriterCSV.php:1.1 phpruntests/src/testcase/output/rtTestOutputWriterCSV.php:1.2 --- phpruntests/src/testcase/output/rtTestOutputWriterCSV.php:1.1 Sun Jun 28 09:46:48 2009 +++ phpruntests/src/testcase/output/rtTestOutputWriterCSV.php Mon Jun 29 01:34:54 2009 @@ -44,11 +44,16 @@ } - public function write($testDirectory = null) + public function write($testDirectory = null, $cid = null) { sort($this->testOutput); foreach ($this->testOutput as $line) { - echo $line ."\n"; + + if (!is_null($cid)) { + echo "$cid - "; + } + + echo $line ."\n"; } } } http://cvs.php.net/viewvc.cgi/phpruntests/src/testcase/output/rtTestOutputWriterXML.php?r1=1.3&r2=1.4&diff_format=u Index: phpruntests/src/testcase/output/rtTestOutputWriterXML.php diff -u phpruntests/src/testcase/output/rtTestOutputWriterXML.php:1.3 phpruntests/src/testcase/output/rtTestOutputWriterXML.php:1.4 --- phpruntests/src/testcase/output/rtTestOutputWriterXML.php:1.3 Mon May 25 11:59:58 2009 +++ phpruntests/src/testcase/output/rtTestOutputWriterXML.php Mon Jun 29 01:34:54 2009 @@ -1,6 +1,6 @@ <?php /** - * rtTestOutputWriterXML + * rtTestOutputWriterXML <singleton> * * Write test output as XML * @@ -8,6 +8,7 @@ * @package RUNTESTS * @author Zoe Slattery <z...@php.net> * @author Stefan Priebsch <sprieb...@php.net> + * @author Georg Gradwohl <g...@php.net> * @copyright 2009 The PHP Group * @license http://www.php.net/license/3_01.txt PHP License 3.01 * @link http://qa.php.net/ @@ -15,12 +16,92 @@ */ class rtTestOutputWriterXML extends rtTestOutputWriter { - public function assemble(rtPhpTest $testCase) + private $dom = null; + private $rootNode = null; + private $stamp = 0; + + private static $instance = null; + + + private function __construct() { + + $this->dom = new DOMDocument(); + $this->rootNode = $this->dom->createElement('RUNTESTS'); + $this->dom->appendChild($this->rootNode); + + $this->stamp = round(microtime(true)); + } + + private function __clone() {} + + + public static function getInstance() { + if (is_null(self::$instance)) { + self::$instance = new self; + } + + return self::$instance; } - - public function write() + + + public function setTestResults(array $testResults) { + $this->init($testResults); + } + + + /** + * + * + * @param array of rtTestResults + * + */ + public function init (array $testResults) + { + $dom = $this->dom; + + foreach ($testResults as $testResult) { + + $test = $dom->createElement('testcase'); + $test->appendChild($dom->createElement('name', $testResult->getName())); + + $status = 'UNDEFINED'; + $testStatus = $testResult->getStatus(); + + foreach($testStatus->getTestStateNames() as $name) { + + if ($testStatus->getValue($name)) { + $status = strtoupper($name); + } + } + + $test->appendChild($dom->createElement('status', $status)); + $this->rootNode->appendChild($test); + } + } + + + public function write($testDirectory = null, $cid = null) + { + if (!is_null($this->dom)) { + + $xml = $this->dom->saveXML(); + file_put_contents('results_'.$this->stamp.'.xml', $xml); + } + } + + + /** + * @Overrides src/testcase/rtTestOutputWriter#getOutput() + */ + public function getOutput() + { + if (!is_null($this->dom)) { + return $this->dom->saveXML(); + } + + return null; } } ?> http://cvs.php.net/viewvc.cgi/phpruntests/src/testgroup/rtPhpTestGroup.php?r1=1.10&r2=1.11&diff_format=u Index: phpruntests/src/testgroup/rtPhpTestGroup.php diff -u phpruntests/src/testgroup/rtPhpTestGroup.php:1.10 phpruntests/src/testgroup/rtPhpTestGroup.php:1.11 --- phpruntests/src/testgroup/rtPhpTestGroup.php:1.10 Sun Jun 28 12:25:00 2009 +++ phpruntests/src/testgroup/rtPhpTestGroup.php Mon Jun 29 01:34:54 2009 @@ -70,10 +70,10 @@ } } - public function writeGroup($outType) + public function writeGroup($outType, $cid=null) { $testOutputWriter = rtTestOutputWriter::getInstance($this->results, $outType); - $testOutputWriter->write($this->testDirectory); + $testOutputWriter->write($this->testDirectory, $cid); } } ?> http://cvs.php.net/viewvc.cgi/phpruntests/src/testrun/rtPhpTestRun.php?r1=1.14&r2=1.15&diff_format=u Index: phpruntests/src/testrun/rtPhpTestRun.php diff -u phpruntests/src/testrun/rtPhpTestRun.php:1.14 phpruntests/src/testrun/rtPhpTestRun.php:1.15 --- phpruntests/src/testrun/rtPhpTestRun.php:1.14 Sun Jun 28 12:25:00 2009 +++ phpruntests/src/testrun/rtPhpTestRun.php Mon Jun 29 01:34:54 2009 @@ -62,7 +62,7 @@ // create the task-list $taskList = array(); foreach ($subDirectories as $subDirectory) { - $taskList[] = new rtTaskTestGroup(&$runConfiguration, &$subDirectory); + $taskList[] = new rtTaskTestGroup($runConfiguration, $subDirectory); } http://cvs.php.net/viewvc.cgi/phpruntests/src/taskScheduler/rtTask.php?r1=1.1&r2=1.2&diff_format=u Index: phpruntests/src/taskScheduler/rtTask.php diff -u phpruntests/src/taskScheduler/rtTask.php:1.1 phpruntests/src/taskScheduler/rtTask.php:1.2 --- phpruntests/src/taskScheduler/rtTask.php:1.1 Fri Jun 26 00:07:24 2009 +++ phpruntests/src/taskScheduler/rtTask.php Mon Jun 29 01:34:54 2009 @@ -11,6 +11,9 @@ private $message = NULL; + public function finish() {} + + public function setState($state) { $this->state = $state; http://cvs.php.net/viewvc.cgi/phpruntests/src/taskScheduler/rtTaskSchedulerFile.php?r1=1.2&r2=1.3&diff_format=u Index: phpruntests/src/taskScheduler/rtTaskSchedulerFile.php diff -u phpruntests/src/taskScheduler/rtTaskSchedulerFile.php:1.2 phpruntests/src/taskScheduler/rtTaskSchedulerFile.php:1.3 --- phpruntests/src/taskScheduler/rtTaskSchedulerFile.php:1.2 Sat Jun 27 23:57:46 2009 +++ phpruntests/src/taskScheduler/rtTaskSchedulerFile.php Mon Jun 29 01:34:54 2009 @@ -187,22 +187,22 @@ private function receiver() { for ($cid=0; $cid<$this->processCount; $cid++) { - + $response = file_get_contents(self::TMP_FILE.$cid); - $response = explode("\n", $response); + $response = explode("[END-TEST-OBJECT]", $response); array_pop($response); foreach ($response as $task) { $task = unserialize($task); - if ($task->getState() == rtTask::PASS) { - $this->countPass++; - } else { - $this->countFail++; + if ($task === false) { + print "ERROR unserialize $cid\n"; + continue; } - + $index = $task->getIndex(); + $task->finish($cid); if ($this->groupTasks == true) { @@ -213,7 +213,7 @@ $this->taskList[$index] = $task; } } - + unlink(self::TMP_FILE.$cid); } @@ -242,16 +242,10 @@ $task = $this->taskList[$index]; } - if ($task->run() === true) { - $task->setState(rtTask::PASS); - - } else { - $task->setState(rtTask::FAIL); - } - + $task->run(); $task->setIndex($index); - $response .= serialize($task)."\n"; + $response .= serialize($task)."[END-TEST-OBJECT]"; } file_put_contents(self::TMP_FILE.$cid, $response); http://cvs.php.net/viewvc.cgi/phpruntests/src/taskScheduler/rtTaskTestGroup.php?r1=1.3&r2=1.4&diff_format=u Index: phpruntests/src/taskScheduler/rtTaskTestGroup.php diff -u phpruntests/src/taskScheduler/rtTaskTestGroup.php:1.3 phpruntests/src/taskScheduler/rtTaskTestGroup.php:1.4 --- phpruntests/src/taskScheduler/rtTaskTestGroup.php:1.3 Sun Jun 28 12:25:00 2009 +++ phpruntests/src/taskScheduler/rtTaskTestGroup.php Mon Jun 29 01:34:54 2009 @@ -15,7 +15,7 @@ { private $runConfiguration; private $subDirectory; - + private $testGroup; public function __construct($runConfiguration, $subDirectory) { @@ -25,22 +25,25 @@ public function run() { - $testGroup = new rtPhpTestGroup($this->runConfiguration, $this->subDirectory); - $testGroup->runGroup($this->runConfiguration); + $this->testGroup = new rtPhpTestGroup($this->runConfiguration, $this->subDirectory); + $this->testGroup->runGroup($this->runConfiguration); + + return true; + } + + public function finish($cid=null) { + + if (!is_null($cid)) { + print "\n$cid - ".$this->subDirectory."\n"; + } $outType = 'list'; if ($this->runConfiguration->hasCommandLineOption('o')) { - $outType = $this->runConfiguration->getCommandLineOption('o'); + $outType = $this->runConfiguration->getCommandLineOption('o'); } - $testGroup->writeGroup($outType); - return true; - } - public function getDir() - { - return $this->subDirectory; + $this->testGroup->writeGroup($outType, $cid); } - } http://cvs.php.net/viewvc.cgi/phpruntests/src/testcase/rtTestOutputWriter.php?r1=1.5&r2=1.6&diff_format=u Index: phpruntests/src/testcase/rtTestOutputWriter.php diff -u phpruntests/src/testcase/rtTestOutputWriter.php:1.5 phpruntests/src/testcase/rtTestOutputWriter.php:1.6 --- phpruntests/src/testcase/rtTestOutputWriter.php:1.5 Sun Jun 28 09:48:54 2009 +++ phpruntests/src/testcase/rtTestOutputWriter.php Mon Jun 29 01:34:55 2009 @@ -21,12 +21,14 @@ public static function getInstance (array $testResults, $outputType) { - if ($outputType == 'list') { + if ($outputType == 'list') { return new rtTestOutputWriterList($testResults); } if ($outputType == 'xml') { - return new rtTestOutputWriterXML($testResults); + $writer = rtTestOutputWriterXML::getInstance(); + $writer->setTestResults($testResults); + return $writer; } if ($outputType == 'csv') { return new rtTestOutputWriterCSV($testResults); http://cvs.php.net/viewvc.cgi/phpruntests/src/cmpResults.php?view=markup&rev=1.1 Index: phpruntests/src/cmpResults.php +++ phpruntests/src/cmpResults.php <?php error_reporting(E_ALL); function domToArray($dom) { $list = array(); $tests = $dom->getElementsByTagName('testcase'); foreach ($tests as $test) { $n = $test->getElementsByTagName('name'); $n = $n->item(0)->nodeValue; $s = $test->getElementsByTagName('status'); $s = $s->item(0)->nodeValue; $list[$n] = $s; } return $list; } function getResultList() { $list = array(); foreach (scandir('.') as $file) { if (strpos($file, '.xml') !== false && strpos($file, 'results_') !== false) { $xml = new DOMDocument(); $xml->load($file); $n = explode('_', basename($file, ".xml")); $list[$n[1]] = domToArray($xml); } } return $list; } function compareWith($list, $index) { $cmp = false; $base = $list[$index]; foreach ($list as $key => $result) { if ($key == $index) { $cmp = true; } elseif ($cmp === true) { print "\nDIFF $index - $key\n"; $dif = array_diff_assoc($result, $base); if (sizeof($dif) > 0) { print_r($dif); } else { print 'NONE'; } print "\n"; } } } $results = getResultList(); if (sizeof($results) < 2) { die("at least 2 results needed\n"); } foreach ($results as $index => $list) { compareWith($results, $index); } ?>
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php