Unified Layout for Test Suites¶
Warning
This document is under active development. It might and probably will change substantially in the future.
Introduction¶
TBD
Top-Level Layout¶
All test suites follow into one of following categories:
tests/lang: Implementation-independent suites for general compliance testing;
tests/impl: Implementation-dependent suites for either targeted testing of features provided by the given implementation or cross-validation one implementation with tests from another implementation;
tests/perf: Performance benchmarks.
Layout for a Suite¶
Main Layout¶
Path |
Description |
|---|---|
|
Required. CMake file for the suite. |
|
Required. A file that explicitly manifests all files from the suite. Should be used for building correct target dependencies. NB! Do not use globbing in the manifest. TODO: Explain why. |
|
Required. Directory that contains the suite per se. If
the suite was fetched from a VCS repository, the copy
must be cleaned from all VCS metadata ( |
|
Required. A Bash script that actually launches the suite incorporating all possible tweaks for running it. Requirements:
|
|
Required. This file must include at least:
|
|
TO BE IMPLEMENTED LATER. Ideally, all external suites must be taken as is. If they require patching for some reason, all patches must be kept separately and then applied on the fly. However, for the first release let’s patch in place
marking all patched places with comments that start
with
|
Environment Variables¶
Following environment variables must defined and used by the suite launcher. If any variable from the list is not defined at the launch of run_tests.sh, some pre-agreed default must be used.
Variable
Description
SUITE_DIRThe root directory of the entire suite.
Example:
$SUITE_DIR/suiteis a path to the tests themselves.
SUITE_OUT_DIRDirectory for storing artefacts produced by the suite.
The following environment variables must be set and used when running tests implemented in Lua:
Variable
Description
LUA_IMPL_BINPath to the Lua implementation binary being tested.
Note. This variable replaces an earlier introduced ad hoc
UJIT_BINvariable.
LUA_IMPL_OPTRaw string of command line options to be passed directly to the binary specified in
LUA_IMPL_BIN.
Dynamically Produced Artefacts¶
Path |
Description |
|---|---|
${CMAKE_CURRENT_BINARY_DIR}/suite_bin |
Optional. Directory where executables or libraries used in a suite are built. Note: ${SUITE_OUT_DIR} shouldn’t be used here, because it’s removed after each test run and there’s no need to rebuilt executables/libraries each time. |
${SUITE_OUT_DIR}/run_tests.ok |
Required. An “OK file” that should be touch’ed if the suite runs successfully. Should be used in the corresponding CMakeLists.txt for building correct target dependencies. |