| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #include "gate/tests.hpp" | ||
| 2 | #include "gate/runnables.hpp" | ||
| 3 | |||
| 4 | using namespace gate; | ||
| 5 | |||
| 6 | |||
| 7 | class RunnableCodeSamples | ||
| 8 | { | ||
| 9 | public: | ||
| 10 | 1 | void run1(int a, int b, int* ptr_c) | |
| 11 | { | ||
| 12 | 1 | *ptr_c = a + b; | |
| 13 | 1 | } | |
| 14 | |||
| 15 | 1 | void task1(int a, int b, int& c) | |
| 16 | { | ||
| 17 | 1 | c = a + b; | |
| 18 | 1 | } | |
| 19 | }; | ||
| 20 | |||
| 21 | |||
| 22 |
2/7✓ Branch 2 taken 3 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.
|
10 | GATEXX_TEST_UNIT(Runnable) |
| 23 | { | ||
| 24 | RunnableCodeSamples sample; | ||
| 25 | |||
| 26 | { | ||
| 27 | 2 | int a = 15; | |
| 28 | 2 | int b = 8; | |
| 29 | 2 | int c = 0; | |
| 30 | 2 | int* ptr_c = &c; | |
| 31 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Runnable r1 = RunnableBuilder::createMethod(&RunnableCodeSamples::run1, &sample, a, b, ptr_c); |
| 32 |
4/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 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(r1.run()); |
| 33 |
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(c, (a + b)); |
| 34 | { | ||
| 35 | // test cctor / op= | ||
| 36 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Runnable r2(r1); |
| 37 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Runnable r3(r2); |
| 38 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | r3 = r1; |
| 39 | } | ||
| 40 | } | ||
| 41 | 2 | } | |
| 42 | |||
| 43 | class GATE_API_LOCAL TestTask : public ITaskBase | ||
| 44 | { | ||
| 45 | public: | ||
| 46 | bool run_fail; | ||
| 47 | bool run_canceled; | ||
| 48 | |||
| 49 | 3 | TestTask() | |
| 50 | 3 | : run_fail(false), run_canceled(false) | |
| 51 | { | ||
| 52 | 3 | } | |
| 53 | |||
| 54 | 3 | void runImpl() override | |
| 55 | { | ||
| 56 | 3 | ITaskBase::runImpl(); | |
| 57 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 2 times.
|
3 | if (this->run_fail) |
| 58 | { | ||
| 59 | 1 | raiseException(results::Failed); | |
| 60 | } | ||
| 61 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
|
2 | if (this->run_canceled) |
| 62 | { | ||
| 63 | 1 | this->cancel(); | |
| 64 | } | ||
| 65 | 2 | } | |
| 66 | |||
| 67 | 1 | void cancelImpl() override | |
| 68 | { | ||
| 69 | 1 | ITaskBase::cancelImpl(); | |
| 70 | 1 | } | |
| 71 | |||
| 72 | }; | ||
| 73 | |||
| 74 | |||
| 75 |
2/7✓ Branch 2 taken 3 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.
|
10 | GATEXX_TEST_UNIT(Task) |
| 76 | { | ||
| 77 | RunnableCodeSamples sample; | ||
| 78 | |||
| 79 | { // run a task | ||
| 80 | 2 | int a = 15; | |
| 81 | 2 | int b = 8; | |
| 82 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | TypedTask<int> t1 = TaskBuilder::createMethod(&RunnableCodeSamples::task1, &sample, a, b); |
| 83 |
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(!t1.empty()); |
| 84 |
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 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(t1.status(), Task::Status_Prepared); |
| 85 |
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 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK(!t1.completed()); |
| 86 |
4/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 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(t1.run()); |
| 87 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Task t2 = t1; |
| 88 |
4/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 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(t2.wait()); |
| 89 |
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 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(t2.waitFor(0), true); |
| 90 |
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 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK(t2.completed()); |
| 91 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | int c = t1.getResult(); |
| 92 |
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(c, (a + b)); |
| 93 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
|
4 | GATEXX_TEST_CHECK_THROW(t1.cancel()); // cannot cancel a completed task |
| 94 | |||
| 95 | { | ||
| 96 | // test cctor/op= | ||
| 97 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Task t3 = t1; |
| 98 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | Task t4(t3); |
| 99 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | t4 = t1; |
| 100 | } | ||
| 101 | } | ||
| 102 | |||
| 103 | { // cancel task before running | ||
| 104 | 2 | int a = 15; | |
| 105 | 2 | int b = 8; | |
| 106 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | TypedTask<int> t1 = TaskBuilder::createMethod(&RunnableCodeSamples::task1, &sample, a, b); |
| 107 |
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(!t1.empty()); |
| 108 |
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 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(t1.status(), Task::Status_Prepared); |
| 109 |
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 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK(!t1.completed()); |
| 110 |
4/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 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(t1.cancel()); |
| 111 |
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 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK_EQUAL(t1.status(), Task::Status_Canceled); |
| 112 |
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 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
2 | GATEXX_TEST_CHECK(t1.completed()); |
| 113 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
|
4 | GATEXX_TEST_CHECK_THROW(t1.run()); // cannot run a canceled task |
| 114 | } | ||
| 115 | |||
| 116 | { | ||
| 117 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | TestTask task; |
| 118 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
|
4 | GATEXX_TEST_CHECK_THROW(task.getResult()); |
| 119 |
4/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 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(task.run()); |
| 120 |
4/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 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(task.getResult()); |
| 121 | } | ||
| 122 | { | ||
| 123 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | TestTask task; |
| 124 | 2 | task.run_fail = true; | |
| 125 |
4/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 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(task.run()); |
| 126 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
|
4 | GATEXX_TEST_CHECK_THROW(task.getResult()); |
| 127 | } | ||
| 128 | { | ||
| 129 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
4 | TestTask task; |
| 130 | 2 | task.run_canceled = true; | |
| 131 |
4/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 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | GATEXX_TEST_CHECK_NOTHROW(task.run()); |
| 132 |
5/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
|
4 | GATEXX_TEST_CHECK_THROW(task.getResult()); |
| 133 | } | ||
| 134 | |||
| 135 | 2 | } | |
| 136 |