| 386 | struct rte_event *ev); |
| 387 | |
| 388 | static inline int |
| 389 | consume_events(uint8_t port, const uint32_t total_events, validate_event_cb fn) |
| 390 | { |
| 391 | int ret; |
| 392 | uint16_t valid_event; |
| 393 | uint32_t events = 0, forward_progress_cnt = 0, index = 0; |
| 394 | struct rte_event ev; |
| 395 | |
| 396 | while (1) { |
| 397 | if (++forward_progress_cnt > UINT16_MAX) { |
| 398 | ssovf_log_dbg("Detected deadlock"); |
| 399 | return -1; |
| 400 | } |
| 401 | |
| 402 | valid_event = rte_event_dequeue_burst(evdev, port, &ev, 1, 0); |
| 403 | if (!valid_event) |
| 404 | continue; |
| 405 | |
| 406 | forward_progress_cnt = 0; |
| 407 | ret = validate_event(&ev); |
| 408 | if (ret) |
| 409 | return -1; |
| 410 | |
| 411 | if (fn != NULL) { |
| 412 | ret = fn(index, port, &ev); |
| 413 | RTE_TEST_ASSERT_SUCCESS(ret, |
| 414 | "Failed to validate test specific event"); |
| 415 | } |
| 416 | |
| 417 | ++index; |
| 418 | |
| 419 | rte_pktmbuf_free(ev.mbuf); |
| 420 | if (++events >= total_events) |
| 421 | break; |
| 422 | } |
| 423 | |
| 424 | return check_excess_events(port); |
| 425 | } |
| 426 | |
| 427 | static int |
| 428 | validate_simple_enqdeq(uint32_t index, uint8_t port, struct rte_event *ev) |
no test coverage detected