[dpdk-dev,v4] raw/skeleton: fix device start test
Checks
Commit Message
Device can only be started if firmware is loaded, as per Skeleton
rawdev driver semantics. This patch fixes original implementation
which attempted to start the device without loading firmware.
Fixes: 55ca1b0f2151 ("raw/skeleton: add test cases")
Cc: shreyansh.jain@nxp.com
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
---
v4:
- change patch headline to raw/skeleton from raw/skeleton_rawdev
v3:
- Moving 'Fixes' below commit message
- patch headline made specific
v2:
- Fixed headline from drivers/raw to raw/skeleton_rawdev
- checkpatch for spelling mistake
drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
Comments
06/02/2018 07:43, Shreyansh Jain:
> Device can only be started if firmware is loaded, as per Skeleton
> rawdev driver semantics. This patch fixes original implementation
> which attempted to start the device without loading firmware.
>
> Fixes: 55ca1b0f2151 ("raw/skeleton: add test cases")
> Cc: shreyansh.jain@nxp.com
>
> Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Applied, thanks
@@ -297,10 +297,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 +334,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;
}