| 462 | } |
| 463 | |
| 464 | static inline int |
| 465 | test_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; |
nothing calls this directly
no test coverage detected