From cdde42d52e25a905478730aa47a60d3203f5fa95 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Thu, 8 Aug 2019 10:34:31 +0900 Subject: [PATCH] ut/bdev/raid: Factor out operation to create request for get_raid_bdevs RPC Create a helper function create_get_raids_req() and move duplication of category name and initialization of related global variables into the function. Some operations are re-ordered accordingly. Signed-off-by: Shuhei Matsumoto Change-Id: I03e12e8d77872634a65a94b4cd4092554e376b13 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/464480 Tested-by: SPDK CI Jenkins Reviewed-by: Broadcom SPDK FC-NVMe CI Reviewed-by: Jim Harris Reviewed-by: Changpeng Liu --- test/unit/lib/bdev/bdev_raid.c/bdev_raid_ut.c | 69 ++++++++----------- 1 file changed, 27 insertions(+), 42 deletions(-) diff --git a/test/unit/lib/bdev/bdev_raid.c/bdev_raid_ut.c b/test/unit/lib/bdev/bdev_raid.c/bdev_raid_ut.c index 7565855bc..bb6722cea 100644 --- a/test/unit/lib/bdev/bdev_raid.c/bdev_raid_ut.c +++ b/test/unit/lib/bdev/bdev_raid.c/bdev_raid_ut.c @@ -1101,6 +1101,7 @@ create_construct_req(struct rpc_construct_raid_bdev *r, const char *raid_name, g_json_decode_obj_construct = 1; g_json_decode_obj_err = json_decode_obj_err; g_config_level_create = 0; + g_test_multi_raids = 0; } static void @@ -1110,6 +1111,7 @@ create_construct_config(struct rpc_construct_raid_bdev *r, const char *raid_name create_test_req(r, raid_name, bbdev_start_idx, create_base_bdev); g_config_level_create = 1; + g_test_multi_raids = 0; } static void @@ -1136,6 +1138,24 @@ create_destroy_req(struct rpc_destroy_raid_bdev *r, const char *raid_name, g_json_decode_obj_construct = 0; g_json_decode_obj_err = json_decode_obj_err; g_config_level_create = 0; + g_test_multi_raids = 0; +} + +static void +create_get_raids_req(struct rpc_get_raid_bdevs *r, const char *category, + uint8_t json_decode_obj_err) +{ + r->category = strdup(category); + SPDK_CU_ASSERT_FATAL(r->category != NULL); + + g_rpc_req = r; + g_rpc_req_size = sizeof(*r); + g_rpc_err = 0; + g_json_decode_obj_construct = 0; + g_json_decode_obj_err = json_decode_obj_err; + g_config_level_create = 0; + g_test_multi_raids = 1; + g_get_raids_count = 0; } static void @@ -1924,84 +1944,50 @@ test_multi_raid_no_io(void) verify_raid_bdev(&construct_req[i], true, RAID_BDEV_STATE_ONLINE); } - get_raids_req.category = strdup("all"); - g_rpc_req = &get_raids_req; - g_rpc_req_size = sizeof(get_raids_req); - g_rpc_err = 0; - g_test_multi_raids = 1; - g_json_decode_obj_construct = 0; + create_get_raids_req(&get_raids_req, "all", 0); spdk_rpc_get_raid_bdevs(NULL, NULL); CU_ASSERT(g_rpc_err == 0); verify_get_raids(construct_req, g_max_raids, g_get_raids_output, g_get_raids_count); for (i = 0; i < g_get_raids_count; i++) { free(g_get_raids_output[i]); } - g_get_raids_count = 0; - get_raids_req.category = strdup("online"); - g_rpc_req = &get_raids_req; - g_rpc_req_size = sizeof(get_raids_req); - g_rpc_err = 0; - g_json_decode_obj_construct = 0; + create_get_raids_req(&get_raids_req, "online", 0); spdk_rpc_get_raid_bdevs(NULL, NULL); CU_ASSERT(g_rpc_err == 0); verify_get_raids(construct_req, g_max_raids, g_get_raids_output, g_get_raids_count); for (i = 0; i < g_get_raids_count; i++) { free(g_get_raids_output[i]); } - g_get_raids_count = 0; - get_raids_req.category = strdup("configuring"); - g_rpc_req = &get_raids_req; - g_rpc_req_size = sizeof(get_raids_req); - g_rpc_err = 0; - g_json_decode_obj_construct = 0; + create_get_raids_req(&get_raids_req, "configuring", 0); spdk_rpc_get_raid_bdevs(NULL, NULL); CU_ASSERT(g_rpc_err == 0); CU_ASSERT(g_get_raids_count == 0); - get_raids_req.category = strdup("offline"); - g_rpc_req = &get_raids_req; - g_rpc_req_size = sizeof(get_raids_req); - g_rpc_err = 0; - g_json_decode_obj_construct = 0; + create_get_raids_req(&get_raids_req, "offline", 0); spdk_rpc_get_raid_bdevs(NULL, NULL); CU_ASSERT(g_rpc_err == 0); CU_ASSERT(g_get_raids_count == 0); - get_raids_req.category = strdup("invalid_category"); - g_rpc_req = &get_raids_req; - g_rpc_req_size = sizeof(get_raids_req); - g_rpc_err = 0; - g_json_decode_obj_construct = 0; + create_get_raids_req(&get_raids_req, "invalid_category", 0); spdk_rpc_get_raid_bdevs(NULL, NULL); CU_ASSERT(g_rpc_err == 1); CU_ASSERT(g_get_raids_count == 0); - get_raids_req.category = strdup("all"); - g_rpc_req = &get_raids_req; - g_rpc_req_size = sizeof(get_raids_req); - g_rpc_err = 0; - g_json_decode_obj_err = 1; - g_json_decode_obj_construct = 0; + create_get_raids_req(&get_raids_req, "all", 1); spdk_rpc_get_raid_bdevs(NULL, NULL); CU_ASSERT(g_rpc_err == 1); - g_json_decode_obj_err = 0; free(get_raids_req.category); CU_ASSERT(g_get_raids_count == 0); - get_raids_req.category = strdup("all"); - g_rpc_req = &get_raids_req; - g_rpc_req_size = sizeof(get_raids_req); - g_rpc_err = 0; - g_json_decode_obj_construct = 0; + create_get_raids_req(&get_raids_req, "all", 0); spdk_rpc_get_raid_bdevs(NULL, NULL); CU_ASSERT(g_rpc_err == 0); CU_ASSERT(g_get_raids_count == g_max_raids); for (i = 0; i < g_get_raids_count; i++) { free(g_get_raids_output[i]); } - g_get_raids_count = 0; for (i = 0; i < g_max_raids; i++) { SPDK_CU_ASSERT_FATAL(construct_req[i].name != NULL); @@ -2012,7 +1998,6 @@ test_multi_raid_no_io(void) verify_raid_config_present(name, false); verify_raid_bdev_present(name, false); } - g_test_multi_raids = 0; raid_bdev_exit(); for (i = 0; i < g_max_raids; i++) { free_test_req(&construct_req[i]);