| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | 
							- /*
 
-  *  Created by Phil on 14/8/2012.
 
-  *  Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
 
-  *
 
-  *  Distributed under the Boost Software License, Version 1.0. (See accompanying
 
-  *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-  */
 
- #ifndef TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
 
- #define TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
 
- #ifdef __clang__
 
- #pragma clang diagnostic push
 
- #pragma clang diagnostic ignored "-Wpadded"
 
- #endif
 
- #include "catch_wildcard_pattern.h"
 
- #include "catch_test_case_info.h"
 
- #include <string>
 
- #include <vector>
 
- #include <memory>
 
- namespace Catch {
 
-     struct IConfig;
 
-     class TestSpec {
 
-         class Pattern {
 
-         public:
 
-             explicit Pattern( std::string const& name );
 
-             virtual ~Pattern();
 
-             virtual bool matches( TestCaseInfo const& testCase ) const = 0;
 
-             std::string const& name() const;
 
-         private:
 
-             std::string const m_name;
 
-         };
 
-         using PatternPtr = std::shared_ptr<Pattern>;
 
-         class NamePattern : public Pattern {
 
-         public:
 
-             explicit NamePattern( std::string const& name, std::string const& filterString );
 
-             bool matches( TestCaseInfo const& testCase ) const override;
 
-         private:
 
-             WildcardPattern m_wildcardPattern;
 
-         };
 
-         class TagPattern : public Pattern {
 
-         public:
 
-             explicit TagPattern( std::string const& tag, std::string const& filterString );
 
-             bool matches( TestCaseInfo const& testCase ) const override;
 
-         private:
 
-             std::string m_tag;
 
-         };
 
-         class ExcludedPattern : public Pattern {
 
-         public:
 
-             explicit ExcludedPattern( PatternPtr const& underlyingPattern );
 
-             bool matches( TestCaseInfo const& testCase ) const override;
 
-         private:
 
-             PatternPtr m_underlyingPattern;
 
-         };
 
-         struct Filter {
 
-             std::vector<PatternPtr> m_patterns;
 
-             bool matches( TestCaseInfo const& testCase ) const;
 
-             std::string name() const;
 
-         };
 
-     public:
 
-         struct FilterMatch {
 
-             std::string name;
 
-             std::vector<TestCase const*> tests;
 
-         };
 
-         using Matches = std::vector<FilterMatch>;
 
-         using vectorStrings = std::vector<std::string>;
 
-         bool hasFilters() const;
 
-         bool matches( TestCaseInfo const& testCase ) const;
 
-         Matches matchesByFilter( std::vector<TestCase> const& testCases, IConfig const& config ) const;
 
-         const vectorStrings & getInvalidArgs() const;
 
-     private:
 
-         std::vector<Filter> m_filters;
 
-         std::vector<std::string> m_invalidArgs;
 
-         friend class TestSpecParser;
 
-     };
 
- }
 
- #ifdef __clang__
 
- #pragma clang diagnostic pop
 
- #endif
 
- #endif // TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
 
 
  |