This is the test suite of my programming language called grug.
- Clone this repository and
cd
into it. - Run
git submodule update --init
to clone thegrug.c
andgrug.h
files (for your own game you can just drop these files directly into your project). - Run the tests with
./tests.sh
.
Check the terminal or the generated results
directory in tests to inspect any errors.
You can get more info in the results directory (from objdump, readelf and xxd) by running OUTPUT_DLL_INFO= ./tests.sh
.
If a test failed, you can reproduce it by replacing time(NULL)
in main()
with the failing test's printed seed.
If you're using a Debian-based distribution like Ubuntu 22.04, you might need to run sudo sysctl vm.mmap_rnd_bits=28
to fix address sanitizer, which tests.sh
uses. See this GitHub thread for context.
If the tests don't pass, try running OLD_LD= ./tests.sh
.
tests.sh
requires and has been tested with:
- NASM version 2.15.05 (
nasm_2.15.05-1_amd64.deb
in my case) - GNU ld (GNU Binutils for Ubuntu) 2.38
- valgrind (valgrind-3.18.1)
See the development.md
file in this repository.