mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-04 14:09:33 +01:00 
			
		
		
		
	Ignore leading/trailing whitespace in test/section specs
The leading/trailing whitespace is problematic because of e.g. `WHEN` macro having preceeding whitespace for alignment, and it is generally messy. Credits to Phil who did lot of the original work. Closes #1708
This commit is contained in:
		@@ -15,12 +15,24 @@ namespace Catch {
 | 
			
		||||
    :   m_data( data ),
 | 
			
		||||
        m_stream( openStream() )
 | 
			
		||||
    {
 | 
			
		||||
        // We need to trim filter specs to avoid trouble with superfluous
 | 
			
		||||
        // whitespace (esp. important for bdd macros, as those are manually
 | 
			
		||||
        // aligned with whitespace).
 | 
			
		||||
 | 
			
		||||
        for (auto& elem : m_data.testsOrTags) {
 | 
			
		||||
            elem = trim(elem);
 | 
			
		||||
        }
 | 
			
		||||
        for (auto& elem : m_data.sectionsToRun) {
 | 
			
		||||
            elem = trim(elem);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        TestSpecParser parser(ITagAliasRegistry::get());
 | 
			
		||||
        if (!data.testsOrTags.empty()) {
 | 
			
		||||
        if (!m_data.testsOrTags.empty()) {
 | 
			
		||||
            m_hasTestFilters = true;
 | 
			
		||||
            for( auto const& testOrTags : data.testsOrTags )
 | 
			
		||||
            for (auto const& testOrTags : m_data.testsOrTags) {
 | 
			
		||||
                parser.parse(testOrTags);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        m_testSpec = parser.testSpec();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@
 | 
			
		||||
#include "catch_test_case_tracker.h"
 | 
			
		||||
 | 
			
		||||
#include "catch_enforce.h"
 | 
			
		||||
#include "catch_string_manip.h"
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <cassert>
 | 
			
		||||
@@ -174,7 +175,8 @@ namespace TestCaseTracking {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    SectionTracker::SectionTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent )
 | 
			
		||||
    :   TrackerBase( nameAndLocation, ctx, parent )
 | 
			
		||||
    :   TrackerBase( nameAndLocation, ctx, parent ),
 | 
			
		||||
        m_trimmed_name(trim(nameAndLocation.name))
 | 
			
		||||
    {
 | 
			
		||||
        if( parent ) {
 | 
			
		||||
            while( !parent->isSectionTracker() )
 | 
			
		||||
@@ -188,12 +190,11 @@ namespace TestCaseTracking {
 | 
			
		||||
    bool SectionTracker::isComplete() const {
 | 
			
		||||
        bool complete = true;
 | 
			
		||||
 | 
			
		||||
        if ((m_filters.empty() || m_filters[0] == "") ||
 | 
			
		||||
             std::find(m_filters.begin(), m_filters.end(),
 | 
			
		||||
                       m_nameAndLocation.name) != m_filters.end())
 | 
			
		||||
        if ((m_filters.empty() || m_filters[0] == "")
 | 
			
		||||
            || std::find(m_filters.begin(), m_filters.end(), m_trimmed_name) != m_filters.end()) {
 | 
			
		||||
            complete = TrackerBase::isComplete();
 | 
			
		||||
        }
 | 
			
		||||
        return complete;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    bool SectionTracker::isSectionTracker() const { return true; }
 | 
			
		||||
@@ -217,12 +218,13 @@ namespace TestCaseTracking {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void SectionTracker::tryOpen() {
 | 
			
		||||
        if( !isComplete() && (m_filters.empty() || m_filters[0].empty() ||  m_filters[0] == m_nameAndLocation.name ) )
 | 
			
		||||
        if( !isComplete() )
 | 
			
		||||
            open();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void SectionTracker::addInitialFilters( std::vector<std::string> const& filters ) {
 | 
			
		||||
        if( !filters.empty() ) {
 | 
			
		||||
            m_filters.reserve( m_filters.size() + filters.size() + 2 );
 | 
			
		||||
            m_filters.push_back(""); // Root - should never be consulted
 | 
			
		||||
            m_filters.push_back(""); // Test Case - not a section filter
 | 
			
		||||
            m_filters.insert( m_filters.end(), filters.begin(), filters.end() );
 | 
			
		||||
@@ -230,7 +232,7 @@ namespace TestCaseTracking {
 | 
			
		||||
    }
 | 
			
		||||
    void SectionTracker::addNextFilters( std::vector<std::string> const& filters ) {
 | 
			
		||||
        if( filters.size() > 1 )
 | 
			
		||||
            m_filters.insert( m_filters.end(), ++filters.begin(), filters.end() );
 | 
			
		||||
            m_filters.insert( m_filters.end(), filters.begin()+1, filters.end() );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
} // namespace TestCaseTracking
 | 
			
		||||
 
 | 
			
		||||
@@ -133,6 +133,7 @@ namespace TestCaseTracking {
 | 
			
		||||
 | 
			
		||||
    class SectionTracker : public TrackerBase {
 | 
			
		||||
        std::vector<std::string> m_filters;
 | 
			
		||||
        std::string m_trimmed_name;
 | 
			
		||||
    public:
 | 
			
		||||
        SectionTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@ namespace Catch {
 | 
			
		||||
    {}
 | 
			
		||||
 | 
			
		||||
    bool TestSpec::NamePattern::matches( TestCaseInfo const& testCase ) const {
 | 
			
		||||
        return m_wildcardPattern.matches( toLower( testCase.name ) );
 | 
			
		||||
        return m_wildcardPattern.matches( testCase.name );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,14 +9,12 @@
 | 
			
		||||
#include "catch_enforce.h"
 | 
			
		||||
#include "catch_string_manip.h"
 | 
			
		||||
 | 
			
		||||
#include <sstream>
 | 
			
		||||
 | 
			
		||||
namespace Catch {
 | 
			
		||||
 | 
			
		||||
    WildcardPattern::WildcardPattern( std::string const& pattern,
 | 
			
		||||
                                      CaseSensitive::Choice caseSensitivity )
 | 
			
		||||
    :   m_caseSensitivity( caseSensitivity ),
 | 
			
		||||
        m_pattern( adjustCase( pattern ) )
 | 
			
		||||
        m_pattern( normaliseString( pattern ) )
 | 
			
		||||
    {
 | 
			
		||||
        if( startsWith( m_pattern, '*' ) ) {
 | 
			
		||||
            m_pattern = m_pattern.substr( 1 );
 | 
			
		||||
@@ -31,19 +29,19 @@ namespace Catch {
 | 
			
		||||
    bool WildcardPattern::matches( std::string const& str ) const {
 | 
			
		||||
        switch( m_wildcard ) {
 | 
			
		||||
            case NoWildcard:
 | 
			
		||||
                return m_pattern == adjustCase( str );
 | 
			
		||||
                return m_pattern == normaliseString( str );
 | 
			
		||||
            case WildcardAtStart:
 | 
			
		||||
                return endsWith( adjustCase( str ), m_pattern );
 | 
			
		||||
                return endsWith( normaliseString( str ), m_pattern );
 | 
			
		||||
            case WildcardAtEnd:
 | 
			
		||||
                return startsWith( adjustCase( str ), m_pattern );
 | 
			
		||||
                return startsWith( normaliseString( str ), m_pattern );
 | 
			
		||||
            case WildcardAtBothEnds:
 | 
			
		||||
                return contains( adjustCase( str ), m_pattern );
 | 
			
		||||
                return contains( normaliseString( str ), m_pattern );
 | 
			
		||||
            default:
 | 
			
		||||
                CATCH_INTERNAL_ERROR( "Unknown enum" );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    std::string WildcardPattern::adjustCase( std::string const& str ) const {
 | 
			
		||||
        return m_caseSensitivity == CaseSensitive::No ? toLower( str ) : str;
 | 
			
		||||
    std::string WildcardPattern::normaliseString( std::string const& str ) const {
 | 
			
		||||
        return trim( m_caseSensitivity == CaseSensitive::No ? toLower( str ) : str );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,7 @@ namespace Catch
 | 
			
		||||
        virtual bool matches( std::string const& str ) const;
 | 
			
		||||
 | 
			
		||||
    private:
 | 
			
		||||
        std::string adjustCase( std::string const& str ) const;
 | 
			
		||||
        std::string normaliseString( std::string const& str ) const;
 | 
			
		||||
        CaseSensitive::Choice m_caseSensitivity;
 | 
			
		||||
        WildcardPosition m_wildcard = NoWildcard;
 | 
			
		||||
        std::string m_pattern;
 | 
			
		||||
 
 | 
			
		||||
@@ -866,6 +866,16 @@ CmdLine.tests.cpp:<line number>: passed: spec.matches( tcA ) == false for: false
 | 
			
		||||
CmdLine.tests.cpp:<line number>: passed: spec.matches( tcB ) == false for: false == false
 | 
			
		||||
CmdLine.tests.cpp:<line number>: passed: spec.matches( tcC ) == false for: false == false
 | 
			
		||||
CmdLine.tests.cpp:<line number>: passed: spec.matches( tcD ) == true for: true == true
 | 
			
		||||
CmdLine.tests.cpp:<line number>: passed: spec.matches( fakeTestCase( "  aardvark " ) ) for: true
 | 
			
		||||
CmdLine.tests.cpp:<line number>: passed: spec.matches( fakeTestCase( "  aardvark" ) ) for: true
 | 
			
		||||
CmdLine.tests.cpp:<line number>: passed: spec.matches( fakeTestCase( " aardvark " ) ) for: true
 | 
			
		||||
CmdLine.tests.cpp:<line number>: passed: spec.matches( fakeTestCase( "aardvark " ) ) for: true
 | 
			
		||||
CmdLine.tests.cpp:<line number>: passed: spec.matches( fakeTestCase( "aardvark" ) ) for: true
 | 
			
		||||
CmdLine.tests.cpp:<line number>: passed: spec.matches( fakeTestCase( "  aardvark " ) ) for: true
 | 
			
		||||
CmdLine.tests.cpp:<line number>: passed: spec.matches( fakeTestCase( "  aardvark" ) ) for: true
 | 
			
		||||
CmdLine.tests.cpp:<line number>: passed: spec.matches( fakeTestCase( " aardvark " ) ) for: true
 | 
			
		||||
CmdLine.tests.cpp:<line number>: passed: spec.matches( fakeTestCase( "aardvark " ) ) for: true
 | 
			
		||||
CmdLine.tests.cpp:<line number>: passed: spec.matches( fakeTestCase( "aardvark" ) ) for: true
 | 
			
		||||
Condition.tests.cpp:<line number>: passed: p == 0 for: 0 == 0
 | 
			
		||||
Condition.tests.cpp:<line number>: passed: p == pNULL for: 0 == 0
 | 
			
		||||
Condition.tests.cpp:<line number>: passed: p != 0 for: 0x<hex digits> != 0
 | 
			
		||||
 
 | 
			
		||||
@@ -1381,5 +1381,5 @@ due to unexpected exception with message:
 | 
			
		||||
 | 
			
		||||
===============================================================================
 | 
			
		||||
test cases:  300 |  226 passed |  70 failed |  4 failed as expected
 | 
			
		||||
assertions: 1558 | 1406 passed | 131 failed | 21 failed as expected
 | 
			
		||||
assertions: 1568 | 1416 passed | 131 failed | 21 failed as expected
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6366,6 +6366,70 @@ CmdLine.tests.cpp:<line number>: PASSED:
 | 
			
		||||
with expansion:
 | 
			
		||||
  true == true
 | 
			
		||||
 | 
			
		||||
-------------------------------------------------------------------------------
 | 
			
		||||
Parse test names and tags
 | 
			
		||||
  Leading and trailing spaces in test spec
 | 
			
		||||
-------------------------------------------------------------------------------
 | 
			
		||||
CmdLine.tests.cpp:<line number>
 | 
			
		||||
...............................................................................
 | 
			
		||||
 | 
			
		||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
			
		||||
  CHECK( spec.matches( fakeTestCase( "  aardvark " ) ) )
 | 
			
		||||
with expansion:
 | 
			
		||||
  true
 | 
			
		||||
 | 
			
		||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
			
		||||
  CHECK( spec.matches( fakeTestCase( "  aardvark" ) ) )
 | 
			
		||||
with expansion:
 | 
			
		||||
  true
 | 
			
		||||
 | 
			
		||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
			
		||||
  CHECK( spec.matches( fakeTestCase( " aardvark " ) ) )
 | 
			
		||||
with expansion:
 | 
			
		||||
  true
 | 
			
		||||
 | 
			
		||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
			
		||||
  CHECK( spec.matches( fakeTestCase( "aardvark " ) ) )
 | 
			
		||||
with expansion:
 | 
			
		||||
  true
 | 
			
		||||
 | 
			
		||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
			
		||||
  CHECK( spec.matches( fakeTestCase( "aardvark" ) ) )
 | 
			
		||||
with expansion:
 | 
			
		||||
  true
 | 
			
		||||
 | 
			
		||||
-------------------------------------------------------------------------------
 | 
			
		||||
Parse test names and tags
 | 
			
		||||
  Leading and trailing spaces in test name
 | 
			
		||||
-------------------------------------------------------------------------------
 | 
			
		||||
CmdLine.tests.cpp:<line number>
 | 
			
		||||
...............................................................................
 | 
			
		||||
 | 
			
		||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
			
		||||
  CHECK( spec.matches( fakeTestCase( "  aardvark " ) ) )
 | 
			
		||||
with expansion:
 | 
			
		||||
  true
 | 
			
		||||
 | 
			
		||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
			
		||||
  CHECK( spec.matches( fakeTestCase( "  aardvark" ) ) )
 | 
			
		||||
with expansion:
 | 
			
		||||
  true
 | 
			
		||||
 | 
			
		||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
			
		||||
  CHECK( spec.matches( fakeTestCase( " aardvark " ) ) )
 | 
			
		||||
with expansion:
 | 
			
		||||
  true
 | 
			
		||||
 | 
			
		||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
			
		||||
  CHECK( spec.matches( fakeTestCase( "aardvark " ) ) )
 | 
			
		||||
with expansion:
 | 
			
		||||
  true
 | 
			
		||||
 | 
			
		||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
			
		||||
  CHECK( spec.matches( fakeTestCase( "aardvark" ) ) )
 | 
			
		||||
with expansion:
 | 
			
		||||
  true
 | 
			
		||||
 | 
			
		||||
-------------------------------------------------------------------------------
 | 
			
		||||
Pointers can be compared to null
 | 
			
		||||
-------------------------------------------------------------------------------
 | 
			
		||||
@@ -12457,5 +12521,5 @@ Misc.tests.cpp:<line number>: PASSED:
 | 
			
		||||
 | 
			
		||||
===============================================================================
 | 
			
		||||
test cases:  300 |  210 passed |  86 failed |  4 failed as expected
 | 
			
		||||
assertions: 1575 | 1406 passed | 148 failed | 21 failed as expected
 | 
			
		||||
assertions: 1585 | 1416 passed | 148 failed | 21 failed as expected
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<testsuitesloose text artifact
 | 
			
		||||
>
 | 
			
		||||
  <testsuite name="<exe-name>" errors="17" failures="132" tests="1576" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
 | 
			
		||||
  <testsuite name="<exe-name>" errors="17" failures="132" tests="1586" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
 | 
			
		||||
    <properties>
 | 
			
		||||
      <property name="filters" value="~[!nonportable]~[!benchmark]~[approvals]"/>
 | 
			
		||||
      <property name="random-seed" value="1"/>
 | 
			
		||||
@@ -620,6 +620,8 @@ Message.tests.cpp:<line number>
 | 
			
		||||
    <testcase classname="<exe-name>.global" name="Parse test names and tags/empty tag" time="{duration}"/>
 | 
			
		||||
    <testcase classname="<exe-name>.global" name="Parse test names and tags/empty quoted name" time="{duration}"/>
 | 
			
		||||
    <testcase classname="<exe-name>.global" name="Parse test names and tags/quoted string followed by tag exclusion" time="{duration}"/>
 | 
			
		||||
    <testcase classname="<exe-name>.global" name="Parse test names and tags/Leading and trailing spaces in test spec" time="{duration}"/>
 | 
			
		||||
    <testcase classname="<exe-name>.global" name="Parse test names and tags/Leading and trailing spaces in test name" time="{duration}"/>
 | 
			
		||||
    <testcase classname="<exe-name>.global" name="Pointers can be compared to null" time="{duration}"/>
 | 
			
		||||
    <testcase classname="<exe-name>.global" name="Precision of floating point stringification can be set/Floats" time="{duration}"/>
 | 
			
		||||
    <testcase classname="<exe-name>.global" name="Precision of floating point stringification can be set/Double" time="{duration}"/>
 | 
			
		||||
 
 | 
			
		||||
@@ -7901,6 +7901,92 @@ Nor would this
 | 
			
		||||
        </Expression>
 | 
			
		||||
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
 | 
			
		||||
      </Section>
 | 
			
		||||
      <Section name="Leading and trailing spaces in test spec" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
			
		||||
        <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
			
		||||
          <Original>
 | 
			
		||||
            spec.matches( fakeTestCase( "  aardvark " ) )
 | 
			
		||||
          </Original>
 | 
			
		||||
          <Expanded>
 | 
			
		||||
            true
 | 
			
		||||
          </Expanded>
 | 
			
		||||
        </Expression>
 | 
			
		||||
        <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
			
		||||
          <Original>
 | 
			
		||||
            spec.matches( fakeTestCase( "  aardvark" ) )
 | 
			
		||||
          </Original>
 | 
			
		||||
          <Expanded>
 | 
			
		||||
            true
 | 
			
		||||
          </Expanded>
 | 
			
		||||
        </Expression>
 | 
			
		||||
        <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
			
		||||
          <Original>
 | 
			
		||||
            spec.matches( fakeTestCase( " aardvark " ) )
 | 
			
		||||
          </Original>
 | 
			
		||||
          <Expanded>
 | 
			
		||||
            true
 | 
			
		||||
          </Expanded>
 | 
			
		||||
        </Expression>
 | 
			
		||||
        <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
			
		||||
          <Original>
 | 
			
		||||
            spec.matches( fakeTestCase( "aardvark " ) )
 | 
			
		||||
          </Original>
 | 
			
		||||
          <Expanded>
 | 
			
		||||
            true
 | 
			
		||||
          </Expanded>
 | 
			
		||||
        </Expression>
 | 
			
		||||
        <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
			
		||||
          <Original>
 | 
			
		||||
            spec.matches( fakeTestCase( "aardvark" ) )
 | 
			
		||||
          </Original>
 | 
			
		||||
          <Expanded>
 | 
			
		||||
            true
 | 
			
		||||
          </Expanded>
 | 
			
		||||
        </Expression>
 | 
			
		||||
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
 | 
			
		||||
      </Section>
 | 
			
		||||
      <Section name="Leading and trailing spaces in test name" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
			
		||||
        <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
			
		||||
          <Original>
 | 
			
		||||
            spec.matches( fakeTestCase( "  aardvark " ) )
 | 
			
		||||
          </Original>
 | 
			
		||||
          <Expanded>
 | 
			
		||||
            true
 | 
			
		||||
          </Expanded>
 | 
			
		||||
        </Expression>
 | 
			
		||||
        <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
			
		||||
          <Original>
 | 
			
		||||
            spec.matches( fakeTestCase( "  aardvark" ) )
 | 
			
		||||
          </Original>
 | 
			
		||||
          <Expanded>
 | 
			
		||||
            true
 | 
			
		||||
          </Expanded>
 | 
			
		||||
        </Expression>
 | 
			
		||||
        <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
			
		||||
          <Original>
 | 
			
		||||
            spec.matches( fakeTestCase( " aardvark " ) )
 | 
			
		||||
          </Original>
 | 
			
		||||
          <Expanded>
 | 
			
		||||
            true
 | 
			
		||||
          </Expanded>
 | 
			
		||||
        </Expression>
 | 
			
		||||
        <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
			
		||||
          <Original>
 | 
			
		||||
            spec.matches( fakeTestCase( "aardvark " ) )
 | 
			
		||||
          </Original>
 | 
			
		||||
          <Expanded>
 | 
			
		||||
            true
 | 
			
		||||
          </Expanded>
 | 
			
		||||
        </Expression>
 | 
			
		||||
        <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
			
		||||
          <Original>
 | 
			
		||||
            spec.matches( fakeTestCase( "aardvark" ) )
 | 
			
		||||
          </Original>
 | 
			
		||||
          <Expanded>
 | 
			
		||||
            true
 | 
			
		||||
          </Expanded>
 | 
			
		||||
        </Expression>
 | 
			
		||||
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
 | 
			
		||||
      </Section>
 | 
			
		||||
      <OverallResult success="true"/>
 | 
			
		||||
    </TestCase>
 | 
			
		||||
    <TestCase name="Pointers can be compared to null" filename="projects/<exe-name>/UsageTests/Condition.tests.cpp" >
 | 
			
		||||
@@ -14826,7 +14912,7 @@ loose text artifact
 | 
			
		||||
      </Section>
 | 
			
		||||
      <OverallResult success="true"/>
 | 
			
		||||
    </TestCase>
 | 
			
		||||
    <OverallResults successes="1406" failures="149" expectedFailures="21"/>
 | 
			
		||||
    <OverallResults successes="1416" failures="149" expectedFailures="21"/>
 | 
			
		||||
  </Group>
 | 
			
		||||
  <OverallResults successes="1406" failures="148" expectedFailures="21"/>
 | 
			
		||||
  <OverallResults successes="1416" failures="148" expectedFailures="21"/>
 | 
			
		||||
</Catch>
 | 
			
		||||
 
 | 
			
		||||
@@ -262,8 +262,25 @@ TEST_CASE( "Parse test names and tags" ) {
 | 
			
		||||
        CHECK( spec.matches( tcC ) == false );
 | 
			
		||||
        CHECK( spec.matches( tcD ) == true );
 | 
			
		||||
    }
 | 
			
		||||
    SECTION( "Leading and trailing spaces in test spec" ) {
 | 
			
		||||
        TestSpec spec = parseTestSpec( "\"  aardvark \"" );
 | 
			
		||||
        CHECK( spec.matches( fakeTestCase( "  aardvark " ) ) );
 | 
			
		||||
        CHECK( spec.matches( fakeTestCase( "  aardvark" ) ) );
 | 
			
		||||
        CHECK( spec.matches( fakeTestCase( " aardvark " ) ) );
 | 
			
		||||
        CHECK( spec.matches( fakeTestCase( "aardvark " ) ) );
 | 
			
		||||
        CHECK( spec.matches( fakeTestCase( "aardvark" ) ) );
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    SECTION( "Leading and trailing spaces in test name" ) {
 | 
			
		||||
        TestSpec spec = parseTestSpec( "aardvark" );
 | 
			
		||||
        CHECK( spec.matches( fakeTestCase( "  aardvark " ) ) );
 | 
			
		||||
        CHECK( spec.matches( fakeTestCase( "  aardvark" ) ) );
 | 
			
		||||
        CHECK( spec.matches( fakeTestCase( " aardvark " ) ) );
 | 
			
		||||
        CHECK( spec.matches( fakeTestCase( "aardvark " ) ) );
 | 
			
		||||
        CHECK( spec.matches( fakeTestCase( "aardvark" ) ) );
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST_CASE( "Process can be configured on command line", "[config][command-line]" ) {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user