com phpruntests: Adding check for CGI executable: src/testcase/rtPhpTest.php src/testcase/rtTestConfiguration.php
tests/testcase/rtTestConfigurationTest.php
| From: | David Soria Parra | Date: | Sat, 25 Apr 2009 15:05:45 +0000 |
| Subject: | com phpruntests: Adding check for CGI executable: src/testcase/rtPhpTest.php src/testcase/rtTestConfiguration.php tests/testcase/rtTestConfigurationTest.php |
||
| Groups: | php.qa | ||
| Request: | Send a blank email to php-qa+get-66526@lists.php.net to get a copy of this message | ||
Commit: 6b86c7cf71ac87b30ea8ddfb0c8c28a3ed927918
Author: Zoe Slattery <zoe@php.net> Sat, 25 Apr 2009 15:05:45 +0000
Parents: 2f0bbf8e0c3276fb4770d741c73bf58732981d16
Branches: master
Link: http://git.php.net/?p=phpruntests.git;a=commitdiff;h=6b86c7cf71ac87b30ea8ddfb0c8c28a3ed927918
Log:
Adding check for CGI executable
Changed paths:
M src/testcase/rtPhpTest.php
M src/testcase/rtTestConfiguration.php
M tests/testcase/rtTestConfigurationTest.php
Diff:
diff --git a/src/testcase/rtPhpTest.php b/src/testcase/rtPhpTest.php
index 3ddba9f..21bf5bf 100644
--- a/src/testcase/rtPhpTest.php
+++ b/src/testcase/rtPhpTest.php
@@ -1,7 +1,17 @@
<?php
/**
*
+ * This class represents a single phpt test case.
+ *
+ * @category Quality Assurance
+ * @package run-tests
+ * @author Zoe Slattery <zoe@php.net>
+ * @author Stefan Priebsch <spriebsch@php.net>
+ * @copyright 2009 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ *
*/
+
class rtPhpTest
{
public $testConfiguration;
@@ -54,7 +64,7 @@ class rtPhpTest
public function init(rtRuntestsConfiguration $runConfiguration)
{
- $this->testConfiguration = new rtTestConfiguration($runConfiguration,
$this->sections);
+ $this->testConfiguration = new rtTestConfiguration($runConfiguration,
$this->sections, $this->sectionHeadings);
}
//run
diff --git a/src/testcase/rtTestConfiguration.php b/src/testcase/rtTestConfiguration.php
index 5c3ea35..dc5458d 100644
--- a/src/testcase/rtTestConfiguration.php
+++ b/src/testcase/rtTestConfiguration.php
@@ -1,36 +1,57 @@
<?php
/**
- * Needs to set up teh configuration fo rthe test. This comes from
- * 1. RuntestsConfiguration
- * 2. Sections which modify the Runtests configuration
+ *
+ * This class holds confiurtaion settings that are specific to a single test.
+ * Test sections which adjust the confiuration for single test include ARGS, ENV, INI
+ *
+ * @category Quality Assurance
+ * @package run-tests
+ * @author Zoe Slattery <zoe@php.net>
+ * @author Stefan Priebsch <spriebsch@php.net>
+ * @copyright 2009 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ *
*/
+
+
class rtTestConfiguration
{
private $environmentVariables;
private $phpCommandLineArguments;
private $testCommandLineArguments;
+ private $phpExecutable;
+ private $cgiSections = array(
+ 'GET',
+ 'POST',
+ 'POST_RAW',
+ 'GZIP_POST',
+ 'DEFLATE_POST',
+ 'EXPECTHEADERS',
+ 'COOKIE',
+ );
- public function __construct(rtRuntestsConfiguration $runConfiguration, $sections)
+ public function __construct(rtRuntestsConfiguration $runConfiguration, $sections,
$sectionHeadings)
{
- $this->init($runConfiguration, $sections);
+ $this->init($runConfiguration, $sections, $sectionHeadings);
}
- private function init(rtRuntestsConfiguration $runConfiguration, $sections)
+ private function init(rtRuntestsConfiguration $runConfiguration, $sections, $sectionHeadings)
{
$this->setEnvironmentVariables($runConfiguration, $sections);
$this->setPhpCommandLineArguments($runConfiguration, $sections);
$this->setTestCommandLineArguments($sections);
+ $this->setPhpExecutable($runConfiguration, $sectionHeadings);
}
private function setEnvironmentVariables(rtRuntestsConfiguration $runConfiguration, $sections)
{
$this->environmentVariables = $runConfiguration->getEnvironmentVariables();
- if (array_key_exists('ENV', $sections)) {
+ if (array_key_exists('ENV', $sections)) {
$this->environmentVariables = array_merge($this->environmentVariables,
$sections['ENV']->getTestEnvironmentVariables());
}
}
- private function setPhpCommandLineArguments(rtRuntestsConfiguration $runConfiguration,
$sections)
+ private function setPhpCommandLineArguments(rtRuntestsConfiguration $runConfiguration,
$sections)
{
$this->phpCommandLineArguments =
$runConfiguration->getSetting('PhpCommandLineArguments');
if (array_key_exists('INI', $sections)) {
@@ -49,6 +70,21 @@ class rtTestConfiguration
}
}
+ private function setPhpExecutable($runConfiguration, $sectionHeadings)
+ {
+ $tempArray = array_diff($this->cgiSections, $sectionHeadings);
+ if (count($tempArray) < count($this->cgiSections)) {
+ $this->phpExecutable =
$runConfiguration->getSetting('PhpCgiExecutable');
+ } else {
+ $this->phpExecutable = $runConfiguration->getSetting('PhpExecutable');
+ }
+ }
+
+ public function getPhpExecutable()
+ {
+ return $this->phpExecutable;
+ }
+
public function getEnvironmentVariables()
{
return $this->environmentVariables;
diff --git a/tests/testcase/rtTestConfigurationTest.php b/tests/testcase/rtTestConfigurationTest.php
index d8e22a0..ee8d1ed 100644
--- a/tests/testcase/rtTestConfigurationTest.php
+++ b/tests/testcase/rtTestConfigurationTest.php
@@ -19,7 +19,7 @@ class rtTestConfigurationTest extends PHPUnit_Framework_TestCase
$config = rtRuntestsConfiguration::getInstance(array('run-tests.php',
'-p', 'a-php-exe', 'test.phpt'));
$config->configure();
- $testConfiguration = new rtTestConfiguration($config, $this->sections);
+ $testConfiguration = new rtTestConfiguration($config, $this->sections, array());
$this->assertEquals('rtTestConfiguration', get_class($testConfiguration));
}
@@ -29,7 +29,7 @@ class rtTestConfigurationTest extends PHPUnit_Framework_TestCase
$config = rtRuntestsConfiguration::getInstance(array('run-tests.php',
'-p', 'a-php-exe', 'test.phpt'));
$config->configure();
- $testConfiguration = new rtTestConfiguration($config, $this->sections);
+ $testConfiguration = new rtTestConfiguration($config, $this->sections, array());
$envVars = $testConfiguration->getEnvironmentVariables();
@@ -41,7 +41,7 @@ class rtTestConfigurationTest extends PHPUnit_Framework_TestCase
$config = rtRuntestsConfiguration::getInstance(array('run-tests.php',
'-p', 'a-php-exe', 'test.phpt'));
$config->configure();
- $testConfiguration = new rtTestConfiguration($config, $this->sections);
+ $testConfiguration = new rtTestConfiguration($config, $this->sections, array());
$args = $testConfiguration->getTestCommandLineArguments();
@@ -53,11 +53,35 @@ class rtTestConfigurationTest extends PHPUnit_Framework_TestCase
$config = rtRuntestsConfiguration::getInstance(array('run-tests.php',
'-p', 'a-php-exe', 'test.phpt'));
$config->configure();
- $testConfiguration = new rtTestConfiguration($config, $this->sections);
+ $testConfiguration = new rtTestConfiguration($config, $this->sections, array());
$phpargs = $testConfiguration->getPhpCommandLineArguments();
$match = preg_match("/-d \"error_reporting=E_ALL | E_STRICT | E_DEPRECATED\"
-d \"assert.active=1\"/", $phpargs);
$this->assertEquals(1, $match);
}
+
+ public function testPHPExecutable()
+ {
+ $config = rtRuntestsConfiguration::getInstance(array('run-tests.php',
'-p', 'a-php-exe', 'test.phpt'));
+ $config->configure();
+
+ $testConfiguration = new rtTestConfiguration($config, $this->sections, array());
+ $phpExe = $testConfiguration->getPhpExecutable();
+
+ $this->assertEquals('a-php-exe', $phpExe);
+ }
+
+ public function testPHPCgiExecutable()
+ {
+ $config = rtRuntestsConfiguration::getInstance(array('run-tests.php',
'-p', 'a-php-exe', 'test.phpt'));
+ $config->setEnvironmentVariable('TEST_PHP_CGI_EXECUTABLE',
'a-php-cgi-exe');
+ $config->configure();
+
+
+ $testConfiguration = new rtTestConfiguration($config, $this->sections,
array('GET'));
+ $phpExe = $testConfiguration->getPhpExecutable();
+
+ $this->assertEquals('a-php-cgi-exe', $phpExe);
+ }
}
?>