diff options
| -rw-r--r-- | tests/lint_test.php | 22 | 
1 files changed, 17 insertions, 5 deletions
| diff --git a/tests/lint_test.php b/tests/lint_test.php index eba117839b..b0149063bd 100644 --- a/tests/lint_test.php +++ b/tests/lint_test.php @@ -9,17 +9,30 @@  class phpbb_lint_test extends phpbb_test_case  { +	static protected $php_binary;  	static protected $exclude;  	static public function setUpBeforeClass()  	{ +		// Try to use PHP_BINARY constant if available so lint tests are run +		// using the same php binary as phpunit. If not available (pre PHP +		// 5.4), assume binary is called 'php' and is in PATH. +		self::$php_binary = defined('PHP_BINARY') ? escapeshellcmd(PHP_BINARY) : 'php'; +  		$output = array();  		$status = 1; -		exec('(php -v) 2>&1', $output, $status); +		exec(sprintf('(%s --version) 2>&1', self::$php_binary), $output, $status);  		if ($status)  		{  			$output = implode("\n", $output); -			self::markTestSkipped("php is not in PATH or broken: $output"); +			if (self::$php_binary === 'php') +			{ +				self::markTestSkipped(sprintf('php is not in PATH or broken. Output: %s', $output)); +			} +			else +			{ +				self::markTestSkipped(sprintf('Could not run PHP_BINARY %s. Output: %s', self::$php_binary, $output)); +			}  		}  		self::$exclude = array( @@ -65,13 +78,12 @@ class phpbb_lint_test extends phpbb_test_case  			}  			else if (substr($filename, strlen($filename)-4) == '.php')  			{ -				// assume php binary is called php and it is in PATH -				$cmd = '(php -l ' . escapeshellarg($path) . ') 2>&1'; +				$cmd = sprintf('(%s -l %s) 2>&1', self::$php_binary, escapeshellarg($path));  				$output = array();  				$status = 1;  				exec($cmd, $output, $status);  				$output = implode("\n", $output); -				$this->assertEquals(0, $status, "php -l failed for $path:\n$output"); +				$this->assertEquals(0, $status, "PHP lint failed for $path:\n$output");  			}  		}  	} | 
