com phpruntests: Add logic to check redirect skipif before saving the test: phpt-tests/sample_redirect2.phpt src/testcase/rtPhpTest .php
src/testgroup/rtPhpTestGroup.php
| From: | Zoe Slattery | Date: | Mon, 06 Aug 2012 10:40:32 +0000 |
| Subject: | com phpruntests: Add logic to check redirect skipif before saving the test: phpt-tests/sample_redirect2.phpt src/testcase/rtPhpTest .php src/testgroup/rtPhpTestGroup.php |
||
| Groups: | php.qa | ||
| Request: | Send a blank email to php-qa+get-66740@lists.php.net to get a copy of this message | ||
Commit: d212f75880adaeb7e08e1b3cb1f58f8fd616e248
Author: zoe slattery <zoe@php.net> Mon, 6 Aug 2012 11:40:32 +0100
Parents: c899eb4017fab1c4cb3cc0490ea8f49221b83280
Branches: master
Link: http://git.php.net/?p=phpruntests.git;a=commitdiff;h=d212f75880adaeb7e08e1b3cb1f58f8fd616e248
Log:
Add logic to check redirect skipif before saving the test
Changed paths:
A phpt-tests/sample_redirect2.phpt
M src/testcase/rtPhpTest.php
M src/testgroup/rtPhpTestGroup.php
Diff:
diff --git a/phpt-tests/sample_redirect2.phpt b/phpt-tests/sample_redirect2.phpt
new file mode 100644
index 0000000..9b957be
--- /dev/null
+++ b/phpt-tests/sample_redirect2.phpt
@@ -0,0 +1,13 @@
+--TEST--
+Make sure tests skips OK
+--SKIPIF--
+<?php # vim:ft=php
+ print 'skip'; ?>
+--REDIRECTTEST--
+return array(
+ 'ENV' => array(
+ 'PDOTEST_DSN' => 'sqlite::memory:'
+ ),
+ 'TESTS' => 'ext/pdo/tests'
+ );
+
diff --git a/src/testcase/rtPhpTest.php b/src/testcase/rtPhpTest.php
index f5dacc6..ce2141a 100644
--- a/src/testcase/rtPhpTest.php
+++ b/src/testcase/rtPhpTest.php
@@ -128,6 +128,16 @@ class rtPhpTest
}
}
}
+ /**
+ *
+ * Just runs teh SKIPIF section - required for redirect test implementation
+ * @param $runConfiguration
+ */
+
+ public function runSkipif(rtRuntestsConfiguration $runConfiguration) {
+ $this->testStatus = $this->sections['SKIPIF']->run($this,
$runConfiguration);
+
$this->testStatus->setExecutedPhpCommand($this->sections['SKIPIF']->getPhpCommand());
+ }
/**
* Test the output against the expect section
diff --git a/src/testgroup/rtPhpTestGroup.php b/src/testgroup/rtPhpTestGroup.php
index 1bcd7f7..735d2df 100644
--- a/src/testgroup/rtPhpTestGroup.php
+++ b/src/testgroup/rtPhpTestGroup.php
@@ -1,6 +1,6 @@
<?php
/**
- * rtTestGroup
+ * rtPhpTestGroup
*
* Runs a 'group of tests'.. A 'group' is all or the tests in a single
directory.
*
@@ -50,10 +50,20 @@ class rtPhpTestGroup
$this->testCases[] = new rtPhpTest($testFile->getContents(),
$testFile->getTestName(), $testFile->getSectionHeadings(), $runConfiguration, $testStatus);
} elseif (in_array("REDIRECTTEST",$testFile->getSectionHeadings())){
//Redirect handler, save the test case for processing after the main groups have
finished.
+ //Check to make sure that it shouldn't be skipped, if skipped don't save it
$redirectedTest= new rtPhpTest($testFile->getContents(),
$testFile->getTestName(), $testFile->getSectionHeadings(), $runConfiguration, $testStatus);
- $testStatus->setTrue('redirected');
- $testStatus->setMessage('redirected', $testFile->getExitMessage());
- $this->results[] = new rtTestResults($redirectedTest, $testStatus);
+ if($redirectedTest->hasSection('SKIPIF')) {
+ $redirectedTest->runSkipif($runConfiguration);
+ if($redirectedTest->getStatus()->getValue('skip')) {
+ $testStatus->setTrue('skip');
+ $testStatus->setMessage('skip', $testFile->getExitMessage());
+ } else {
+ $testStatus->setTrue('redirected');
+ $testStatus->setMessage('redirected',
$testFile->getExitMessage());
+ }
+ $this->results[] = new rtTestResults($redirectedTest, $testStatus);
+ }
+
}else {
$testStatus->setTrue('bork');
$testStatus->setMessage('bork', $testFile->getExitMessage());