Manak  2.0.0
test_macros.hpp
Go to the documentation of this file.
1 #ifndef MANAK_TEST_MACROS_HPP_INCLUDED
2 #define MANAK_TEST_MACROS_HPP_INCLUDED
3 
4 #include "test_monitor.hpp"
5 #include "monitor_entry.hpp"
6 #include <exception>
7 #include <string>
8 
9 #include "test_monitor.hpp"
10 
11 namespace manak
12 {
13 
14 struct ManakException : public std::exception
15 {};
16 
17 }
18 
19 #define TEST(Code) \
20 manak::TestMonitor::GetGlobalTestMonitor().Enable(); \
21 try \
22 { \
23  Code; \
24 } catch(manak::ManakException& ex){} \
25 catch(std::exception& ex) \
26 { \
27  manak::TestMonitor::GetGlobalTestMonitor().AddText(new manak::MsgEntry(MANAK_STRINGIZE(__FILE__), __LINE__, ex.what())); \
28 }
29 
30 #define MANAK_ASSERT_TRUE(expr) \
31 if(expr); \
32 else \
33 { \
34  if(manak::TestMonitor::GetGlobalTestMonitor().AddAssert(new manak::TrueTestEntry(MANAK_STRINGIZE(__FILE__), __LINE__))) \
35  throw manak::ManakException(); \
36 }
37 
38 #define MANAK_ASSERT_TRUE_MSG(expr, msg) \
39 if(expr); \
40 else \
41 { \
42  if(manak::TestMonitor::GetGlobalTestMonitor().AddAssert(new manak::MsgEntry(MANAK_STRINGIZE(__FILE__), __LINE__, msg))) \
43  throw manak::ManakException(); \
44 }
45 
46 #define MANAK_ASSERT_FALSE(expr) \
47 if(!(expr)); \
48 else \
49 { \
50  if(manak::TestMonitor::GetGlobalTestMonitor().AddAssert(new manak::FalseTestEntry(MANAK_STRINGIZE(__FILE__), __LINE__))) \
51  throw manak::ManakException(); \
52 }
53 
54 #define MANAK_ASSERT_FALSE_MSG(expr, msg) \
55 if(!(expr)); \
56 else \
57 { \
58  if(manak::TestMonitor::GetGlobalTestMonitor().AddAssert(new manak::MsgEntry(MANAK_STRINGIZE(__FILE__), __LINE__, msg))) \
59  throw manak::ManakException(); \
60 }
61 
62 #define MANAK_CHECK_TRUE(expr) \
63 if(expr); \
64 else \
65 { \
66  manak::TestMonitor::GetGlobalTestMonitor().AddCheck(new manak::TrueTestEntry(MANAK_STRINGIZE(__FILE__), __LINE__)); \
67 }
68 
69 #define MANAK_CHECK_TRUE_MSG(expr, msg) \
70 if(expr); \
71 else \
72 { \
73  manak::TestMonitor::GetGlobalTestMonitor().AddCheck(new manak::MsgEntry(MANAK_STRINGIZE(__FILE__), __LINE__, msg))); \
74 }
75 
76 #define MANAK_CHECK_FALSE(expr) \
77 if(!(expr)); \
78 else \
79 { \
80  manak::TestMonitor::GetGlobalTestMonitor().AddCheck(new manak::FalseTestEntry(MANAK_STRINGIZE(__FILE__), __LINE__)); \
81 }
82 
83 #define MANAK_CHECK_FALSE_MSG(expr, msg) \
84 if(!(expr)); \
85 else \
86 { \
87  manak::TestMonitor::GetGlobalTestMonitor().AddCheck(new manak::MsgEntry(MANAK_STRINGIZE(__FILE__), __LINE__, msg)); \
88 }
89 
90 
91 #endif // MANAK_TEST_MACROS_HPP_INCLUDED