Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
catch_test_spec.h
Go to the documentation of this file.
1/*
2 * Created by Phil on 14/8/2012.
3 * Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
4 *
5 * Distributed under the Boost Software License, Version 1.0. (See accompanying
6 * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 */
8#ifndef TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
9#define TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
10
11#ifdef __clang__
12#pragma clang diagnostic push
13#pragma clang diagnostic ignored "-Wpadded"
14#endif
15
18
19#include <string>
20#include <vector>
21#include <memory>
22
23namespace Catch {
24
25 class TestSpec {
26 struct Pattern {
27 virtual ~Pattern();
28 virtual bool matches( TestCaseInfo const& testCase ) const = 0;
29 };
30 using PatternPtr = std::shared_ptr<Pattern>;
31
32 class NamePattern : public Pattern {
33 public:
34 NamePattern( std::string const& name );
35 virtual ~NamePattern();
36 bool matches( TestCaseInfo const& testCase ) const override;
37 private:
38 WildcardPattern m_wildcardPattern;
39 };
40
41 class TagPattern : public Pattern {
42 public:
43 TagPattern( std::string const& tag );
44 virtual ~TagPattern();
45 bool matches( TestCaseInfo const& testCase ) const override;
46 private:
47 std::string m_tag;
48 };
49
50 class ExcludedPattern : public Pattern {
51 public:
52 ExcludedPattern( PatternPtr const& underlyingPattern );
53 virtual ~ExcludedPattern();
54 bool matches( TestCaseInfo const& testCase ) const override;
55 private:
56 PatternPtr m_underlyingPattern;
57 };
58
59 struct Filter {
60 std::vector<PatternPtr> m_patterns;
61
62 bool matches( TestCaseInfo const& testCase ) const;
63 };
64
65 public:
66 bool hasFilters() const;
67 bool matches( TestCaseInfo const& testCase ) const;
68
69 private:
70 std::vector<Filter> m_filters;
71
72 friend class TestSpecParser;
73 };
74}
75
76#ifdef __clang__
77#pragma clang diagnostic pop
78#endif
79
80#endif // TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
std::string name
bool matches(TestCaseInfo const &testCase) const
bool hasFilters() const