123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /*
- * Created by Phil on 29/10/2010.
- * 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_CASE_INFO_H_INCLUDED
- #define TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED
- #include "catch_common.h"
- #include "catch_test_registry.h"
- #include <string>
- #include <vector>
- #include <memory>
- #ifdef __clang__
- #pragma clang diagnostic push
- #pragma clang diagnostic ignored "-Wpadded"
- #endif
- namespace Catch {
- struct ITestInvoker;
- struct TestCaseInfo {
- enum SpecialProperties{
- None = 0,
- IsHidden = 1 << 1,
- ShouldFail = 1 << 2,
- MayFail = 1 << 3,
- Throws = 1 << 4,
- NonPortable = 1 << 5,
- Benchmark = 1 << 6
- };
- TestCaseInfo( std::string const& _name,
- std::string const& _className,
- std::string const& _description,
- std::vector<std::string> const& _tags,
- SourceLineInfo const& _lineInfo );
- friend void setTags( TestCaseInfo& testCaseInfo, std::vector<std::string> tags );
- bool isHidden() const;
- bool throws() const;
- bool okToFail() const;
- bool expectedToFail() const;
- std::string tagsAsString() const;
- std::string name;
- std::string className;
- std::string description;
- std::vector<std::string> tags;
- std::vector<std::string> lcaseTags;
- SourceLineInfo lineInfo;
- SpecialProperties properties;
- };
- class TestCase : public TestCaseInfo {
- public:
- TestCase( ITestInvoker* testCase, TestCaseInfo&& info );
- TestCase withName( std::string const& _newName ) const;
- void invoke() const;
- TestCaseInfo const& getTestCaseInfo() const;
- bool operator == ( TestCase const& other ) const;
- bool operator < ( TestCase const& other ) const;
- private:
- std::shared_ptr<ITestInvoker> test;
- };
- TestCase makeTestCase( ITestInvoker* testCase,
- std::string const& className,
- NameAndTags const& nameAndTags,
- SourceLineInfo const& lineInfo );
- }
- #ifdef __clang__
- #pragma clang diagnostic pop
- #endif
- #endif // TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED
|