# Development Notes ## Test Wrappers Meson provides a `--wrapper` flag to run tests through arbitrary programs, for instance: $ meson test --wrapper 'valgrind --error-exitcode=1 --leak-check=full' Full output can be obtained by also passing `--verbose`. If you encounter segfaults happening at random, catch them by repeating unit tests multiple times with GDB attached: $ meson test --repeat 1000000 --gdb ## Printing and Debugging An AST printer for the [Dot Format](https://en.wikipedia.org/wiki/DOT_(graph_description_language)) is provided. Together with [Graphviz](https://graphviz.gitlab.io/), ASTs can be visualised. $ ./mc_ast_to_dot ../test/integration/fib/fib.mc | xdot - or $ ./mc_ast_to_dot ../test/integration/fib/fib.mc | dot -Tpng > fib_ast.png $ xdg-open fib_ast.png ## `mcc` Stub A stub for the mC compiler is provided to ease infrastructure development. It can already be used with the integration test runner. $ MCC=../scripts/mcc_stub ../scripts/run_integration_tests