diff options
Diffstat (limited to '3rdparty/sol2/Catch/projects/SelfTest/PartTrackerTests.cpp')
-rw-r--r-- | 3rdparty/sol2/Catch/projects/SelfTest/PartTrackerTests.cpp | 328 |
1 files changed, 0 insertions, 328 deletions
diff --git a/3rdparty/sol2/Catch/projects/SelfTest/PartTrackerTests.cpp b/3rdparty/sol2/Catch/projects/SelfTest/PartTrackerTests.cpp deleted file mode 100644 index 29256351197..00000000000 --- a/3rdparty/sol2/Catch/projects/SelfTest/PartTrackerTests.cpp +++ /dev/null @@ -1,328 +0,0 @@ -/* - * Created by Phil on 1/10/2015. - * Copyright 2015 Two Blue Cubes Ltd - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_test_case_tracker.hpp" - - -namespace Catch -{ - class LocalContext { - - public: - TrackerContext& operator()() const { - return TrackerContext::instance(); - } - }; - -} // namespace Catch - -inline Catch::TrackerContext& C_A_T_C_H_Context() { - return Catch::TrackerContext::instance(); -} - -// ------------------- - -#include "catch.hpp" - -using namespace Catch; - -//inline void testCase( Catch::LocalContext const& C_A_T_C_H_Context ) { -// -// REQUIRE( C_A_T_C_H_Context().i() == 42 ); -//} - -TEST_CASE( "Tracker", "" ) { - - TrackerContext ctx; - ctx.startRun(); - ctx.startCycle(); - - ITracker& testCase = SectionTracker::acquire( ctx, "Testcase" ); - REQUIRE( testCase.isOpen() ); - - ITracker& s1 = SectionTracker::acquire( ctx, "S1" ); - REQUIRE( s1.isOpen() ); - - SECTION( "successfully close one section", "" ) { - s1.close(); - REQUIRE( s1.isSuccessfullyCompleted() ); - REQUIRE( testCase.isComplete() == false ); - - testCase.close(); - REQUIRE( ctx.completedCycle() ); - REQUIRE( testCase.isSuccessfullyCompleted() ); - } - - SECTION( "fail one section", "" ) { - s1.fail(); - REQUIRE( s1.isComplete() ); - REQUIRE( s1.isSuccessfullyCompleted() == false ); - REQUIRE( testCase.isComplete() == false ); - - testCase.close(); - REQUIRE( ctx.completedCycle() ); - REQUIRE( testCase.isSuccessfullyCompleted() == false ); - - SECTION( "re-enter after failed section", "" ) { - ctx.startCycle(); - ITracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" ); - REQUIRE( testCase2.isOpen() ); - - ITracker& s1b = SectionTracker::acquire( ctx, "S1" ); - REQUIRE( s1b.isOpen() == false ); - - testCase2.close(); - REQUIRE( ctx.completedCycle() ); - REQUIRE( testCase.isComplete() ); - REQUIRE( testCase.isSuccessfullyCompleted() ); - } - SECTION( "re-enter after failed section and find next section", "" ) { - ctx.startCycle(); - ITracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" ); - REQUIRE( testCase2.isOpen() ); - - ITracker& s1b = SectionTracker::acquire( ctx, "S1" ); - REQUIRE( s1b.isOpen() == false ); - - ITracker& s2 = SectionTracker::acquire( ctx, "S2" ); - REQUIRE( s2.isOpen() ); - - s2.close(); - REQUIRE( ctx.completedCycle() ); - - testCase2.close(); - REQUIRE( testCase.isComplete() ); - REQUIRE( testCase.isSuccessfullyCompleted() ); - } - } - - SECTION( "successfully close one section, then find another", "" ) { - s1.close(); - - ITracker& s2 = SectionTracker::acquire( ctx, "S2" ); - REQUIRE( s2.isOpen() == false ); - - testCase.close(); - REQUIRE( testCase.isComplete() == false ); - - SECTION( "Re-enter - skips S1 and enters S2", "" ) { - ctx.startCycle(); - ITracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" ); - REQUIRE( testCase2.isOpen() ); - - ITracker& s1b = SectionTracker::acquire( ctx, "S1" ); - REQUIRE( s1b.isOpen() == false ); - - ITracker& s2b = SectionTracker::acquire( ctx, "S2" ); - REQUIRE( s2b.isOpen() ); - - REQUIRE( ctx.completedCycle() == false ); - - SECTION ("Successfully close S2") { - s2b.close(); - REQUIRE( ctx.completedCycle() ); - - REQUIRE( s2b.isSuccessfullyCompleted() ); - REQUIRE( testCase2.isComplete() == false ); - - testCase2.close(); - REQUIRE( testCase2.isSuccessfullyCompleted() ); - } - SECTION ("fail S2") { - s2b.fail(); - REQUIRE( ctx.completedCycle() ); - - REQUIRE( s2b.isComplete() ); - REQUIRE( s2b.isSuccessfullyCompleted() == false ); - - testCase2.close(); - REQUIRE( testCase2.isSuccessfullyCompleted() == false ); - - // Need a final cycle - ctx.startCycle(); - ITracker& testCase3 = SectionTracker::acquire( ctx, "Testcase" ); - REQUIRE( testCase3.isOpen() ); - - ITracker& s1c = SectionTracker::acquire( ctx, "S1" ); - REQUIRE( s1c.isOpen() == false ); - - ITracker& s2c = SectionTracker::acquire( ctx, "S2" ); - REQUIRE( s2c.isOpen() == false ); - - testCase3.close(); - REQUIRE( testCase3.isSuccessfullyCompleted() ); - } - } - } - - SECTION( "open a nested section", "" ) { - ITracker& s2 = SectionTracker::acquire( ctx, "S2" ); - REQUIRE( s2.isOpen() ); - - s2.close(); - REQUIRE( s2.isComplete() ); - REQUIRE( s1.isComplete() == false ); - - s1.close(); - REQUIRE( s1.isComplete() ); - REQUIRE( testCase.isComplete() == false ); - - testCase.close(); - REQUIRE( testCase.isComplete() ); - } - - SECTION( "start a generator", "" ) { - IndexTracker& g1 = IndexTracker::acquire( ctx, "G1", 2 ); - REQUIRE( g1.isOpen() ); - REQUIRE( g1.index() == 0 ); - - REQUIRE( g1.isComplete() == false ); - REQUIRE( s1.isComplete() == false ); - - SECTION( "close outer section" ) - { - s1.close(); - REQUIRE( s1.isComplete() == false ); - testCase.close(); - REQUIRE( testCase.isSuccessfullyCompleted() == false ); - - SECTION( "Re-enter for second generation", "" ) { - ctx.startCycle(); - ITracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" ); - REQUIRE( testCase2.isOpen() ); - - ITracker& s1b = SectionTracker::acquire( ctx, "S1" ); - REQUIRE( s1b.isOpen() ); - - - IndexTracker& g1b = IndexTracker::acquire( ctx, "G1", 2 ); - REQUIRE( g1b.isOpen() ); - REQUIRE( g1b.index() == 1 ); - - REQUIRE( s1.isComplete() == false ); - - s1b.close(); - REQUIRE( s1b.isComplete() ); - REQUIRE( g1b.isComplete() ); - testCase2.close(); - REQUIRE( testCase2.isComplete() ); - } - } - SECTION( "Start a new inner section", "" ) { - ITracker& s2 = SectionTracker::acquire( ctx, "S2" ); - REQUIRE( s2.isOpen() ); - - s2.close(); - REQUIRE( s2.isComplete() ); - - s1.close(); - REQUIRE( s1.isComplete() == false ); - - testCase.close(); - REQUIRE( testCase.isComplete() == false ); - - SECTION( "Re-enter for second generation", "" ) { - ctx.startCycle(); - ITracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" ); - REQUIRE( testCase2.isOpen() ); - - ITracker& s1b = SectionTracker::acquire( ctx, "S1" ); - REQUIRE( s1b.isOpen() ); - - // generator - next value - IndexTracker& g1b = IndexTracker::acquire( ctx, "G1", 2 ); - REQUIRE( g1b.isOpen() ); - REQUIRE( g1b.index() == 1 ); - - // inner section again - ITracker& s2b = SectionTracker::acquire( ctx, "S2" ); - REQUIRE( s2b.isOpen() ); - - s2b.close(); - REQUIRE( s2b.isComplete() ); - - s1b.close(); - REQUIRE( g1b.isComplete() ); - REQUIRE( s1b.isComplete() ); - - testCase2.close(); - REQUIRE( testCase2.isComplete() ); - } - } - - SECTION( "Fail an inner section", "" ) { - ITracker& s2 = SectionTracker::acquire( ctx, "S2" ); - REQUIRE( s2.isOpen() ); - - s2.fail(); - REQUIRE( s2.isComplete() ); - REQUIRE( s2.isSuccessfullyCompleted() == false ); - - s1.close(); - REQUIRE( s1.isComplete() == false ); - - testCase.close(); - REQUIRE( testCase.isComplete() == false ); - - SECTION( "Re-enter for second generation", "" ) { - ctx.startCycle(); - ITracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" ); - REQUIRE( testCase2.isOpen() ); - - ITracker& s1b = SectionTracker::acquire( ctx, "S1" ); - REQUIRE( s1b.isOpen() ); - - // generator - still same value - IndexTracker& g1b = IndexTracker::acquire( ctx, "G1", 2 ); - REQUIRE( g1b.isOpen() ); - REQUIRE( g1b.index() == 0 ); - - // inner section again - this time won't open - ITracker& s2b = SectionTracker::acquire( ctx, "S2" ); - REQUIRE( s2b.isOpen() == false ); - - s1b.close(); - REQUIRE( g1b.isComplete() == false ); - REQUIRE( s1b.isComplete() == false ); - - testCase2.close(); - REQUIRE( testCase2.isComplete() == false ); - - // Another cycle - now should complete - ctx.startCycle(); - ITracker& testCase3 = SectionTracker::acquire( ctx, "Testcase" ); - REQUIRE( testCase3.isOpen() ); - - ITracker& s1c = SectionTracker::acquire( ctx, "S1" ); - REQUIRE( s1c.isOpen() ); - - // generator - now next value - IndexTracker& g1c = IndexTracker::acquire( ctx, "G1", 2 ); - REQUIRE( g1c.isOpen() ); - REQUIRE( g1c.index() == 1 ); - - // inner section - now should open again - ITracker& s2c = SectionTracker::acquire( ctx, "S2" ); - REQUIRE( s2c.isOpen() ); - - s2c.close(); - REQUIRE( s2c.isComplete() ); - - s1c.close(); - REQUIRE( g1c.isComplete() ); - REQUIRE( s1c.isComplete() ); - - testCase3.close(); - REQUIRE( testCase3.isComplete() ); - } - } - // !TBD" - // nested generator - // two sections within a generator - } -} |