mirror of https://github.com/procxx/kepka.git
				
				
				
			
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
| /*
 | |
|  *  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 <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 const& 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,
 | |
|                             std::string const& name,
 | |
|                             std::string const& description,
 | |
|                             SourceLineInfo const& lineInfo );
 | |
| }
 | |
| 
 | |
| #ifdef __clang__
 | |
| #pragma clang diagnostic pop
 | |
| #endif
 | |
| 
 | |
| #endif // TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED
 |