more minor clean-ups

This commit is contained in:
Phil Nash 2015-10-29 08:33:50 +00:00
parent 4b99be6a9a
commit f4389b4fdb

View File

@ -27,17 +27,16 @@ namespace Catch
virtual std::string name() const = 0; virtual std::string name() const = 0;
// dynamic queries // dynamic queries
virtual bool hasStarted() const = 0; // true even if ended virtual bool isComplete() const = 0; // Successfully completed or failed
virtual bool hasEnded() const = 0;
virtual bool isSuccessfullyCompleted() const = 0; virtual bool isSuccessfullyCompleted() const = 0;
virtual bool isOpen() const = 0; virtual bool isOpen() const = 0; // Started but not complete
virtual IPartTracker& parent() = 0; virtual IPartTracker& parent() = 0;
// actions // actions
virtual void close() = 0; virtual void close() = 0; // Successfully complete
virtual void fail() = 0; virtual void fail() = 0;
virtual void markAsNeedingAnotherRun() =0; virtual void markAsNeedingAnotherRun() = 0;
virtual void addChild( Ptr<IPartTracker> const& child ) = 0; virtual void addChild( Ptr<IPartTracker> const& child ) = 0;
virtual IPartTracker* findChild( std::string const& name ) = 0; virtual IPartTracker* findChild( std::string const& name ) = 0;
@ -138,17 +137,14 @@ namespace Catch
return m_name; return m_name;
} }
virtual bool hasEnded() const CATCH_OVERRIDE { virtual bool isComplete() const CATCH_OVERRIDE {
return m_runState == CompletedSuccessfully || m_runState == Failed; return m_runState == CompletedSuccessfully || m_runState == Failed;
} }
virtual bool isSuccessfullyCompleted() const CATCH_OVERRIDE { virtual bool isSuccessfullyCompleted() const CATCH_OVERRIDE {
return m_runState == CompletedSuccessfully; return m_runState == CompletedSuccessfully;
} }
virtual bool hasStarted() const CATCH_OVERRIDE {
return m_runState != NotStarted;
}
virtual bool isOpen() const CATCH_OVERRIDE { virtual bool isOpen() const CATCH_OVERRIDE {
return hasStarted() && !hasEnded(); return m_runState != NotStarted && !isComplete();
} }
@ -191,18 +187,18 @@ namespace Catch
switch( m_runState ) { switch( m_runState ) {
case CompletedSuccessfully: case CompletedSuccessfully:
case Failed: case Failed:
assert(false); // Shouldn't really get here
case NeedsAnotherRun:
return; return;
case Executing: case Executing:
m_runState = CompletedSuccessfully; m_runState = CompletedSuccessfully;
break; break;
case ExecutingChildren: case ExecutingChildren:
if( m_children.empty() || m_children.back()->hasEnded() ) if( m_children.empty() || m_children.back()->isComplete() )
m_runState = CompletedSuccessfully; m_runState = CompletedSuccessfully;
break; break;
case NeedsAnotherRun:
m_runState = Executing;
break;
default: default:
throw std::logic_error( "Unexpected state" ); throw std::logic_error( "Unexpected state" );
} }
@ -249,7 +245,7 @@ namespace Catch
section = new SectionTracker( name, ctx, &currentPart ); section = new SectionTracker( name, ctx, &currentPart );
currentPart.addChild( section ); currentPart.addChild( section );
} }
if( !ctx.completedCycle() && !section->hasEnded() ) { if( !ctx.completedCycle() && !section->isComplete() ) {
section->open(); section->open();
} }
@ -280,7 +276,7 @@ namespace Catch
currentPart.addChild( tracker ); currentPart.addChild( tracker );
} }
if( !ctx.completedCycle() && !tracker->hasEnded() ) { if( !ctx.completedCycle() && !tracker->isComplete() ) {
if( tracker->m_runState != ExecutingChildren ) if( tracker->m_runState != ExecutingChildren )
tracker->moveNext(); tracker->moveNext();
tracker->open(); tracker->open();
@ -351,7 +347,7 @@ TEST_CASE( "PartTracker" ) {
SECTION( "successfully close one section" ) { SECTION( "successfully close one section" ) {
s1.close(); s1.close();
REQUIRE( s1.isSuccessfullyCompleted() ); REQUIRE( s1.isSuccessfullyCompleted() );
REQUIRE( testCase.hasEnded() == false ); REQUIRE( testCase.isComplete() == false );
testCase.close(); testCase.close();
REQUIRE( ctx.completedCycle() ); REQUIRE( ctx.completedCycle() );
@ -360,9 +356,9 @@ TEST_CASE( "PartTracker" ) {
SECTION( "fail one section" ) { SECTION( "fail one section" ) {
s1.fail(); s1.fail();
REQUIRE( s1.hasEnded() ); REQUIRE( s1.isComplete() );
REQUIRE( s1.isSuccessfullyCompleted() == false ); REQUIRE( s1.isSuccessfullyCompleted() == false );
REQUIRE( testCase.hasEnded() == false ); REQUIRE( testCase.isComplete() == false );
testCase.close(); testCase.close();
REQUIRE( ctx.completedCycle() ); REQUIRE( ctx.completedCycle() );
@ -378,7 +374,7 @@ TEST_CASE( "PartTracker" ) {
testCase2.close(); testCase2.close();
REQUIRE( ctx.completedCycle() ); REQUIRE( ctx.completedCycle() );
REQUIRE( testCase.hasEnded() ); REQUIRE( testCase.isComplete() );
REQUIRE( testCase.isSuccessfullyCompleted() ); REQUIRE( testCase.isSuccessfullyCompleted() );
} }
SECTION( "re-enter after failed section and find next section" ) { SECTION( "re-enter after failed section and find next section" ) {
@ -396,7 +392,7 @@ TEST_CASE( "PartTracker" ) {
REQUIRE( ctx.completedCycle() ); REQUIRE( ctx.completedCycle() );
testCase2.close(); testCase2.close();
REQUIRE( testCase.hasEnded() ); REQUIRE( testCase.isComplete() );
REQUIRE( testCase.isSuccessfullyCompleted() ); REQUIRE( testCase.isSuccessfullyCompleted() );
} }
} }
@ -408,7 +404,7 @@ TEST_CASE( "PartTracker" ) {
REQUIRE( s2.isOpen() == false ); REQUIRE( s2.isOpen() == false );
testCase.close(); testCase.close();
REQUIRE( testCase.hasEnded() == false ); REQUIRE( testCase.isComplete() == false );
SECTION( "Re-enter - skips S1 and enters S2" ) { SECTION( "Re-enter - skips S1 and enters S2" ) {
ctx.startCycle(); ctx.startCycle();
@ -428,7 +424,7 @@ TEST_CASE( "PartTracker" ) {
REQUIRE( ctx.completedCycle() ); REQUIRE( ctx.completedCycle() );
REQUIRE( s2b.isSuccessfullyCompleted() ); REQUIRE( s2b.isSuccessfullyCompleted() );
REQUIRE( testCase2.hasEnded() == false ); REQUIRE( testCase2.isComplete() == false );
testCase2.close(); testCase2.close();
REQUIRE( testCase2.isSuccessfullyCompleted() ); REQUIRE( testCase2.isSuccessfullyCompleted() );
@ -437,10 +433,11 @@ TEST_CASE( "PartTracker" ) {
s2b.fail(); s2b.fail();
REQUIRE( ctx.completedCycle() ); REQUIRE( ctx.completedCycle() );
REQUIRE( s2b.hasEnded() ); REQUIRE( s2b.isComplete() );
REQUIRE( s2b.isSuccessfullyCompleted() == false ); REQUIRE( s2b.isSuccessfullyCompleted() == false );
testCase2.close(); testCase2.close();
// REQUIRE( testCase2.isComplete() );
REQUIRE( testCase2.isSuccessfullyCompleted() == false ); REQUIRE( testCase2.isSuccessfullyCompleted() == false );
// Need a final cycle // Need a final cycle