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
.