Small logic tweaks

This commit is contained in:
Phil Nash 2012-11-29 20:11:46 +00:00
parent 6f2343bf64
commit 3d6be037e9
2 changed files with 10 additions and 15 deletions

View File

@ -55,18 +55,14 @@ namespace Catch {
} }
void ranToCompletion() { void ranToCompletion() {
if( m_runStatus == RanAtLeastOneSection || if( m_runStatus != RanAtLeastOneSection && m_runStatus != EncounteredASection )
m_runStatus == EncounteredASection ) { m_runStatus = RanToCompletionWithNoSections;
m_runStatus = RanToCompletionWithSections; m_runStatus = RanToCompletionWithSections;
if( m_lastSectionToRun ) { if( m_lastSectionToRun ) {
m_lastSectionToRun->ranToCompletion(); m_lastSectionToRun->ranToCompletion();
m_changed = true; m_changed = true;
} }
} }
else {
m_runStatus = RanToCompletionWithNoSections;
}
}
bool addSection( const std::string& name ) { bool addSection( const std::string& name ) {
if( m_runStatus == NothingRun ) if( m_runStatus == NothingRun )

View File

@ -22,7 +22,7 @@ namespace Catch {
virtual const ISectionInfo* getParent() const = 0; virtual const ISectionInfo* getParent() const = 0;
}; };
class SectionInfo : ISectionInfo { class SectionInfo : public ISectionInfo {
public: public:
typedef std::vector<SectionInfo*> SubSections; typedef std::vector<SectionInfo*> SubSections;
@ -98,12 +98,11 @@ namespace Catch {
} }
bool ran() { bool ran() {
if( m_state < Branch ) { if( m_state >= Branch )
return false;
m_state = TestedLeaf; m_state = TestedLeaf;
return true; return true;
} }
return false;
}
void ranToCompletion() { void ranToCompletion() {
if( m_state == Branch && !hasUntestedSections() ) if( m_state == Branch && !hasUntestedSections() )