A unit testing framework for beginner C++ programmers.

KNOWN BUGS:

If a .u file has the same name as a .cpp file ("foo.u" and "foo.cpp"),
then the compile script will collide their .o files.

C++11-style list initialisation, e.g.
  vector<int> vals {1, 2, 3};
  string str {"hello"};
is not yet supported in the fixture.  (Aggregate initialisation, e.g.
  vector<int> vals = {1, 2, 3};
should be fine.)

The error message when trying to "expect == vec" (where "vec" is a
vector value) is exceedingly unhelpful.  This is in general true of
types that have == defined but not a valid << operator (to dump the
output when a test fails).


FUTURE WORK:

There's no inherent reason why multiple .u files, each with a separate
test suite, couldn't compile into a single runnable test executable (the
underlying cppunit supports it).

Improving some of the error messages generally would be useful.

Make parser context-sensitive at start of statement, so "check" only bad
at start of stmt in test block, etc.
