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.