[prev in list] [next in list] [prev in thread] [next in thread]
List: php-cvs
Subject: [PHP-CVS] cvs: phpruntests /src/taskScheduler rtTaskSchedulerFile.php rtTaskTestGroup.php /src/test
From: "Georg Gradwohl" <g2 () php ! net>
Date: 2009-06-29 22:00:13
Message-ID: cvsg21246312813 () cvsserver
[Download RAW message or body]
g2 Mon Jun 29 22:00:13 2009 UTC
Modified files:
/phpruntests/src/testcase/output rtTestOutputWriterXML.php
/phpruntests/src/testgroup rtPhpTestGroup.php
/phpruntests/src/taskScheduler rtTaskSchedulerFile.php
rtTaskTestGroup.php
Log:
phpruntests - update taskScheduler - fixed out-of-memory-bug while running large \
tests
http://cvs.php.net/viewvc.cgi/phpruntests/src/testcase/output/rtTestOutputWriterXML.php?r1=1.4&r2=1.5&diff_format=u
Index: phpruntests/src/testcase/output/rtTestOutputWriterXML.php
diff -u phpruntests/src/testcase/output/rtTestOutputWriterXML.php:1.4 \
phpruntests/src/testcase/output/rtTestOutputWriterXML.php:1.5
--- phpruntests/src/testcase/output/rtTestOutputWriterXML.php:1.4 Mon Jun 29 01:34:54 \
2009
+++ phpruntests/src/testcase/output/rtTestOutputWriterXML.php Mon Jun 29 22:00:12 \
2009 @@ -52,10 +52,8 @@
/**
- *
- *
+ *
* @param array of rtTestResults
- *
*/
public function init (array $testResults)
{
@@ -103,5 +101,6 @@
return null;
}
+
}
-?>
+?>
\ No newline at end of file
http://cvs.php.net/viewvc.cgi/phpruntests/src/testgroup/rtPhpTestGroup.php?r1=1.11&r2=1.12&diff_format=u
Index: phpruntests/src/testgroup/rtPhpTestGroup.php
diff -u phpruntests/src/testgroup/rtPhpTestGroup.php:1.11 \
phpruntests/src/testgroup/rtPhpTestGroup.php:1.12
--- phpruntests/src/testgroup/rtPhpTestGroup.php:1.11 Mon Jun 29 01:34:54 2009
+++ phpruntests/src/testgroup/rtPhpTestGroup.php Mon Jun 29 22:00:13 2009
@@ -75,5 +75,12 @@
$testOutputWriter = rtTestOutputWriter::getInstance($this->results, \
$outType); $testOutputWriter->write($this->testDirectory, $cid);
}
+
+
+ public function getResults()
+ {
+ return $this->results;
+ }
+
}
?>
http://cvs.php.net/viewvc.cgi/phpruntests/src/taskScheduler/rtTaskSchedulerFile.php?r1=1.3&r2=1.4&diff_format=u
Index: phpruntests/src/taskScheduler/rtTaskSchedulerFile.php
diff -u phpruntests/src/taskScheduler/rtTaskSchedulerFile.php:1.3 \
phpruntests/src/taskScheduler/rtTaskSchedulerFile.php:1.4
--- phpruntests/src/taskScheduler/rtTaskSchedulerFile.php:1.3 Mon Jun 29 01:34:54 \
2009
+++ phpruntests/src/taskScheduler/rtTaskSchedulerFile.php Mon Jun 29 22:00:13 2009
@@ -17,11 +17,9 @@
{
const TMP_FILE = 'taskFile';
- private $inputQueue = NULL; // the input-queue (only used by the sender)
private $pidStore = array(); // stores the pids of all child-processes
private $groupTasks = false; // are the tasks stored in groups?
-
- private $tmpTaskList = array();
+
/**
* the constructor
@@ -59,8 +57,6 @@
$this->taskList = $taskList;
}
-
-
/**
* sets the number of child-processes.
* in the case of using a multidimensional task-list this parameter is
@@ -76,7 +72,6 @@
}
}
-
/**
* starts the sender, the receiver and forks the defined
@@ -98,8 +93,8 @@
$this->processCount = sizeof($this->taskList);
}
+ // distribute the task to the children
$this->createTaskFiles();
-
// fork the child-processes
for ($i=0; $i<$this->processCount; $i++) {
@@ -126,7 +121,7 @@
pcntl_waitpid($this->pidStore[$i], $status);
}
- // ensure that the tmp-files are completly written
+ // ensure that the tmp-files are completely written
sleep(1);
// collecting the results
@@ -137,8 +132,7 @@
return;
}
-
-
+
/**
* creates a temporary file for each child which stores the allocated
@@ -180,8 +174,9 @@
}
-
/**
+ *
+ *
* @return void
*/
private function receiver()
@@ -202,7 +197,7 @@
}
$index = $task->getIndex();
- $task->finish($cid);
+ $task->evaluate($cid);
if ($this->groupTasks == true) {
@@ -219,10 +214,12 @@
return;
}
-
/**
+ * executes the assigned tasks and stores the serialized task-object in
+ * the task-file.
+ *
* @param int $cid the child-id
* @return void
*/
@@ -231,24 +228,26 @@
$indexList = file_get_contents(self::TMP_FILE.$cid);
$indexList = explode(';', $indexList);
array_pop($indexList);
-
- $response = '';
+
+ file_put_contents(self::TMP_FILE.$cid, '');
foreach ($indexList as $index) {
if ($this->groupTasks == true) {
- $task = $this->taskList[$cid][$index];
+ $task = $this->taskList[$cid][$index];
} else {
$task = $this->taskList[$index];
}
$task->run();
$task->setIndex($index);
-
- $response .= serialize($task)."[END-TEST-OBJECT]";
+
+ print "$cid - ".$task->getDir()." - ".round(memory_get_usage()/1024, 2)."\n";
+ flush();
+
+ $response = serialize($task)."[END-TEST-OBJECT]";
+ file_put_contents(self::TMP_FILE.$cid, $response, FILE_APPEND);
}
-
- file_put_contents(self::TMP_FILE.$cid, $response);
exit(0);
}
http://cvs.php.net/viewvc.cgi/phpruntests/src/taskScheduler/rtTaskTestGroup.php?r1=1.4&r2=1.5&diff_format=u
Index: phpruntests/src/taskScheduler/rtTaskTestGroup.php
diff -u phpruntests/src/taskScheduler/rtTaskTestGroup.php:1.4 \
phpruntests/src/taskScheduler/rtTaskTestGroup.php:1.5
--- phpruntests/src/taskScheduler/rtTaskTestGroup.php:1.4 Mon Jun 29 01:34:54 2009
+++ phpruntests/src/taskScheduler/rtTaskTestGroup.php Mon Jun 29 22:00:13 2009
@@ -15,35 +15,58 @@
{
private $runConfiguration;
private $subDirectory;
- private $testGroup;
+ private $results;
+
public function __construct($runConfiguration, $subDirectory)
{
$this->runConfiguration = $runConfiguration;
$this->subDirectory = $subDirectory;
}
-
+
+
+ /**
+ * called by the child-process
+ * executes the the test-group
+ */
public function run()
{
- $this->testGroup = new rtPhpTestGroup($this->runConfiguration, \
$this->subDirectory);
- $this->testGroup->runGroup($this->runConfiguration);
-
+ $testGroup = new rtPhpTestGroup($this->runConfiguration, $this->subDirectory);
+ $testGroup->runGroup($this->runConfiguration);
+ $this->results = $testGroup->getResults();
return true;
}
- public function finish($cid=null) {
-
- if (!is_null($cid)) {
- print "\n$cid - ".$this->subDirectory."\n";
- }
-
+
+ /**
+ * called by the receiver (parent-process)
+ * writes the results to the OutputWriter
+ *
+ * @param $cid the child-id
+ */
+ public function evaluate($cid=null)
+ {
$outType = 'list';
if ($this->runConfiguration->hasCommandLineOption('o')) {
$outType = $this->runConfiguration->getCommandLineOption('o');
}
-
- $this->testGroup->writeGroup($outType, $cid);
+
+ $testOutputWriter = rtTestOutputWriter::getInstance($this->results, $outType);
+ $testOutputWriter->write($this->subDirectory, $cid);
}
+
+
+ public function getDir()
+ {
+ return $this->subDirectory;
+ }
+
+
+ public function getResults()
+ {
+ return $this->results;
+ }
+
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic