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 <[email protected]>
* @author Stefan Priebsch <[email protected]>
+ * @author Georg Gradwohl <[email protected]>
* @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