com phpruntests: Adding check for CGI executable: src/testcase/rtPhpTest.php src/testcase/rtTestConfiguration.php
tests/testcase/rtTestConfigurationTest.php

From: 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); + } } ?>

« previous php.qa (#66526) next »