All checks were successful
akbasic CI Build / cmake_build (push) Successful in 3m34s
akbasic CI Build / coverage (push) Successful in 4m4s
akbasic CI Build / sanitizers (push) Successful in 6m59s
akbasic CI Build / akgl_build (push) Successful in 7m57s
akbasic CI Build / mutation_test (push) Successful in 23m28s
Move every program and expectation out of tests/reference and register the unified tests/language corpus as local cases. Remove the old immutable-corpus protections from build, maintenance, and documentation paths. Co-authored-by: andrew <andrew@aklabs.net>
17 lines
963 B
Markdown
17 lines
963 B
Markdown
# The language test corpus
|
|
|
|
The `.bas` files in this directory and their sibling `.txt` files are the editable language
|
|
corpus. CMake registers every program as an individual `local_*` CTest case and compares its
|
|
output with the sibling expectation.
|
|
|
|
The corpus includes cases carried over from the deprecated Go implementation as well as cases
|
|
written for this interpreter. Their provenance is useful when investigating a regression, but it
|
|
does not make any case immutable or turn the old implementation into a specification.
|
|
|
|
**Change a program and its expectation deliberately and in the same commit.** If the changed
|
|
output represents an intentional language decision, record the reason in `TODO.md` or the
|
|
relevant documentation. If it is an accidental change, fix the interpreter instead.
|
|
|
|
The `examples/` subdirectory contains complete BASIC programs used as worked examples. It is
|
|
part of the same corpus and follows the same `.bas`/`.txt` pairing rule.
|