1b70c1f199
The big TEST_IMPLICIT_DEFINES and TEST_CFG macros have been a big pain-in-the-ass to maintain. Mostly due to C preprocessor annoyances (bleh escaped newlines) and no-ifdef workarounds, which make a real mess of things. This does two things: 1. Moves all the defines out of test_runner.h and into test_defines.h (same for benches). 2. Inverts the include logic such that test_defines.h gets included many times with various "query macros" defined. Currently just two, but can easily add more: 1. TEST_DEFINE(name, value) - name and default value for a define 2. TEST_CFG(name, value) - name and value for a cfg field This seems to work surprisingly well. It solves all of the above C preprocessor issues, and provides a flexible method for defining test defines. Note an important part of making this work is that test_defines.h expands to an empty string by default.