Removed the "part" component of the tracker names
diff --git a/projects/SelfTest/PartTrackerTests.cpp b/projects/SelfTest/PartTrackerTests.cpp
index 88a8cb7..13dfe5e 100644
--- a/projects/SelfTest/PartTrackerTests.cpp
+++ b/projects/SelfTest/PartTrackerTests.cpp
@@ -20,8 +20,8 @@
namespace Catch
{
- struct IPartTracker : SharedImpl<> {
- virtual ~IPartTracker() {}
+ struct ITracker : SharedImpl<> {
+ virtual ~ITracker() {}
// static queries
virtual std::string name() const = 0;
@@ -31,15 +31,15 @@
virtual bool isSuccessfullyCompleted() const = 0;
virtual bool isOpen() const = 0; // Started but not complete
- virtual IPartTracker& parent() = 0;
+ virtual ITracker& parent() = 0;
// actions
virtual void close() = 0; // Successfully complete
virtual void fail() = 0;
virtual void markAsNeedingAnotherRun() = 0;
- virtual void addChild( Ptr<IPartTracker> const& child ) = 0;
- virtual IPartTracker* findChild( std::string const& name ) = 0;
+ virtual void addChild( Ptr<ITracker> const& child ) = 0;
+ virtual ITracker* findChild( std::string const& name ) = 0;
virtual void openChild() = 0;
};
@@ -52,8 +52,8 @@
CompletedCycle
};
- Ptr<IPartTracker> m_rootPart;
- IPartTracker* m_currentPart;
+ Ptr<ITracker> m_rootTracker;
+ ITracker* m_currentTracker;
RunState m_runState;
public:
@@ -64,21 +64,21 @@
}
TrackerContext()
- : m_currentPart( CATCH_NULL ),
+ : m_currentTracker( CATCH_NULL ),
m_runState( NotStarted )
{}
- IPartTracker& startRun();
+ ITracker& startRun();
void endRun() {
- m_rootPart.reset();
- m_currentPart = CATCH_NULL;
+ m_rootTracker.reset();
+ m_currentTracker = CATCH_NULL;
m_runState = NotStarted;
}
void startCycle() {
- m_currentPart = m_rootPart.get();
+ m_currentTracker = m_rootTracker.get();
m_runState = Executing;
}
void completeCycle() {
@@ -89,20 +89,15 @@
return m_runState == CompletedCycle;
}
- IPartTracker& currentPart() {
- return *m_currentPart;
+ ITracker& currentTracker() {
+ return *m_currentTracker;
}
- void setCurrentPart( IPartTracker* part ) {
- m_currentPart = part;
+ void setCurrentTracker( ITracker* tracker ) {
+ m_currentTracker = tracker;
}
-
- IPartTracker* findPart( std::string const& name ) {
- return m_currentPart->findChild( name );
- }
-
};
- class PartTrackerBase : public IPartTracker {
+ class TrackerBase : public ITracker {
protected:
enum CycleState {
NotStarted,
@@ -116,18 +111,18 @@
std::string m_name;
public:
TrackerHasName( std::string const& name ) : m_name( name ) {}
- bool operator ()( Ptr<IPartTracker> const& tracker ) {
+ bool operator ()( Ptr<ITracker> const& tracker ) {
return tracker->name() == m_name;
}
};
- typedef std::vector<Ptr<IPartTracker> > Children;
+ typedef std::vector<Ptr<ITracker> > Children;
std::string m_name;
TrackerContext& m_ctx;
- IPartTracker* m_parent;
+ ITracker* m_parent;
Children m_children;
CycleState m_runState;
public:
- PartTrackerBase( std::string const& name, TrackerContext& ctx, IPartTracker* parent )
+ TrackerBase( std::string const& name, TrackerContext& ctx, ITracker* parent )
: m_name( name ),
m_ctx( ctx ),
m_parent( parent ),
@@ -148,18 +143,18 @@
}
- virtual void addChild( Ptr<IPartTracker> const& child ) CATCH_OVERRIDE {
+ virtual void addChild( Ptr<ITracker> const& child ) CATCH_OVERRIDE {
m_children.push_back( child );
size_t childCount = m_children.size();
}
- virtual IPartTracker* findChild( std::string const& name ) CATCH_OVERRIDE {
+ virtual ITracker* findChild( std::string const& name ) CATCH_OVERRIDE {
Children::const_iterator it = std::find_if( m_children.begin(), m_children.end(), TrackerHasName( name ) );
return( it != m_children.end() )
? it->get()
: CATCH_NULL;
}
- virtual IPartTracker& parent() CATCH_OVERRIDE {
+ virtual ITracker& parent() CATCH_OVERRIDE {
assert( m_parent ); // Should always be non-null except for root
return *m_parent;
}
@@ -181,8 +176,8 @@
virtual void close() CATCH_OVERRIDE {
// Close any still open children (e.g. generators)
- while( &m_ctx.currentPart() != this )
- m_ctx.currentPart().close();
+ while( &m_ctx.currentTracker() != this )
+ m_ctx.currentTracker().close();
switch( m_runState ) {
case CompletedSuccessfully:
@@ -219,31 +214,31 @@
private:
void moveToParent() {
assert( m_parent );
- m_ctx.setCurrentPart( m_parent );
+ m_ctx.setCurrentTracker( m_parent );
}
void moveToThis() {
- m_ctx.setCurrentPart( this );
+ m_ctx.setCurrentTracker( this );
}
};
- class SectionTracker : public PartTrackerBase {
+ class SectionTracker : public TrackerBase {
public:
- SectionTracker( std::string const& name, TrackerContext& ctx, IPartTracker* parent )
- : PartTrackerBase( name, ctx, parent )
+ SectionTracker( std::string const& name, TrackerContext& ctx, ITracker* parent )
+ : TrackerBase( name, ctx, parent )
{}
static SectionTracker& acquire( TrackerContext& ctx, std::string const& name ) {
SectionTracker* section = CATCH_NULL;
- IPartTracker& currentPart = ctx.currentPart();
- if( IPartTracker* part = currentPart.findChild( name ) ) {
- section = dynamic_cast<SectionTracker*>( part );
+ ITracker& currentTracker = ctx.currentTracker();
+ if( ITracker* childTracker = currentTracker.findChild( name ) ) {
+ section = dynamic_cast<SectionTracker*>( childTracker );
assert( section );
}
else {
- section = new SectionTracker( name, ctx, ¤tPart );
- currentPart.addChild( section );
+ section = new SectionTracker( name, ctx, ¤tTracker );
+ currentTracker.addChild( section );
}
if( !ctx.completedCycle() && !section->isComplete() ) {
@@ -253,12 +248,12 @@
}
};
- class IndexTracker : public PartTrackerBase {
+ class IndexTracker : public TrackerBase {
int m_size;
int m_index;
public:
- IndexTracker( std::string const& name, TrackerContext& ctx, IPartTracker* parent, int size )
- : PartTrackerBase( name, ctx, parent ),
+ IndexTracker( std::string const& name, TrackerContext& ctx, ITracker* parent, int size )
+ : TrackerBase( name, ctx, parent ),
m_size( size ),
m_index( -1 )
{}
@@ -266,14 +261,14 @@
static IndexTracker& acquire( TrackerContext& ctx, std::string const& name, int size ) {
IndexTracker* tracker = CATCH_NULL;
- IPartTracker& currentPart = ctx.currentPart();
- if( IPartTracker* part = currentPart.findChild( name ) ) {
- tracker = dynamic_cast<IndexTracker*>( part );
+ ITracker& currentTracker = ctx.currentTracker();
+ if( ITracker* childTracker = currentTracker.findChild( name ) ) {
+ tracker = dynamic_cast<IndexTracker*>( childTracker );
assert( tracker );
}
else {
- tracker = new IndexTracker( name, ctx, ¤tPart, size );
- currentPart.addChild( tracker );
+ tracker = new IndexTracker( name, ctx, ¤tTracker, size );
+ currentTracker.addChild( tracker );
}
if( !ctx.completedCycle() && !tracker->isComplete() ) {
@@ -293,18 +288,18 @@
}
virtual void close() CATCH_OVERRIDE {
- PartTrackerBase::close();
+ TrackerBase::close();
if( m_runState == CompletedSuccessfully )
if( m_index < m_size-1 )
m_runState = Executing;
}
};
- IPartTracker& TrackerContext::startRun() {
- m_rootPart = new SectionTracker( "{root}", *this, CATCH_NULL );
- m_currentPart = CATCH_NULL;
+ ITracker& TrackerContext::startRun() {
+ m_rootTracker = new SectionTracker( "{root}", *this, CATCH_NULL );
+ m_currentTracker = CATCH_NULL;
m_runState = Executing;
- return *m_rootPart;
+ return *m_rootTracker;
}
class LocalContext {
@@ -332,16 +327,16 @@
// REQUIRE( C_A_T_C_H_Context().i() == 42 );
}
-TEST_CASE( "PartTracker" ) {
+TEST_CASE( "Tracker" ) {
TrackerContext ctx;
ctx.startRun();
ctx.startCycle();
- IPartTracker& testCase = SectionTracker::acquire( ctx, "Testcase" );
+ ITracker& testCase = SectionTracker::acquire( ctx, "Testcase" );
REQUIRE( testCase.isOpen() );
- IPartTracker& s1 = SectionTracker::acquire( ctx, "S1" );
+ ITracker& s1 = SectionTracker::acquire( ctx, "S1" );
REQUIRE( s1.isOpen() );
SECTION( "successfully close one section" ) {
@@ -366,10 +361,10 @@
SECTION( "re-enter after failed section" ) {
ctx.startCycle();
- IPartTracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" );
+ ITracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" );
REQUIRE( testCase2.isOpen() );
- IPartTracker& s1b = SectionTracker::acquire( ctx, "S1" );
+ ITracker& s1b = SectionTracker::acquire( ctx, "S1" );
REQUIRE( s1b.isOpen() == false );
testCase2.close();
@@ -379,13 +374,13 @@
}
SECTION( "re-enter after failed section and find next section" ) {
ctx.startCycle();
- IPartTracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" );
+ ITracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" );
REQUIRE( testCase2.isOpen() );
- IPartTracker& s1b = SectionTracker::acquire( ctx, "S1" );
+ ITracker& s1b = SectionTracker::acquire( ctx, "S1" );
REQUIRE( s1b.isOpen() == false );
- IPartTracker& s2 = SectionTracker::acquire( ctx, "S2" );
+ ITracker& s2 = SectionTracker::acquire( ctx, "S2" );
REQUIRE( s2.isOpen() );
s2.close();
@@ -400,7 +395,7 @@
SECTION( "successfully close one section, then find another" ) {
s1.close();
- IPartTracker& s2 = SectionTracker::acquire( ctx, "S2" );
+ ITracker& s2 = SectionTracker::acquire( ctx, "S2" );
REQUIRE( s2.isOpen() == false );
testCase.close();
@@ -408,13 +403,13 @@
SECTION( "Re-enter - skips S1 and enters S2" ) {
ctx.startCycle();
- IPartTracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" );
+ ITracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" );
REQUIRE( testCase2.isOpen() );
- IPartTracker& s1b = SectionTracker::acquire( ctx, "S1" );
+ ITracker& s1b = SectionTracker::acquire( ctx, "S1" );
REQUIRE( s1b.isOpen() == false );
- IPartTracker& s2b = SectionTracker::acquire( ctx, "S2" );
+ ITracker& s2b = SectionTracker::acquire( ctx, "S2" );
REQUIRE( s2b.isOpen() );
REQUIRE( ctx.completedCycle() == false );
@@ -441,13 +436,13 @@
// Need a final cycle
ctx.startCycle();
- IPartTracker& testCase3 = SectionTracker::acquire( ctx, "Testcase" );
+ ITracker& testCase3 = SectionTracker::acquire( ctx, "Testcase" );
REQUIRE( testCase3.isOpen() );
- IPartTracker& s1c = SectionTracker::acquire( ctx, "S1" );
+ ITracker& s1c = SectionTracker::acquire( ctx, "S1" );
REQUIRE( s1c.isOpen() == false );
- IPartTracker& s2c = SectionTracker::acquire( ctx, "S2" );
+ ITracker& s2c = SectionTracker::acquire( ctx, "S2" );
REQUIRE( s2c.isOpen() == false );
testCase3.close();
@@ -457,7 +452,7 @@
}
SECTION( "open a nested section" ) {
- IPartTracker& s2 = SectionTracker::acquire( ctx, "S2" );
+ ITracker& s2 = SectionTracker::acquire( ctx, "S2" );
REQUIRE( s2.isOpen() );
s2.close();
@@ -489,10 +484,10 @@
SECTION( "Re-enter for second generation" ) {
ctx.startCycle();
- IPartTracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" );
+ ITracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" );
REQUIRE( testCase2.isOpen() );
- IPartTracker& s1b = SectionTracker::acquire( ctx, "S1" );
+ ITracker& s1b = SectionTracker::acquire( ctx, "S1" );
REQUIRE( s1b.isOpen() );
@@ -510,7 +505,7 @@
}
}
SECTION( "Start a new inner section" ) {
- IPartTracker& s2 = SectionTracker::acquire( ctx, "S2" );
+ ITracker& s2 = SectionTracker::acquire( ctx, "S2" );
REQUIRE( s2.isOpen() );
s2.close();
@@ -524,10 +519,10 @@
SECTION( "Re-enter for second generation" ) {
ctx.startCycle();
- IPartTracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" );
+ ITracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" );
REQUIRE( testCase2.isOpen() );
- IPartTracker& s1b = SectionTracker::acquire( ctx, "S1" );
+ ITracker& s1b = SectionTracker::acquire( ctx, "S1" );
REQUIRE( s1b.isOpen() );
// generator - next value
@@ -536,7 +531,7 @@
REQUIRE( g1b.index() == 1 );
// inner section again
- IPartTracker& s2b = SectionTracker::acquire( ctx, "S2" );
+ ITracker& s2b = SectionTracker::acquire( ctx, "S2" );
REQUIRE( s2b.isOpen() );
s2b.close();
@@ -552,7 +547,7 @@
}
SECTION( "Fail an inner section" ) {
- IPartTracker& s2 = SectionTracker::acquire( ctx, "S2" );
+ ITracker& s2 = SectionTracker::acquire( ctx, "S2" );
REQUIRE( s2.isOpen() );
s2.fail();
@@ -567,10 +562,10 @@
SECTION( "Re-enter for second generation" ) {
ctx.startCycle();
- IPartTracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" );
+ ITracker& testCase2 = SectionTracker::acquire( ctx, "Testcase" );
REQUIRE( testCase2.isOpen() );
- IPartTracker& s1b = SectionTracker::acquire( ctx, "S1" );
+ ITracker& s1b = SectionTracker::acquire( ctx, "S1" );
REQUIRE( s1b.isOpen() );
// generator - still same value
@@ -579,7 +574,7 @@
REQUIRE( g1b.index() == 0 );
// inner section again - this time won't open
- IPartTracker& s2b = SectionTracker::acquire( ctx, "S2" );
+ ITracker& s2b = SectionTracker::acquire( ctx, "S2" );
REQUIRE( s2b.isOpen() == false );
s1b.close();
@@ -591,10 +586,10 @@
// Another cycle - now should complete
ctx.startCycle();
- IPartTracker& testCase3 = SectionTracker::acquire( ctx, "Testcase" );
+ ITracker& testCase3 = SectionTracker::acquire( ctx, "Testcase" );
REQUIRE( testCase3.isOpen() );
- IPartTracker& s1c = SectionTracker::acquire( ctx, "S1" );
+ ITracker& s1c = SectionTracker::acquire( ctx, "S1" );
REQUIRE( s1c.isOpen() );
// generator - now next value
@@ -603,7 +598,7 @@
REQUIRE( g1c.index() == 1 );
// inner section - now should open again
- IPartTracker& s2c = SectionTracker::acquire( ctx, "S2" );
+ ITracker& s2c = SectionTracker::acquire( ctx, "S2" );
REQUIRE( s2c.isOpen() );
s2c.close();