Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
catch_test_case_registry_impl.h
Go to the documentation of this file.
1/*
2 * Created by Phil on 7/1/2011
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_CASE_REGISTRY_IMPL_HPP_INCLUDED
9#define TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED
10
11#include "catch_test_registry.h"
12#include "catch_test_spec.h"
14
15#include <vector>
16#include <set>
17#include <algorithm>
18#include <ios>
19
20namespace Catch {
21
22 class TestCase;
23 struct IConfig;
24
25 std::vector<TestCase> sortTests( IConfig const& config, std::vector<TestCase> const& unsortedTestCases );
26 bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config );
27
28 void enforceNoDuplicateTestCases( std::vector<TestCase> const& functions );
29
30 std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config );
31 std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config );
32
34 public:
35 virtual ~TestRegistry() = default;
36
37 virtual void registerTest( TestCase const& testCase );
38
39 std::vector<TestCase> const& getAllTests() const override;
40 std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const override;
41
42 private:
43 std::vector<TestCase> m_functions;
44 mutable RunTests::InWhatOrder m_currentSortOrder = RunTests::InDeclarationOrder;
45 mutable std::vector<TestCase> m_sortedFunctions;
46 std::size_t m_unnamedCount = 0;
47 std::ios_base::Init m_ostreamInit; // Forces cout/ cerr to be initialised
48 };
49
51
53 void(*m_testAsFunction)();
54 public:
55 TestInvokerAsFunction( void(*testAsFunction)() ) noexcept;
56
57 void invoke() const override;
58 };
59
60
61 std::string extractClassName( StringRef const& classOrQualifiedMethodName );
62
64
65
66} // end namespace Catch
67
68
69#endif // TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED
TestInvokerAsFunction(void(*testAsFunction)()) noexcept
virtual ~TestRegistry()=default
std::vector< TestCase > const & getAllTests() const override
virtual void registerTest(TestCase const &testCase)
std::vector< TestCase > const & getAllTestsSorted(IConfig const &config) const override
std::vector< TestCase > filterTests(std::vector< TestCase > const &testCases, TestSpec const &testSpec, IConfig const &config)
void enforceNoDuplicateTestCases(std::vector< TestCase > const &functions)
std::vector< TestCase > const & getAllTestCasesSorted(IConfig const &config)
std::string extractClassName(StringRef const &classOrQualifiedMethodName)
std::vector< TestCase > sortTests(IConfig const &config, std::vector< TestCase > const &unsortedTestCases)
bool matchTest(TestCase const &testCase, TestSpec const &testSpec, IConfig const &config)