Reworked the test a bit to make it separate from RA's build system for simplicity. Reworked the testing a bit to ensure coverage is properly generated. This needs more work since it's rather manual and verbose
Both accept (void *) values. Also added some unit tests using CHECK.