- Rename grayDepth to grayCount and maxGray to grayCapacity for clarity - Fix gray stack growth condition to check capacity instead of depth - Use config.reallocateFn directly instead of wrenReallocate wrapper - Change blacken loop from do-while to while to handle empty gray set - Remove separate initializeGC function and inline allocation in wrenNewVM - Add explicit System.gc() calls in deeply_nested_gc and many_reallocations tests - Normalize test output strings to lowercase "done"
This contains the automated validation suite for the VM and built-in libraries.
-
benchmark/- Performance tests. These aren't strictly pass/fail, but let us compare performance both against other languages and against previous builds of Wren itself. -
core/- Tests for the built in core library, mainly methods on the core classes. If a bug is inwren_core.corwren_value.c, it will most likely break one of these tests. -
language/- Tests of the language itself, its grammar and runtime semantics. If a bug is inwren_compiler.corwren_vm.c, it will most likely break one of these tests. This includes tests for the syntax for the literal forms of the core classes. -
limit/- Tests for various hardcoded limits. The language doesn't officially specify these limits, but the Wren implementation has them. These tests ensure that limit behavior is well-defined and tested.