@@ -39,6 +39,7 @@ test_event_eth_rx_intr_adapter_common(void)
#define TEST_INST_ID 0
#define TEST_DEV_ID 0
#define TEST_ETHDEV_ID 0
+#define TEST_ETH_QUEUE_ID 0
struct event_eth_rx_adapter_test_params {
struct rte_mempool *mp;
@@ -1001,6 +1002,87 @@ adapter_queue_conf(void)
return TEST_SUCCESS;
}
+static int
+adapter_instance_get(void)
+{
+ int err;
+ uint8_t inst_id;
+ uint16_t eth_dev_id;
+ struct rte_eth_dev_info dev_info;
+ struct rte_event_eth_rx_adapter_queue_conf queue_conf = {0};
+
+ /* Case 1: Test without configuring eth */
+ err = rte_event_eth_rx_adapter_instance_get(TEST_ETHDEV_ID,
+ TEST_ETH_QUEUE_ID,
+ &inst_id);
+ TEST_ASSERT(err == -EINVAL, "Expected -EINVAL got %d", err);
+
+ /* Case 2: Test with wrong eth port */
+ eth_dev_id = rte_eth_dev_count_total() + 1;
+ err = rte_event_eth_rx_adapter_instance_get(eth_dev_id,
+ TEST_ETH_QUEUE_ID,
+ &inst_id);
+ TEST_ASSERT(err == -EINVAL, "Expected -EINVAL got %d", err);
+
+ /* Case 3: Test with wrong rx queue */
+ err = rte_eth_dev_info_get(TEST_ETHDEV_ID, &dev_info);
+ TEST_ASSERT(err == 0, "Expected 0 got %d", err);
+
+ err = rte_event_eth_rx_adapter_instance_get(TEST_ETHDEV_ID,
+ dev_info.max_rx_queues + 1,
+ &inst_id);
+ TEST_ASSERT(err == -EINVAL, "Expected -EINVAL got %d", err);
+
+ /* Case 4: Test with right instance, port & rxq */
+ /* Add queue to Rx adapter */
+ queue_conf.ev.queue_id = TEST_ETH_QUEUE_ID;
+ queue_conf.ev.sched_type = RTE_SCHED_TYPE_ATOMIC;
+ queue_conf.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL;
+
+ err = rte_event_eth_rx_adapter_queue_add(TEST_INST_ID,
+ TEST_ETHDEV_ID,
+ TEST_ETH_QUEUE_ID,
+ &queue_conf);
+ TEST_ASSERT(err == 0, "Expected 0 got %d", err);
+
+ err = rte_event_eth_rx_adapter_instance_get(TEST_ETHDEV_ID,
+ TEST_ETH_QUEUE_ID,
+ &inst_id);
+ TEST_ASSERT(err == 0, "Expected 0 got %d", err);
+
+ /* Add another queue */
+ queue_conf.ev.queue_id = TEST_ETH_QUEUE_ID + 1;
+ err = rte_event_eth_rx_adapter_queue_add(TEST_INST_ID,
+ TEST_ETHDEV_ID,
+ TEST_ETH_QUEUE_ID + 1,
+ &queue_conf);
+ TEST_ASSERT(err == 0, "Expected 0 got %d", err);
+
+ err = rte_event_eth_rx_adapter_instance_get(TEST_ETHDEV_ID,
+ TEST_ETH_QUEUE_ID + 1,
+ &inst_id);
+ TEST_ASSERT(err == 0, "Expected 0 got %d", err);
+
+ /* Case 5: Test with right instance, port & wrong rxq */
+ err = rte_event_eth_rx_adapter_instance_get(TEST_ETHDEV_ID,
+ TEST_ETH_QUEUE_ID + 2,
+ &inst_id);
+ TEST_ASSERT(err == -EINVAL, "Expected -EINVAL got %d", err);
+
+ /* Delete queues from the Rx adapter */
+ err = rte_event_eth_rx_adapter_queue_del(TEST_INST_ID,
+ TEST_ETHDEV_ID,
+ TEST_ETH_QUEUE_ID);
+ TEST_ASSERT(err == 0, "Expected 0 got %d", err);
+
+ err = rte_event_eth_rx_adapter_queue_del(TEST_INST_ID,
+ TEST_ETHDEV_ID,
+ TEST_ETH_QUEUE_ID + 1);
+ TEST_ASSERT(err == 0, "Expected 0 got %d", err);
+
+ return TEST_SUCCESS;
+}
+
static struct unit_test_suite event_eth_rx_tests = {
.suite_name = "rx event eth adapter test suite",
.setup = testsuite_setup,
@@ -1019,6 +1101,8 @@ static struct unit_test_suite event_eth_rx_tests = {
adapter_queue_event_buf_test),
TEST_CASE_ST(adapter_create_with_params, adapter_free,
adapter_queue_stats_test),
+ TEST_CASE_ST(adapter_create, adapter_free,
+ adapter_instance_get),
TEST_CASES_END() /**< NULL terminate unit test array */
}
};