123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367 |
- Index: src/PHPT/Case.php
- ===================================================================
- --- src/PHPT/Case.php (revision 691)
- +++ src/PHPT/Case.php (working copy)
- @@ -28,17 +28,14 @@
- {
- $reporter->onCaseStart($this);
- try {
- - if ($this->sections->filterByInterface('RunnableBefore')->valid()) {
- - foreach ($this->sections as $section) {
- - $section->run($this);
- - }
- + $runnable_before = $this->sections->filterByInterface('RunnableBefore');
- + foreach ($runnable_before as $section) {
- + $section->run($this);
- }
- - $this->sections->filterByInterface();
- $this->sections->FILE->run($this);
- - if ($this->sections->filterByInterface('RunnableAfter')->valid()) {
- - foreach ($this->sections as $section) {
- - $section->run($this);
- - }
- + $runnable_after = $this->sections->filterByInterface('RunnableAfter');
- + foreach ($runnable_after as $section) {
- + $section->run($this);
- }
- $reporter->onCasePass($this);
- } catch (PHPT_Case_VetoException $veto) {
- @@ -46,7 +43,6 @@
- } catch (PHPT_Case_FailureException $failure) {
- $reporter->onCaseFail($this, $failure);
- }
- - $this->sections->filterByInterface();
- $reporter->onCaseEnd($this);
- }
-
- Index: src/PHPT/Case/Validator/CgiRequired.php
- ===================================================================
- --- src/PHPT/Case/Validator/CgiRequired.php (revision 691)
- +++ src/PHPT/Case/Validator/CgiRequired.php (working copy)
- @@ -17,7 +17,6 @@
- public function is(PHPT_Case $case)
- {
- $return = $case->sections->filterByInterface('CgiExecutable')->valid();
- - $case->sections->filterByInterface();
- return $return;
- }
- }
- Index: src/PHPT/CodeRunner/CommandLine.php
- ===================================================================
- --- src/PHPT/CodeRunner/CommandLine.php (revision 691)
- +++ src/PHPT/CodeRunner/CommandLine.php (working copy)
- @@ -13,7 +13,7 @@
- $this->_filename = $runner->filename;
- $this->_ini = (string)$runner->ini;
- $this->_args = (string)$runner->args;
- - $this->_executable = str_replace(' ', '\ ', (string)$runner->executable);
- + $this->_executable = $runner->executable;
- $this->_post_filename = (string)$runner->post_filename;
- }
-
- Index: src/PHPT/CodeRunner/Driver/WScriptShell.php
- ===================================================================
- --- src/PHPT/CodeRunner/Driver/WScriptShell.php (revision 691)
- +++ src/PHPT/CodeRunner/Driver/WScriptShell.php (working copy)
- @@ -23,9 +23,9 @@
- }
- }
- if ($found == false) {
- - throw new PHPT_CodeRunner_InvalidExecutableException(
- - 'unable to locate PHP executable: ' . $this->executable
- - );
- + //throw new PHPT_CodeRunner_InvalidExecutableException(
- + // 'unable to locate PHP executable: ' . $this->executable
- + //);
- }
- }
-
- @@ -69,7 +69,7 @@
-
- $error = $this->_process->StdErr->ReadAll();
- if (!empty($error)) {
- - throw new PHPT_CodeRunner_ExecutionException($error);
- + throw new PHPT_CodeRunner_ExecutionException($error, $this->_commandFactory());
- }
-
- return $this->_process->StdOut->ReadAll();
- @@ -93,6 +93,7 @@
- {
- $return = '';
- foreach ($this->environment as $key => $value) {
- + $value = str_replace('&', '^&', $value);
- $return .= "set {$key}={$value} & ";
- }
- return $return;
- Index: src/PHPT/CodeRunner/Factory.php
- ===================================================================
- --- src/PHPT/CodeRunner/Factory.php (revision 691)
- +++ src/PHPT/CodeRunner/Factory.php (working copy)
- @@ -33,7 +33,13 @@
- 'php-cgi';
- }
-
- - if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
- + if (
- + strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' &&
- + (
- + $runner->executable == 'php' ||
- + $runner->executable == 'php-cgi'
- + )
- + ) {
- $runner->executable = $runner->executable . '.exe';
- }
- try {
- Index: src/PHPT/Section/ModifiableAbstract.php
- ===================================================================
- --- src/PHPT/Section/ModifiableAbstract.php (revision 691)
- +++ src/PHPT/Section/ModifiableAbstract.php (working copy)
- @@ -15,12 +15,10 @@
-
- public function run(PHPT_Case $case)
- {
- - $sections = clone $case->sections;
- - if ($sections->filterByInterface($this->_modifier_name . 'Modifier')->valid()) {
- - $modifyMethod = 'modify' . $this->_modifier_name;
- - foreach ($sections as $section) {
- - $section->$modifyMethod($this);
- - }
- + $modifiers = $case->sections->filterByInterface($this->_modifier_name . 'Modifier');
- + $modifyMethod = 'modify' . $this->_modifier_name;
- + foreach ($modifiers as $section) {
- + $section->$modifyMethod($this);
- }
- }
-
- Index: src/PHPT/Section/SKIPIF.php
- ===================================================================
- --- src/PHPT/Section/SKIPIF.php (revision 691)
- +++ src/PHPT/Section/SKIPIF.php (working copy)
- @@ -3,10 +3,12 @@
- class PHPT_Section_SKIPIF implements PHPT_Section_RunnableBefore
- {
- private $_data = null;
- + private $_runner_factory = null;
-
- public function __construct($data)
- {
- $this->_data = $data;
- + $this->_runner_factory = new PHPT_CodeRunner_Factory();
- }
-
- public function run(PHPT_Case $case)
- @@ -16,9 +18,7 @@
-
- // @todo refactor to PHPT_CodeRunner
- file_put_contents($filename, $this->_data);
- - $response = array();
- - exec('php -f ' . $filename, $response);
- - $response = implode("\n", $response);
- + $response = $this->_runner_factory->factory($case)->run($filename)->output;
- unlink($filename);
-
- if (preg_match('/^skip( - (.*))?/', $response, $matches)) {
- Index: src/PHPT/SectionList.php
- ===================================================================
- --- src/PHPT/SectionList.php (revision 691)
- +++ src/PHPT/SectionList.php (working copy)
- @@ -2,7 +2,6 @@
-
- class PHPT_SectionList implements Iterator
- {
- - private $_raw_sections = array();
- private $_sections = array();
- private $_section_map = array();
- private $_key_map = array();
- @@ -15,14 +14,12 @@
- }
- $name = strtoupper(str_replace('PHPT_Section_', '', get_class($section)));
- $key = $section instanceof PHPT_Section_Runnable ? $section->getPriority() . '.' . $name : $name;
- - $this->_raw_sections[$key] = $section;
- + $this->_sections[$key] = $section;
- $this->_section_map[$name] = $key;
- $this->_key_map[$key] = $name;
- }
-
- - ksort($this->_raw_sections);
- -
- - $this->_sections = $this->_raw_sections;
- + ksort($this->_sections);
- }
-
- public function current()
- @@ -52,21 +49,23 @@
-
- public function filterByInterface($interface = null)
- {
- + $ret = new PHPT_SectionList();
- +
- if (is_null($interface)) {
- - $this->_sections = $this->_raw_sections;
- - return $this;
- + $ret->_sections = $this->_sections;
- + return $ret;
- }
-
- $full_interface = 'PHPT_Section_' . $interface;
- - $this->_sections = array();
- - foreach ($this->_raw_sections as $name => $section) {
- + $ret->_sections = array();
- + foreach ($this->_sections as $name => $section) {
- if (!$section instanceof $full_interface) {
- continue;
- }
- - $this->_sections[$name] = $section;
- + $ret->_sections[$name] = $section;
- }
-
- - return $this;
- + return $ret;
- }
-
- public function has($name)
- @@ -74,11 +73,11 @@
- if (!isset($this->_section_map[$name])) {
- return false;
- }
- - return isset($this->_raw_sections[$this->_section_map[$name]]);
- + return isset($this->_sections[$this->_section_map[$name]]);
- }
-
- public function __get($key)
- {
- - return $this->_raw_sections[$this->_section_map[$key]];
- + return $this->_sections[$this->_section_map[$key]];
- }
- }
- Index: tests/CodeRunner/Driver/WScriptShell/injects-ini-settings.phpt
- ===================================================================
- --- tests/CodeRunner/Driver/WScriptShell/injects-ini-settings.phpt (revision 691)
- +++ tests/CodeRunner/Driver/WScriptShell/injects-ini-settings.phpt (working copy)
- @@ -17,9 +17,9 @@
-
- // sanity check
- $obj = new FoobarIni();
- -assert('(string)$obj == " -d display_errors=1 "');
- +assert('(string)$obj == " -d \"display_errors=1\" "');
- $obj->display_errors = 0;
- -assert('(string)$obj == " -d display_errors=0 "');
- +assert('(string)$obj == " -d \"display_errors=0\" "');
- unset($obj);
-
-
- Index: tests/Section/File/restores-case-sections.phpt
- ===================================================================
- --- tests/Section/File/restores-case-sections.phpt (revision 691)
- +++ tests/Section/File/restores-case-sections.phpt (working copy)
- @@ -1,24 +0,0 @@
- ---TEST--
- -After PHPT_Section_FILE::run(), the sections property of the provide $case object
- -is restored to its unfiltered state
- ---FILE--
- -<?php
- -
- -require_once dirname(__FILE__) . '/../../_setup.inc';
- -require_once dirname(__FILE__) . '/../_simple-test-case.inc';
- -require_once dirname(__FILE__) . '/_simple-file-modifier.inc';
- -
- -$case = new PHPT_SimpleTestCase();
- -$case->sections = new PHPT_SectionList(array(
- - new PHPT_Section_ARGS('foo=bar'),
- -));
- -
- -$section = new PHPT_Section_FILE('hello world');
- -$section->run($case);
- -
- -assert('$case->sections->valid()');
- -
- -?>
- -===DONE===
- ---EXPECT--
- -===DONE===
- Index: tests/SectionList/filter-by-interface.phpt
- ===================================================================
- --- tests/SectionList/filter-by-interface.phpt (revision 691)
- +++ tests/SectionList/filter-by-interface.phpt (working copy)
- @@ -17,10 +17,10 @@
-
- $data = array_merge($runnable, $non_runnable);
- $list = new PHPT_SectionList($data);
- -$list->filterByInterface('Runnable');
- -assert('$list->valid()');
- -$list->filterByInterface('EnvModifier');
- -assert('$list->valid() == false');
- +$runnable = $list->filterByInterface('Runnable');
- +assert('$runnable->valid()');
- +$env_modifier = $list->filterByInterface('EnvModifier');
- +assert('$env_modifier->valid() == false');
-
- ?>
- ===DONE===
- Index: tests/SectionList/filter-resets-with-null.phpt
- ===================================================================
- --- tests/SectionList/filter-resets-with-null.phpt (revision 691)
- +++ tests/SectionList/filter-resets-with-null.phpt (working copy)
- @@ -1,36 +0,0 @@
- ---TEST--
- -If you call filterByInterface() with null or no-value, the full dataset is restored
- ---FILE--
- -<?php
- -
- -require_once dirname(__FILE__) . '/../_setup.inc';
- -
- -$runnable = array(
- - 'ENV' => new PHPT_Section_ENV(''),
- - 'CLEAN' => new PHPT_Section_CLEAN(''),
- -);
- -
- -class PHPT_Section_FOO implements PHPT_Section { }
- -$non_runnable = array(
- - 'FOO' => new PHPT_Section_FOO(),
- -);
- -
- -$data = array_merge($runnable, $non_runnable);
- -$list = new PHPT_SectionList($data);
- -$list->filterByInterface('Runnable');
- -
- -// sanity check
- -foreach ($list as $key => $value) {
- - assert('$runnable[$key] == $value');
- -}
- -
- -$list->filterByInterface();
- -
- -foreach ($list as $key => $value) {
- - assert('$data[$key] == $value');
- -}
- -
- -?>
- -===DONE===
- ---EXPECT--
- -===DONE===
- Index: tests/Util/Code/runAsFile-executes-in-file.phpt
- ===================================================================
- --- tests/Util/Code/runAsFile-executes-in-file.phpt (revision 691)
- +++ tests/Util/Code/runAsFile-executes-in-file.phpt (working copy)
- @@ -10,7 +10,7 @@
-
- $util = new PHPT_Util_Code($code);
-
- -$file = dirname(__FILE__) . '/foobar.php';
- +$file = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'foobar.php';
- $result = $util->runAsFile($file);
-
- assert('$result == $file');
- Index: tests/Util/Code/runAsFile-returns-output-if-no-return.phpt
- ===================================================================
- --- tests/Util/Code/runAsFile-returns-output-if-no-return.phpt (revision 691)
- +++ tests/Util/Code/runAsFile-returns-output-if-no-return.phpt (working copy)
- @@ -9,7 +9,7 @@
-
- $util = new PHPT_Util_Code($code);
-
- -$file = dirname(__FILE__) . '/foobar.php';
- +$file = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'foobar.php';
- $result = $util->runAsFile($file);
-
- assert('$result == $file');
|