fun> Fun - Writing Tests
How to author new tests for Fun and opcode components.
Table of contents
How to author tests for Fun and its opcode implementations.
Test kinds
- VM/opcode tests: exercise bytecode operations and VM behavior (target:
test_opcodes). - Language/runtime tests: exercise user-visible features and stdlib behavior (target:
fun_test).
See documentation/testing.md for how to build and run these targets with CTest.
Adding new tests
The exact layout may evolve; generally:
- Add new test sources alongside existing ones used by
fun_test. - For opcode-focused tests, add cases where
test_opcodesdiscovers them.
Aim for:
- Small, isolated test cases with clear assertions
- One behavior per test; descriptive names
- Minimal fixtures and setup
Guidelines
- Prefer black-box testing via public APIs.
- When adding features, include both positive and negative cases.
- Keep tests deterministic; avoid non-deterministic timers or random sources unless seeded.

