A minimalist test framework.
Each test case is essentially a free void (void),
i.e. a free function with nor arguments returning nothing.

  void
  test_foo()
  {
     ...
     TEST_ASSERT("TEST PASSED");
  }

Test pass/fail is indicated by 
printing,
to stdout/stderr/cout/cerr,
and/or by throwing an exception or exiting
(with a nonzero exit code).

PRO: minimalist. Few assumptions.

CON: perhaps too minimalist.

----

It is very minimalist, but you might be afraid of painting yourself
into a corner. Consider: how easy or difficult would it be to 
convert these testing functions to classes? You probably already
have a script that pulls out all the function names, so it is
trivial to create the boilerplate class declarations.
The function definition then has to be changes to seomthing like

  void test_foo::run() { ... }

Seems also within the realm of textual substitution. So perhaps 
changing this later on is not too expensive.

----

''Is this like a VoigtKampffTest for programmers?  If their pupils dilate when shown this code... blast 'em!''