Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Running Tests

make test                # all tests
make test filter=arrays  # scripts under test/arrays
make update              # rewrite golden files after an intended change
make cover               # coverage
make fuzz FUZZTIME=1m    # fuzz the whole pipeline

Each test/**/*.rn script runs in-process, in parallel, with a 5s timeout. Directives in comments:

  • // expect: <line> — next line of stdout;
  • // [line: N] Error... — compile error, in order; without [line: N] it is the comment’s line;
  • // expect runtime error: [line: N] <message> — uncaught runtime error.

foo.stderr next to foo.rn holds the full error report (snippet, caret, trace); a missing file means empty stderr. testdata/<command>/*.rn are run through the CLI command (tokenize, evaluate, run, disasm, fmt) and compared with .golden files: exit code, stdout and stderr.