mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-29 16:53:30 +01:00
151dccbd31
This was an old "include all" header, that we no longer want to be usable, to make the include differences in new versions explicit. We will introduce new "include all" headers later, in the form of `catch_all.hpp`, `catch_matchers_all.hpp` and so on...
75 lines
2.7 KiB
C++
75 lines
2.7 KiB
C++
// 030-Asn-Require-Check.cpp
|
|
|
|
// Catch has two natural expression assertion macro's:
|
|
// - REQUIRE() stops at first failure.
|
|
// - CHECK() continues after failure.
|
|
|
|
// There are two variants to support decomposing negated expressions:
|
|
// - REQUIRE_FALSE() stops at first failure.
|
|
// - CHECK_FALSE() continues after failure.
|
|
|
|
// main() provided in 000-CatchMain.cpp
|
|
|
|
#include <catch2/catch_test_macros.hpp>
|
|
|
|
static std::string one() {
|
|
return "1";
|
|
}
|
|
|
|
TEST_CASE( "Assert that something is true (pass)", "[require]" ) {
|
|
REQUIRE( one() == "1" );
|
|
}
|
|
|
|
TEST_CASE( "Assert that something is true (fail)", "[require]" ) {
|
|
REQUIRE( one() == "x" );
|
|
}
|
|
|
|
TEST_CASE( "Assert that something is true (stop at first failure)", "[require]" ) {
|
|
WARN( "REQUIRE stops at first failure:" );
|
|
|
|
REQUIRE( one() == "x" );
|
|
REQUIRE( one() == "1" );
|
|
}
|
|
|
|
TEST_CASE( "Assert that something is true (continue after failure)", "[check]" ) {
|
|
WARN( "CHECK continues after failure:" );
|
|
|
|
CHECK( one() == "x" );
|
|
REQUIRE( one() == "1" );
|
|
}
|
|
|
|
TEST_CASE( "Assert that something is false (stops at first failure)", "[require-false]" ) {
|
|
WARN( "REQUIRE_FALSE stops at first failure:" );
|
|
|
|
REQUIRE_FALSE( one() == "1" );
|
|
REQUIRE_FALSE( one() != "1" );
|
|
}
|
|
|
|
TEST_CASE( "Assert that something is false (continue after failure)", "[check-false]" ) {
|
|
WARN( "CHECK_FALSE continues after failure:" );
|
|
|
|
CHECK_FALSE( one() == "1" );
|
|
REQUIRE_FALSE( one() != "1" );
|
|
}
|
|
|
|
// Compile & run:
|
|
// - g++ -std=c++11 -Wall -I$(CATCH_SINGLE_INCLUDE) -o 030-Asn-Require-Check 030-Asn-Require-Check.cpp 000-CatchMain.o && 030-Asn-Require-Check --success
|
|
// - cl -EHsc -I%CATCH_SINGLE_INCLUDE% 030-Asn-Require-Check.cpp 000-CatchMain.obj && 030-Asn-Require-Check --success
|
|
|
|
// Expected compact output (all assertions):
|
|
//
|
|
// prompt> 030-Asn-Require-Check.exe --reporter compact --success
|
|
// 030-Asn-Require-Check.cpp:20: passed: one() == "1" for: "1" == "1"
|
|
// 030-Asn-Require-Check.cpp:24: failed: one() == "x" for: "1" == "x"
|
|
// 030-Asn-Require-Check.cpp:28: warning: 'REQUIRE stops at first failure:'
|
|
// 030-Asn-Require-Check.cpp:30: failed: one() == "x" for: "1" == "x"
|
|
// 030-Asn-Require-Check.cpp:35: warning: 'CHECK continues after failure:'
|
|
// 030-Asn-Require-Check.cpp:37: failed: one() == "x" for: "1" == "x"
|
|
// 030-Asn-Require-Check.cpp:38: passed: one() == "1" for: "1" == "1"
|
|
// 030-Asn-Require-Check.cpp:42: warning: 'REQUIRE_FALSE stops at first failure:'
|
|
// 030-Asn-Require-Check.cpp:44: failed: !(one() == "1") for: !("1" == "1")
|
|
// 030-Asn-Require-Check.cpp:49: warning: 'CHECK_FALSE continues after failure:'
|
|
// 030-Asn-Require-Check.cpp:51: failed: !(one() == "1") for: !("1" == "1")
|
|
// 030-Asn-Require-Check.cpp:52: passed: !(one() != "1") for: !("1" != "1")
|
|
// Failed 5 test cases, failed 5 assertions.
|