unittest-cpp/unittest-cpp — pull request #58 by paxos1977 (2014-10-17 22:47:48+00:00)
Title: Introducing REQUIRE macro

Introducing additional functionality to allow client code to stop a unit test when an assert fails.

The following macro has been added:

REQUIRE

An example of when these type of checks are useful:

std::vector v = foo();

REQUIRE(CHECK_EQUAL(3, v.size())); // test stops here on a fail
// so we don't segfault looking at
// v[0] below.
CHECK_EQUAL(1, v[0]);
CHECK_EQUAL(2, v[1]);
CHECK_EQUAL(3, v[2]);

Multiple checks are supported as follows:

REQUIRE({
CHECK_EQUAL(1, 2);
CHECK(true);
});

In the multiple check scenario, all the checks in the REQUIRE block will
be run. After which, if any failures were reported, the TEST case will
be stopped.

When UNITTEST_NO_EXCEPTIONS is defined, REQUIRE is a noop.