mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Added a syntax checking test that will use short_tags on and off and asp_tags on
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@73481 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
a28ea0a69e
commit
ef4c5019a6
36
tests/PhpSyntaxTest.php
Normal file
36
tests/PhpSyntaxTest.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Test the syntax of the PHP files with various settings
|
||||
*/
|
||||
class PhpSyntaxTest extends SapphireTest {
|
||||
function testShortTagsOffWillWork() {
|
||||
// Ignore this test completely if running the test suite on windows
|
||||
// TODO: Make it work on all platforms, by building an alternative to find | grep.
|
||||
$returnCode = 0;
|
||||
$output = array();
|
||||
exec("which find && which grep && which php", $output, $returnCode);
|
||||
if($returnCode != 0) return;
|
||||
|
||||
$settingTests = array('short_open_tag=Off','short_open_tag=On -d asp_tags=On');
|
||||
|
||||
$files = $this->getAllFiles('php');
|
||||
$files[] = '../sapphire/dev/install/config-form.html';
|
||||
|
||||
foreach($files as $i => $file) {
|
||||
$CLI_file = escapeshellarg($file);
|
||||
foreach($settingTests as $settingTest) {
|
||||
$returnCode = 0;
|
||||
$output = array();
|
||||
exec("php -l -d $settingTest $CLI_file", $output, $returnCode);
|
||||
$this->assertEquals(0, $returnCode, "Syntax error parsing $CLI_file with setting $settingTest:\n" . implode("\n", $output));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getAllFiles($ext = 'php') {
|
||||
// TODO: Unix only
|
||||
$CLI_regexp = escapeshellarg("\.$ext\$");
|
||||
return explode("\n", trim(`find .. | grep $CLI_regexp`));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user