| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #include "catch_assertionresult.h" |
| |
|
| | namespace Catch { |
| | AssertionResultData::AssertionResultData(ResultWas::OfType _resultType, LazyExpression const & _lazyExpression): |
| | lazyExpression(_lazyExpression), |
| | resultType(_resultType) {} |
| |
|
| | std::string AssertionResultData::reconstructExpression() const { |
| |
|
| | if( reconstructedExpression.empty() ) { |
| | if( lazyExpression ) { |
| | ReusableStringStream rss; |
| | rss << lazyExpression; |
| | reconstructedExpression = rss.str(); |
| | } |
| | } |
| | return reconstructedExpression; |
| | } |
| |
|
| | AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData const& data ) |
| | : m_info( info ), |
| | m_resultData( data ) |
| | {} |
| |
|
| | |
| | bool AssertionResult::succeeded() const { |
| | return Catch::isOk( m_resultData.resultType ); |
| | } |
| |
|
| | |
| | bool AssertionResult::isOk() const { |
| | return Catch::isOk( m_resultData.resultType ) || shouldSuppressFailure( m_info.resultDisposition ); |
| | } |
| |
|
| | ResultWas::OfType AssertionResult::getResultType() const { |
| | return m_resultData.resultType; |
| | } |
| |
|
| | bool AssertionResult::hasExpression() const { |
| | return !m_info.capturedExpression.empty(); |
| | } |
| |
|
| | bool AssertionResult::hasMessage() const { |
| | return !m_resultData.message.empty(); |
| | } |
| |
|
| | std::string AssertionResult::getExpression() const { |
| | |
| | std::string expr; expr.reserve(m_info.capturedExpression.size() + 3); |
| | if (isFalseTest(m_info.resultDisposition)) { |
| | expr += "!("; |
| | } |
| | expr += m_info.capturedExpression; |
| | if (isFalseTest(m_info.resultDisposition)) { |
| | expr += ')'; |
| | } |
| | return expr; |
| | } |
| |
|
| | std::string AssertionResult::getExpressionInMacro() const { |
| | std::string expr; |
| | if( m_info.macroName.empty() ) |
| | expr = static_cast<std::string>(m_info.capturedExpression); |
| | else { |
| | expr.reserve( m_info.macroName.size() + m_info.capturedExpression.size() + 4 ); |
| | expr += m_info.macroName; |
| | expr += "( "; |
| | expr += m_info.capturedExpression; |
| | expr += " )"; |
| | } |
| | return expr; |
| | } |
| |
|
| | bool AssertionResult::hasExpandedExpression() const { |
| | return hasExpression() && getExpandedExpression() != getExpression(); |
| | } |
| |
|
| | std::string AssertionResult::getExpandedExpression() const { |
| | std::string expr = m_resultData.reconstructExpression(); |
| | return expr.empty() |
| | ? getExpression() |
| | : expr; |
| | } |
| |
|
| | std::string AssertionResult::getMessage() const { |
| | return m_resultData.message; |
| | } |
| | SourceLineInfo AssertionResult::getSourceInfo() const { |
| | return m_info.lineInfo; |
| | } |
| |
|
| | StringRef AssertionResult::getTestMacroName() const { |
| | return m_info.macroName; |
| | } |
| |
|
| | } |
| |
|