Joeri Exelmans 012898370d Abandon silly 'state scope' idea (too complex and difficult to combine with memory protocol semantics). Major revision of memory protocol implementation. Added support for function closures. 5 年之前
..
legacy_test_files 650cb9334c Overhaul of directory structure. 5 年之前
lib f93fc55dc3 Datamodel: Have a "setup" script declaring variables in the instance scope instead of silly XML tags <var> and <func> for variable and function declarations. Nicer syntax, more powerful and we reuse functionality (like parsing and interpreting a block of statements) instead of treating the datamodel as something special. Function declarations are just expressions assigned to variables or directly called. Nested function declarations should be fully supported (yet untested). 5 年之前
test_files 012898370d Abandon silly 'state scope' idea (too complex and difficult to combine with memory protocol semantics). Major revision of memory protocol implementation. Added support for function closures. 5 年之前
wontfix f600f56401 Updated 'render' script + checked in reasonably looking rendered statechart images 5 年之前
README.md 549c81a8a8 Simplified things 5 年之前
legacy_render.py 650cb9334c Overhaul of directory structure. 5 年之前
legacy_test.py 650cb9334c Overhaul of directory structure. 5 年之前
render.py 3c606e245b Implemented 'else' branches for if-statements. Better static analysis of return types. Moved non-statechart XML parsing logic to separate file. 5 年之前
test.py 80d532b9a3 Simpler handling of tests expected to fail. Added race condition test. 5 年之前

README.md

test.py

The Python program test.py replaces the old run_tests.py. It takes test input files (in SCCD XML format) as parameter. It compiles tests and runs them.

For example, to run the "semantics" tests:

python3 test.py test_files/semantics

This will create a 'build' directory with compiled statechart models. It is always safe to remove this directory, it merely serves as a 'cache' for build artifacts.

render.py

The Python program render.py renders the test file state machines as SVG images. Rendered SVG files are already checked in to this repository. If you wish to re-render them, you need the NPM (NodeJS) package state-machine-cat. Install NodeJS and NPM, and then install the NPM package 'state-machine-cat':

npm i -g state-machine-cat

Now, e.g. render the "semantics" tests:

python3 render.py test_files/semantics

By default, the SVG files are stored next to the test XML files.