summaryrefslogtreecommitdiff
path: root/js/src/jit-test/README
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/README')
-rw-r--r--js/src/jit-test/README74
1 files changed, 74 insertions, 0 deletions
diff --git a/js/src/jit-test/README b/js/src/jit-test/README
new file mode 100644
index 0000000..ddde38d
--- /dev/null
+++ b/js/src/jit-test/README
@@ -0,0 +1,74 @@
+JS Trace Test Suite
+
+* PURPOSE
+
+This is a test suite for testing TraceMonkey. All tests are run in the JS shell
+with tracing enabled (-j).
+
+* REQUIREMENTS
+
+Python 2.5. This is already a standard requirement for building our tree.
+
+* RUNNING THE TESTS
+
+Basic usage:
+
+ python jit_test.py <path-to-js-shell>
+
+The progress bar shows [#tests passed, #tests failed, #tests run] at the left.
+If all tests pass, the output is 'PASSED ALL'. The test suite can be interrupted
+at any time with Ctrl+C and partial results will be printed.
+
+To run only the basic tests, not including the slow tests:
+
+ python jit_test.py <path-to-js-shell> basic
+
+For more options:
+
+ python jit_test.py -h
+
+* CREATING NEW TESTS
+
+Simply create a JS file under the 'tests/' directory. Most tests should go in
+'tests/basic/'.
+
+All tests are run with 'lib/prolog.js' included first on the command line. The
+command line also creates a global variable 'libdir' that is set to the path
+of the 'lib' directory. To include a file 'foo.js' from the lib directory in a
+test case:
+
+ load(libdir + 'foo.js')
+
+* TEST METALINES
+
+The first line of a test case can contain a special comment controlling how the
+test is run. For example:
+
+ // |jit-test| allow-oom;
+
+The general format in EBNF is:
+
+ metaline ::= cookie { item ";" }
+ cookie ::= "|jit-test|"
+ item ::= flag | attribute
+
+ flag ::= "slow" | "allow-oom"
+
+ attribute ::= name ":" value
+ name ::= "TMFLAGS" | "error"
+ value ::= <string>
+
+The metaline may appear anywhere in the first line of the file: this allows it
+to be placed inside any kind of comment.
+
+The meaning of the items:
+
+ slow Test runs slowly. Do not run if the --no-slow option is given.
+ allow-oom If the test runs out of memory, it counts as passing.
+ valgrind Run test under valgrind.
+
+ error The test should be considered to pass iff it throws the
+ given JS exception.
+ TMFLAGS Set the environment variable TMFLAGS to the given value.
+
+* END