summaryrefslogtreecommitdiffstats
path: root/util/wasm/batchedtestrunner/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'util/wasm/batchedtestrunner/README.md')
-rw-r--r--util/wasm/batchedtestrunner/README.md60
1 files changed, 60 insertions, 0 deletions
diff --git a/util/wasm/batchedtestrunner/README.md b/util/wasm/batchedtestrunner/README.md
new file mode 100644
index 0000000000..a5d165c630
--- /dev/null
+++ b/util/wasm/batchedtestrunner/README.md
@@ -0,0 +1,60 @@
+This package contains sources for a webpage whose scripts run batched WASM tests - a single
+executable with a number of linked test classes.
+The webpage operates on an assumption that the test program, when run without arguments,
+prints out a list of test classes inside its module. Then, when run with the first argument
+equal to the name of one of the test classes, the test program will execute all tests within
+that single class.
+
+The following query parameters are recognized by the webpage:
+
+qtestname=testname - the test case to run. When batched test module is used, the test is assumed to
+ be a part of the batch. If a standalone test module is used, this is assumed to be the name of
+ the wasm module.
+
+quseemrun - if specified, the test communicates with the emrun instance via the protocol expected
+ by emrun.
+
+qtestoutputformat=txt|xml|lightxml|junitxml|tap - specifies the output format for the test case.
+
+qbatchedtest - if specified, the script will load the test_batch.wasm module and either run all
+ testcases in it or a specific test case, depending on the existence of the qtestname parameter.
+ Otherwise, the test is assumed to be a standalone binary whose name is determined by the
+ qtestname parameter.
+
+The scripts in the page will load the wasm file as specified by a combination of qbatchedtest and
+qtestname.
+
+Public interface for querying the test execution status is accessible via the global object
+'qtTestRunner':
+
+qtTestRunner.status - this contains the status of the test runner itself, of the enumeration type
+RunnerStatus.
+
+qtTestRunner.results - a map of test class name to test result. The result contains a test status
+(status, of the enumeration TestStatus), text output chunks (output), and in case of a terminal
+status, also the test's exit code (exitCode)
+
+qtTestRunner.onStatusChanged - an event for changes in state of the runner itself. The possible
+values are those of the enumeration RunnerStatus.
+
+qtTestRunner.onTestStatusChanged - an event for changes in state of a single tests class. The
+possible values are those of the enumeration TestStatus. When a terminal state is reached
+(Completed, Error, Crashed), the text results and exit code are filled in, if available, and
+will not change.
+
+Typical usage:
+Run all tests in a batch:
+ - load the webpage batchedtestrunner.html
+
+Run a single test in a batch:
+ - load the webpage batchedtestrunner.html?qtestname=tst_mytest
+
+Query for test execution state:
+ - qtTestRunner.onStatusChanged.addEventListener((runnerStatus) => (...)))
+ - qtTestRunner.onTestStatusChanged.addEventListener((testName, status) => (...))
+ - qtTestRunner.status === (...)
+ - qtTestRunner.results['tst_mytest'].status === (...)
+ - qtTestRunner.results['tst_mytest'].textOutput
+
+When queseemrun is specified, the built-in emrun support module will POST the test output to the
+emrun instance and will report ^exit^ with a suitable exit code to it when testing is finished.