| 35 | void caseTearDown() override {} |
| 36 | }; |
| 37 | TEST_F(CancellationTest, testSimpleCancellation) { |
| 38 | auto signal = Signal::create(); |
| 39 | auto slot = std::make_shared<Slot>(signal.get()); |
| 40 | auto result = std::async([slot] { |
| 41 | while (!slot->canceled()) { |
| 42 | std::this_thread::yield(); |
| 43 | } |
| 44 | return slot->signal()->state(); |
| 45 | }); |
| 46 | EXPECT_EQ(signal->state() != 0, false); |
| 47 | EXPECT_EQ(signal->emits(SignalType::Terminate), true); |
| 48 | EXPECT_EQ(signal->state() != 0, true); |
| 49 | EXPECT_EQ(result.get(), SignalType::Terminate); |
| 50 | EXPECT_EQ(slot->canceled(), true); |
| 51 | EXPECT_EQ(slot->signal()->state(), SignalType::Terminate); |
| 52 | EXPECT_EQ(signal->state(), SignalType::Terminate); |
| 53 | } |
| 54 | |
| 55 | TEST_F(CancellationTest, testCancellationWithNoneType) { |
| 56 | std::atomic<bool> flag = false; |
nothing calls this directly
no test coverage detected