Assertions
There are two different basic types of assertions: checks and requirements. Both checks and requires will mark the overall test as failed if they are false, but a require will also immediately stop executing the test in addition.
Check Macros
CHECK(x)
Marks the test as failed if x is false and prints stringified x.
CHECK_EQ(x, y, fmt)
Marks the test as failed if x == y is false. Prints both the stringified names of x and y as well as their values, using the printf format code provided in fmt.
CHECK_NEQ(x, y, fmt)
Marks the test as failed if x != y is false. Prints both the stringified names of x and y as well as their values, using the printf format code provided in fmt.
CHECK_LT(x, y, fmt)
Marks the test as failed if x < y is false. Prints both the stringified names of x and y as well as their values, using the printf format code provided in fmt.
CHECK_LE(x, y, fmt)
Marks the test as failed if x <= y is false. Prints both the stringified names of x and y as well as their values, using the printf format code provided in fmt.
CHECK_GT(x, y, fmt)
Marks the test as failed if x > y is false. Prints both the stringified names of x and y as well as their values, using the printf format code provided in fmt.
CHECK_GE(x, y, fmt)
Marks the test as failed if x >= y is false. Prints both the stringified names of x and y as well as their values, using the printf format code provided in fmt.
Require Macros
REQUIRE(x)
Marks the test as failed and immediately ends test execution if x is false and prints stringified x.
REQUIRE_EQ(x, y, fmt)
Marks the test as failed and immediately ends test execution if x == y is false. Prints both the stringified names of x and y as well as their values, using the printf format code provided in fmt.
REQUIRE_NEQ(x, y, fmt)
Marks the test as failed and immediately ends test execution if x != y is false. Prints both the stringified names of x and y as well as their values, using the printf format code provided in fmt.
REQUIRE_LT(x, y, fmt)
Marks the test as failed and immediately ends test execution if x < y is false. Prints both the stringified names of x and y as well as their values, using the printf format code provided in fmt.
REQUIRE_LE(x, y, fmt)
Marks the test as failed and immediately ends test execution if x <= y is false. Prints both the stringified names of x and y as well as their values, using the printf format code provided in fmt.
REQUIRE_GT(x, y, fmt)
Marks the test as failed and immediately ends test execution if x > y is false. Prints both the stringified names of x and y as well as their values, using the printf format code provided in fmt.
REQUIRE_GE(x, y, fmt)
Marks the test as failed and immediately ends test execution if x >= y is false. Prints both the stringified names of x and y as well as their values, using the printf format code provided in fmt.