I'm not a c programmer, but having unit tests automatically run at compile time seems odd. If i wanted to run tests at the same time as compiling i would put that in the makefile.
Every time you do exploratory work you now have to comment out all the tests that this work breaks because otherwise it won't compile anymore.
That would be even more annoying than Go's stupidly pedantic compiler.
Can't that be an optional thing decided by some compiler flag? I think I remember doing something like that in D.
Unfortunately, ever since golang decided on an autocratic and backwards "there are no warnings, only errors" policy, others have started to sip from the same kool aid jar.