Line | Branch | Exec | Source |
---|---|---|---|
1 | #include "gate/tests.hpp" | ||
2 | #include "gate/exceptions.hpp" | ||
3 | |||
4 | using namespace gate; | ||
5 | |||
6 | static String const strMessage = String::createStaticFrom("Message"); | ||
7 | static String const strSource = String::createStaticFrom("Source"); | ||
8 | |||
9 | class GATE_API_LOCAL ThrowErrorTask : public IRunnable | ||
10 | { | ||
11 | public: | ||
12 | 1 | void run() override | |
13 | { | ||
14 | 1 | throw gate::Error(results::CriticalError, strSource.c_str(), 12); | |
15 | } | ||
16 | }; | ||
17 | |||
18 | class GATE_API_LOCAL ThrowExceptionTask : public IRunnable | ||
19 | { | ||
20 | public: | ||
21 | 1 | void run() override | |
22 | { | ||
23 | 1 | throw gate::Exception(results::CriticalError, strMessage.c_str(), strSource.c_str(), 12); | |
24 | } | ||
25 | }; | ||
26 | |||
27 | class GATE_API_LOCAL ThrowUnknownTask : public IRunnable | ||
28 | { | ||
29 | public: | ||
30 | 1 | void run() override | |
31 | { | ||
32 | 1 | throw 123; | |
33 | } | ||
34 | }; | ||
35 | |||
36 | class GATE_API_LOCAL NoThrowTask : public IRunnable | ||
37 | { | ||
38 | public: | ||
39 | 1 | void run() override | |
40 | { | ||
41 | 1 | } | |
42 | }; | ||
43 | |||
44 | 1 | static gate_result_t task_disp(gate_dataptr_t arg) | |
45 | { | ||
46 | 1 | IRunnable* ptrRun = static_cast<IRunnable*>(arg); | |
47 | 1 | ptrRun->run(); | |
48 | ✗ | return GATE_RESULT_OK; | |
49 | } | ||
50 | |||
51 | |||
52 |
2/7✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
6 | GATEXX_TEST_UNIT(Exception) |
53 | { | ||
54 | { | ||
55 | 2 | NoThrowTask task; | |
56 | 2 | gate_exception_info_t info = gate::catchException(task); | |
57 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK(info.result_code == results::Ok); |
58 | } | ||
59 | |||
60 | { | ||
61 | 2 | ThrowErrorTask task; | |
62 | 2 | gate_exception_info_t info = gate::catchException(task); | |
63 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK(info.result_code == results::CriticalError); |
64 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK(strSource == info.source); |
65 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK(info.error_code == 12); |
66 | } | ||
67 | |||
68 | { | ||
69 | 2 | ThrowExceptionTask task; | |
70 | 2 | gate_exception_info_t info = gate::catchException(&task_disp, &task); | |
71 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK(info.result_code == results::CriticalError); |
72 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK(strSource == info.source); |
73 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK(info.error_code == 12); |
74 | } | ||
75 | |||
76 | { | ||
77 | 2 | ThrowUnknownTask task; | |
78 | 2 | gate_exception_info_t info = gate::catchException(task); | |
79 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK(info.result_code == results::UnknownException); |
80 | } | ||
81 | |||
82 | 2 | } | |
83 | |||
84 |
2/7✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
6 | GATEXX_TEST_UNIT(Throw) |
85 | { | ||
86 | try | ||
87 | { | ||
88 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | ExceptionInfo info; |
89 | 2 | info.error_code = 123; | |
90 | 2 | info.result_code = results::ExecutionFailed; | |
91 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | strMessage.copyTo(info.message, sizeof(info.message)); |
92 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | strSource.copyTo(info.source, sizeof(info.source)); |
93 |
1/2✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
|
2 | info.raise(); |
94 | } | ||
95 | 4 | catch (...) | |
96 | { | ||
97 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | ExceptionInfo info = catchCurrentException(); |
98 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
2 | GATEXX_TEST_CHECK(info.failed()); |
99 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
|
2 | GATEXX_TEST_CHECK(!info.succeeded()); |
100 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(info.result_code, results::ExecutionFailed); |
101 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(strMessage, info.message); |
102 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(strSource, info.source); |
103 |
4/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(info.error_code, 123); |
104 | } | ||
105 | |||
106 | 2 | } | |
107 |