Move BASIC fixtures into the editable language corpus
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
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>
This commit is contained in:
@@ -88,7 +88,7 @@ source stays readable as documentation of what the original did. Neither is bind
|
||||
|
||||
**It is not a build or test dependency.** Both configurations have been configured, built and
|
||||
run from scratch with it moved out of the tree. Its acceptance corpus is checked in at
|
||||
`tests/reference/` and its Commodore font at `assets/fonts/`.
|
||||
`tests/language/` and its Commodore font at `assets/fonts/`.
|
||||
|
||||
```sh norun
|
||||
cd deps/basicinterpret
|
||||
@@ -351,15 +351,10 @@ name. That is not cosmetic: `add_executable` creates a dependency's targets even
|
||||
|
||||
### The golden corpora
|
||||
|
||||
`tests/reference/` is the Go implementation's own acceptance suite, byte-compared.
|
||||
**Nothing in it is ever edited to suit this interpreter.** If a case fails, either this
|
||||
interpreter is wrong or the divergence is deliberate — and a deliberate one goes in
|
||||
`tests/reference/README.md`'s divergence table and `docs/13-differences.md`, not into the
|
||||
expectation file. `tests/reference/README.md`
|
||||
says the same thing at more length.
|
||||
|
||||
`tests/language/` is ours and may be changed freely. A new language feature needs a
|
||||
`.bas`/`.txt` pair there as well as unit tests.
|
||||
`tests/language/` is the editable language corpus. It includes cases carried over from the
|
||||
deprecated Go implementation as well as cases written for this interpreter. Every `.bas` file
|
||||
has a sibling `.txt` expectation, and a new language feature needs that pair as well as unit
|
||||
tests. Change both deliberately in the same commit; provenance does not make a case immutable.
|
||||
|
||||
### Mutation-check a fix before you believe it
|
||||
|
||||
|
||||
Reference in New Issue
Block a user