zoe Thu May 14 11:34:59 2009 UTC
Modified files:
/phpruntests/src/testcase rtPhpTest.php rtTestConfiguration.php
/phpruntests/src/testcase/sections/executablesections
rtFileSection.php
/phpruntests/src/configuration/settings
rtPhpCgiExecutableSetting.php
Log:
fixing cgi check
http://cvs.php.net/viewvc.cgi/phpruntests/src/testcase/rtPhpTest.php?r1=1.4&r2=1.5&diff_format=u
Index: phpruntests/src/testcase/rtPhpTest.php
diff -u phpruntests/src/testcase/rtPhpTest.php:1.4
phpruntests/src/testcase/rtPhpTest.php:1.5
--- phpruntests/src/testcase/rtPhpTest.php:1.4 Sun Apr 26 22:43:36 2009
+++ phpruntests/src/testcase/rtPhpTest.php Thu May 14 11:34:59 2009
@@ -60,7 +60,7 @@
//Identify the file and expect section types
$this->fileSection = $this->setFileSection();
$this->expectSection = $this->setExpectSection();
-
+
$this->fileSection->setExecutableFileName($this->getName());
}
@@ -80,8 +80,11 @@
if (!array_key_exists('skip', $this->status) &&
!array_key_exists('bork', $this->status)) {
$this->status = array_merge($this->status,
$this->fileSection->run($this, $runConfiguration));
- $this->output = $this->fileSection->getOutput();
- $this->compareOutput();
+ //The test can be skipped by file sections if the CGI executable
is not available
+ if(!array_key_exists('skip', $this->status)) {
+ $this->output = $this->fileSection->getOutput();
+ $this->compareOutput();
+ }
if (array_key_exists('CLEAN', $this->sections)) {
http://cvs.php.net/viewvc.cgi/phpruntests/src/testcase/rtTestConfiguration.php?r1=1.13&r2=1.14&diff_format=u
Index: phpruntests/src/testcase/rtTestConfiguration.php
diff -u phpruntests/src/testcase/rtTestConfiguration.php:1.13
phpruntests/src/testcase/rtTestConfiguration.php:1.14
--- phpruntests/src/testcase/rtTestConfiguration.php:1.13 Mon May 4
17:02:37 2009
+++ phpruntests/src/testcase/rtTestConfiguration.php Thu May 14 11:34:59 2009
@@ -40,7 +40,7 @@
private function init(rtRuntestsConfiguration $runConfiguration,
$sections, $sectionHeadings, $fileSection)
{
- $this->isCgiTest($sectionHeadings);
+ $this->setCgiTest($sectionHeadings);
$this->setEnvironmentVariables($runConfiguration, $sections,
$fileSection);
$this->setPhpCommandLineArguments($runConfiguration, $sections);
@@ -110,7 +110,11 @@
private function setPhpExecutable($runConfiguration, $sectionHeadings)
{
if ($this->cgiTest) {
- $this->phpExecutable =
$runConfiguration->getSetting('PhpCgiExecutable'). " -C";
+ if($runConfiguration->getSetting('PhpCgiExecutable') != null) {
+ $this->phpExecutable =
$runConfiguration->getSetting('PhpCgiExecutable'). " -C";
+ } else {
+ $this->phpExecutable = null;
+ }
} else {
$this->phpExecutable =
$runConfiguration->getSetting('PhpExecutable');
}
@@ -133,7 +137,7 @@
}
}
- private function isCgiTest($sectionHeadings)
+ private function setCgiTest($sectionHeadings)
{
$tempArray = array_diff($this->cgiSections, $sectionHeadings);
if (count($tempArray) < count($this->cgiSections)) {
@@ -166,5 +170,10 @@
{
return $this->inputFileString;
}
+
+ public function isCgiTest()
+ {
+ return $this->cgiTest;;
+ }
}
?>
http://cvs.php.net/viewvc.cgi/phpruntests/src/testcase/sections/executablesections/rtFileSection.php?r1=1.8&r2=1.9&diff_format=u
Index: phpruntests/src/testcase/sections/executablesections/rtFileSection.php
diff -u
phpruntests/src/testcase/sections/executablesections/rtFileSection.php:1.8
phpruntests/src/testcase/sections/executablesections/rtFileSection.php:1.9
--- phpruntests/src/testcase/sections/executablesections/rtFileSection.php:1.8
Tue Apr 28 20:58:39 2009
+++ phpruntests/src/testcase/sections/executablesections/rtFileSection.php
Thu May 14 11:34:59 2009
@@ -15,7 +15,8 @@
class rtFileSection extends rtExecutableSection
{
private $twoBlankLines = '\r?\n\r?\n';
-
+ private $headers;
+
public function setExecutableFileName($testName)
{
$this->fileName = $testName.".php";
@@ -44,15 +45,16 @@
try {
$this->output = $PhpRunner->runphp();
-
- //If it's a CGI test sort the headers out here
- if(substr($phpExecutable, -2) == '-C') {
-
+
+ //If it's a CGI test and separate the headers from the output
+ if($testCase->testConfiguration->isCgiTest()) {
+ // Would this be better done with substr/strpos, not sure
how to cope with \n
+ // Do Web servers alsways send \n\r\n\r? I *think* so but
need to check
+
if (preg_match("/^(.*?)$this->twoBlankLines(.*)/s",
$this->output, $match)) {
$this->output = $match[2];
$this->headers = $match[1];
- }
-
+ }
}
@@ -62,8 +64,17 @@
} else {
$this->status['skip'] = 'The CGI executable is unavailable';
}
-
return $this->status;
}
+
+ /**
+ *
+ */
+ public function getHeaders()
+ {
+ return $this->headers;
+ }
+
+
}
?>
http://cvs.php.net/viewvc.cgi/phpruntests/src/configuration/settings/rtPhpCgiExecutableSetting.php?r1=1.7&r2=1.8&diff_format=u
Index: phpruntests/src/configuration/settings/rtPhpCgiExecutableSetting.php
diff -u
phpruntests/src/configuration/settings/rtPhpCgiExecutableSetting.php:1.7
phpruntests/src/configuration/settings/rtPhpCgiExecutableSetting.php:1.8
--- phpruntests/src/configuration/settings/rtPhpCgiExecutableSetting.php:1.7
Tue May 12 09:15:19 2009
+++ phpruntests/src/configuration/settings/rtPhpCgiExecutableSetting.php
Thu May 14 11:34:59 2009
@@ -33,10 +33,12 @@
/**
* @todo spriebsch: does this method need to be public, is it only called
from get()?
+ * @todo zoe:This method only works if we are running from a PHP source
tree, do we need to
+ * cope with /usr/local/bin/php for example?
*/
public function guessFromPhpCli($phpCli)
{
- if(substr(dirname($phpCli),-3) == 'cli') {
+ if(substr(dirname($phpCli),-3) == 'cli') {
$pathLength = strlen(dirname($phpCli)) - 3;
$sapiDir = substr(dirname($phpCli), 0, $pathLength);
$this->phpCgiExecutable = $sapiDir."cgi/php-cgi";
@@ -57,7 +59,7 @@
$rtPhpExecutableSetting = new
rtPhpExecutableSetting($this->configuration);
$this->guessFromPhpCli($rtPhpExecutableSetting->get());
}
-
+
return $this->phpCgiExecutable;
}
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php