@@ -202,6 +202,31 @@ TEST(OlgaSchedulerC, Cancel)
202202 EXPECT_EQ (log.ids , (std::vector<int >{ 2 }));
203203}
204204
205+ TEST (OlgaSchedulerC, IsPending)
206+ {
207+ TestClock clock{ .now = 0 };
208+ olga_t sched;
209+ olga_init (&sched, &clock, clock_now);
210+
211+ CallbackCtx ctx{ .log = nullptr , .id = 0 , .expected_deadline = INT64_MIN , .clock = &clock, .advance_by = 0 };
212+ olga_event_t evt = OLGA_EVENT_INIT ;
213+
214+ EXPECT_FALSE (olga_is_pending (&sched, &evt));
215+
216+ olga_defer (&sched, 100 , &ctx, record_handler, &evt);
217+ EXPECT_TRUE (olga_is_pending (&sched, &evt));
218+
219+ olga_cancel (&sched, &evt);
220+ EXPECT_FALSE (olga_is_pending (&sched, &evt));
221+
222+ olga_defer (&sched, 100 , &ctx, record_handler, &evt);
223+ EXPECT_TRUE (olga_is_pending (&sched, &evt));
224+
225+ clock.now = 100 ;
226+ (void )olga_spin (&sched);
227+ EXPECT_FALSE (olga_is_pending (&sched, &evt));
228+ }
229+
205230TEST (OlgaSchedulerC, OverdueSingle)
206231{
207232 TestClock clock{ .now = 0 };
0 commit comments