cvs: phpruntests /src/configuration/settings rtPhpCgiExecutableSetting.php /src/testcase rtPhpTest.php rtTestConfiguration.php
/src/testcase/sections/executablesections rtFileSection.php
| From: | Zoe Slattery | Date: | Thu, 14 May 2009 11:34:59 +0000 |
| Subject: | cvs: phpruntests /src/configuration/settings rtPhpCgiExecutableSetting.php /src/testcase rtPhpTest.php rtTestConfiguration.php /src/testcase/sections/executablesections rtFileSection.php |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-57803@lists.php.net to get a copy of this message | ||
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;
}
}