LkEngine
0.1.2
Loading...
Searching...
No Matches
TestMacros.h
1
/******************************************************************
2
* TestMacros
3
*
4
/*****************************************************************/
5
#pragma once
6
7
#include <
LkEngine/Core/CoreMacros.h
>
8
#include <LkEngine/Core/Assert.h>
9
#include <LkEngine/Core/Log/Log.h>
10
11
#define LK_TEST_SUITE_ALL ::LkEngine::Test::ETestSuite::All
12
#define LK_TEST_SUITE_CORE ::LkEngine::Test::ETestSuite::Core
13
14
namespace
LkEngine::Test
15
{
16
enum class
ETestSuite
17
{
18
Unknown,
19
All,
20
Core,
21
COUNT
22
};
23
}
24
25
namespace
LkEngine::Enum
26
{
27
static
constexpr
const
char
* ToString(const ::LkEngine::Test::ETestSuite TestSuite)
28
{
29
using namespace
LkEngine::Test;
30
switch
(TestSuite)
31
{
32
case
ETestSuite::Unknown:
return
"Unknown"
;
33
case
ETestSuite::All:
return
"All"
;
34
case
ETestSuite::Core:
return
"Core"
;
35
case
ETestSuite::COUNT:
return
"COUNT"
;
36
}
37
return
"NULL"
;
38
}
39
}
40
41
47
#define LK_DECLARE_AUTOMATION_TEST(TestClass, ...) \
48
class TestClass : public ::LkEngine::Test::LAutomationTest \
49
{ \
50
public: \
51
TestClass(); \
52
virtual bool RunTest() override; \
53
virtual ::LkEngine::Test::ETestSuite GetTestSuite() const override \
54
{ \
55
using namespace ::LkEngine::Test; \
56
return __VA_OPT__(static_cast<ETestSuite>(__VA_ARGS__)) __VA_OPT__(;) ETestSuite::Unknown; \
57
} \
58
private: \
59
LCLASS(TestClass); \
60
}; \
61
namespace \
62
{ \
63
struct TestClass##_Register \
64
{ \
65
TestClass##_Register() \
66
{ \
67
using namespace ::LkEngine::Test; \
68
::LkEngine::LTestManager::Get().AddToSuite( \
69
__VA_OPT__(static_cast<::LkEngine::Test::ETestSuite>(__VA_ARGS__)) \
70
__VA_OPT__(,) \
71
[]() { return std::make_shared<TestClass>(); }); \
72
} \
73
}; \
74
static TestClass##_Register TestClass##_Instance; \
75
}
76
77
88
#define LK_DEFINE_AUTOMATION_TEST(TestClass, ...) \
89
TestClass::TestClass() \
90
: ::LkEngine::Test::LAutomationTest(#TestClass) \
91
{ \
92
LOBJECT_REGISTER(); \
93
} \
94
bool TestClass::RunTest()
95
96
CoreMacros.h
Core macros used by the entire engine.
LkEngine
Test
LTesto
Source
LTesto
Core
TestMacros.h
Generated by
1.12.0