ethdev: avoid explicit check of valid port state
[dpdk.git] / drivers / raw / skeleton_rawdev / skeleton_rawdev_test.c
index c7931d8..359c9e2 100644 (file)
@@ -193,6 +193,18 @@ test_rawdev_queue_default_conf_get(void)
        return TEST_SUCCESS;
 }
 
+static int
+test_rawdev_queue_count(void)
+{
+       unsigned int q_count;
+
+       /* Get the current configuration */
+       q_count = rte_rawdev_queue_count(TEST_DEV_ID);
+       RTE_TEST_ASSERT_EQUAL(q_count, 1, "Invalid queue count (%d)", q_count);
+
+       return TEST_SUCCESS;
+}
+
 static int
 test_rawdev_queue_setup(void)
 {
@@ -282,6 +294,8 @@ test_rawdev_attr_set_get(void)
                              "Attribute (Test1) not set correctly (%" PRIu64 ")",
                              ret_value);
 
+       free(dummy_value);
+
        ret_value = 0;
        ret = rte_rawdev_get_attr(TEST_DEV_ID, "Test2", &ret_value);
        RTE_TEST_ASSERT_EQUAL(*((int *)(uintptr_t)ret_value), 200,
@@ -297,10 +311,25 @@ test_rawdev_start_stop(void)
        int ret;
        struct rte_rawdev_info rdev_info = {0};
        struct skeleton_rawdev_conf rdev_conf_get = {0};
+       char *dummy_firmware = NULL;
 
        /* Get the current configuration */
        rdev_info.dev_private = &rdev_conf_get;
 
+       /* Load a firmware using a dummy address area */
+       dummy_firmware = rte_zmalloc("RAWDEV SKELETON", sizeof(int) * 10, 0);
+       RTE_TEST_ASSERT(dummy_firmware != NULL,
+                       "Failed to create firmware memory backing");
+
+       ret = rte_rawdev_firmware_load(TEST_DEV_ID, dummy_firmware);
+       RTE_TEST_ASSERT_SUCCESS(ret, "Firmware loading failed (%d)", ret);
+
+       /* Skeleton doesn't do anything with the firmware area - that is dummy
+        * and can be removed.
+        */
+       rte_free(dummy_firmware);
+       dummy_firmware = NULL;
+
        rte_rawdev_start(TEST_DEV_ID);
        ret = rte_rawdev_info_get(TEST_DEV_ID, (rte_rawdev_obj_t)&rdev_info);
        RTE_TEST_ASSERT_SUCCESS(ret,
@@ -319,6 +348,10 @@ test_rawdev_start_stop(void)
                              "Device stop failed. State is (%d)",
                              rdev_conf_get.device_state);
 
+       /* Unloading the firmware once device is stopped */
+       ret = rte_rawdev_firmware_unload(TEST_DEV_ID);
+       RTE_TEST_ASSERT_SUCCESS(ret, "Failed to unload firmware (%d)", ret);
+
        return TEST_SUCCESS;
 }
 
@@ -360,8 +393,6 @@ test_rawdev_enqdeq(void)
 cleanup:
        if (buffers[0].buf_addr)
                free(buffers[0].buf_addr);
-       if (deq_buffers)
-               free(deq_buffers);
 
        return TEST_FAILED;
 }
@@ -411,6 +442,7 @@ test_rawdev_skeldev(void)
        SKELDEV_TEST_RUN(test_rawdev_configure, NULL,
                         test_rawdev_queue_default_conf_get);
        SKELDEV_TEST_RUN(test_rawdev_configure, NULL, test_rawdev_queue_setup);
+       SKELDEV_TEST_RUN(NULL, NULL, test_rawdev_queue_count);
        SKELDEV_TEST_RUN(test_rawdev_queue_setup, NULL,
                         test_rawdev_queue_release);
        SKELDEV_TEST_RUN(NULL, NULL, test_rawdev_attr_set_get);