Refactored to resetAssertionInfo()

This commit is contained in:
Phil Nash 2017-11-17 18:55:47 +00:00
parent 4353614df7
commit fcba30569c
2 changed files with 15 additions and 11 deletions

View File

@ -8,8 +8,6 @@
#include <algorithm>
#include <sstream>
static auto const& defaultExpression = "{Unknown expression after the reported line}";
namespace Catch {
StreamRedirect::StreamRedirect(std::ostream& stream, std::string& targetString)
@ -129,9 +127,13 @@ namespace Catch {
static_cast<void>(m_reporter->assertionEnded(AssertionStats(result, m_messages, m_totals)));
// Reset working state
m_lastAssertionInfo = { "", m_lastAssertionInfo.lineInfo, "{Unknown expression after the reported line}", m_lastAssertionInfo.resultDisposition };
resetAssertionInfo();
m_lastResult = result;
}
void RunContext::resetAssertionInfo() {
m_lastAssertionInfo.macroName = StringRef();
m_lastAssertionInfo.capturedExpression = "{Unknown expression after the reported line}";
}
bool RunContext::sectionStarted(SectionInfo const & sectionInfo, Counts & assertions) {
ITracker& sectionTracker = SectionTracker::acquire(m_trackerContext, TestCaseTracking::NameAndLocation(sectionInfo.name, sectionInfo.lineInfo));
@ -255,8 +257,7 @@ namespace Catch {
void RunContext::assertionPassed() {
++m_totals.assertions.passed;
m_lastAssertionInfo.capturedExpression = StringRef(defaultExpression, sizeof(defaultExpression) - 1);
m_lastAssertionInfo.macroName = StringRef("", 0);
resetAssertionInfo();
}
void RunContext::assertionRun() {
@ -274,18 +275,19 @@ namespace Catch {
Counts prevAssertions = m_totals.assertions;
double duration = 0;
m_shouldReportUnexpected = true;
try {
m_lastAssertionInfo = { "TEST_CASE", testCaseInfo.lineInfo, "", ResultDisposition::Normal };
seedRng(*m_config);
Timer timer;
timer.start();
try {
if (m_reporter->getPreferences().shouldRedirectStdOut) {
StreamRedirect coutRedir(cout(), redirectedCout);
StdErrRedirect errRedir(redirectedCerr);
timer.start();
invokeActiveTestCase();
} else {
timer.start();
invokeActiveTestCase();
}
duration = timer.getElapsedSeconds();

View File

@ -116,6 +116,8 @@ namespace Catch {
void runCurrentTest(std::string& redirectedCout, std::string& redirectedCerr);
void invokeActiveTestCase();
void resetAssertionInfo();
private:
void handleUnfinishedSections();