summaryrefslogtreecommitdiff
path: root/extensions/ParserFunctions/testExpr.php
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/ParserFunctions/testExpr.php')
-rw-r--r--extensions/ParserFunctions/testExpr.php38
1 files changed, 38 insertions, 0 deletions
diff --git a/extensions/ParserFunctions/testExpr.php b/extensions/ParserFunctions/testExpr.php
new file mode 100644
index 00000000..4a941737
--- /dev/null
+++ b/extensions/ParserFunctions/testExpr.php
@@ -0,0 +1,38 @@
+<?php
+
+require_once ( getenv( 'MW_INSTALL_PATH' ) !== false
+ ? getenv( 'MW_INSTALL_PATH' ) . "/maintenance/commandLine.inc"
+ : dirname( __FILE__ ) . '/../../maintenance/commandLine.inc' );
+require( 'Expr.php' );
+
+$tests = file( 'exprTests.txt' );
+
+$pass = $fail = 0;
+
+// Each test is on one line. The test must always evaluate to '1'.
+$parser = new ExprParser;
+foreach ( $tests as $test ) {
+ $test = trim( $test );
+ if ( in_string( ';', $test ) )
+ list( $input, $expected ) = explode( ';', $test );
+ else {
+ $input = $test;
+ $expected = 1;
+ }
+
+ $expected = trim( $expected );
+ $input = trim( $input );
+
+ $result = $parser->doExpression( $input );
+ if ( $result != $expected ) {
+ print
+ "FAILING test -- $input
+ gave a final result of $result, instead of $expected.\n";
+ $fail++;
+ } else {
+ print "PASSED test $test\n";
+ $pass++;
+ }
+}
+
+print "Passed $pass tests, failed $fail tests, out of a total of " . ( $pass + $fail ) . "\n"; \ No newline at end of file