MCPcopy Create free account
hub / github.com/F-Stack/f-stack / test_timer_state

Function test_timer_state

dpdk/app/test/test_event_timer_adapter.c:464–522  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

462}
463
464static inline int
465test_timer_state(void)
466{
467 struct rte_event_timer *ev_tim;
468 const uint64_t max_ticks = 100;
469 uint64_t ticks, wait_ticks;
470 struct rte_event ev;
471 const struct rte_event_timer tim = {
472 .ev.op = RTE_EVENT_OP_NEW,
473 .ev.queue_id = 0,
474 .ev.sched_type = RTE_SCHED_TYPE_ATOMIC,
475 .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
476 .ev.event_type = RTE_EVENT_TYPE_TIMER,
477 .state = RTE_EVENT_TIMER_NOT_ARMED,
478 };
479
480 rte_mempool_get(eventdev_test_mempool, (void **)&ev_tim);
481 *ev_tim = tim;
482 ev_tim->ev.event_ptr = ev_tim;
483 ev_tim->timeout_ticks = CALC_TICKS(max_ticks + 20);
484
485 TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 0,
486 "Armed timer exceeding max_timeout.");
487 TEST_ASSERT_EQUAL(ev_tim->state, RTE_EVENT_TIMER_ERROR_TOOLATE,
488 "Improper timer state set expected %d returned %d",
489 RTE_EVENT_TIMER_ERROR_TOOLATE, ev_tim->state);
490
491 ticks = 10;
492 ev_tim->state = RTE_EVENT_TIMER_NOT_ARMED;
493 ev_tim->timeout_ticks = CALC_TICKS(ticks);
494
495 TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 1,
496 "Failed to arm timer with proper timeout.");
497 TEST_ASSERT_EQUAL(ev_tim->state, RTE_EVENT_TIMER_ARMED,
498 "Improper timer state set expected %d returned %d",
499 RTE_EVENT_TIMER_ARMED, ev_tim->state);
500
501 if (!using_services)
502 wait_ticks = 2 * ticks;
503 else
504 wait_ticks = ticks;
505
506 TEST_ASSERT_EQUAL(timeout_event_dequeue(&ev, 1, WAIT_TICKS(wait_ticks)), 1,
507 "Armed timer failed to trigger.");
508
509 ev_tim->state = RTE_EVENT_TIMER_NOT_ARMED;
510 ev_tim->timeout_ticks = CALC_TICKS(max_ticks - 10);
511 TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 1,
512 "Failed to arm timer with proper timeout.");
513 TEST_ASSERT_EQUAL(rte_event_timer_cancel_burst(timdev, &ev_tim, 1),
514 1, "Failed to cancel armed timer");
515 TEST_ASSERT_EQUAL(ev_tim->state, RTE_EVENT_TIMER_CANCELED,
516 "Improper timer state set expected %d returned %d",
517 RTE_EVENT_TIMER_CANCELED, ev_tim->state);
518
519 rte_mempool_put(eventdev_test_mempool, (void *)ev_tim);
520
521 return TEST_SUCCESS;

Callers

nothing calls this directly

Calls 5

rte_mempool_getFunction · 0.85
timeout_event_dequeueFunction · 0.85
rte_mempool_putFunction · 0.85

Tested by

no test coverage detected