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 <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I03e12e8d77872634a65a94b4cd4092554e376b13
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/464480
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
This commit is contained in:
Shuhei Matsumoto 2019-08-08 10:34:31 +09:00 committed by Changpeng Liu
parent 898c67d722
commit cdde42d52e

View File

@ -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_construct = 1;
g_json_decode_obj_err = json_decode_obj_err; g_json_decode_obj_err = json_decode_obj_err;
g_config_level_create = 0; g_config_level_create = 0;
g_test_multi_raids = 0;
} }
static void 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); create_test_req(r, raid_name, bbdev_start_idx, create_base_bdev);
g_config_level_create = 1; g_config_level_create = 1;
g_test_multi_raids = 0;
} }
static void 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_construct = 0;
g_json_decode_obj_err = json_decode_obj_err; g_json_decode_obj_err = json_decode_obj_err;
g_config_level_create = 0; 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 static void
@ -1924,84 +1944,50 @@ test_multi_raid_no_io(void)
verify_raid_bdev(&construct_req[i], true, RAID_BDEV_STATE_ONLINE); verify_raid_bdev(&construct_req[i], true, RAID_BDEV_STATE_ONLINE);
} }
get_raids_req.category = strdup("all"); create_get_raids_req(&get_raids_req, "all", 0);
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;
spdk_rpc_get_raid_bdevs(NULL, NULL); spdk_rpc_get_raid_bdevs(NULL, NULL);
CU_ASSERT(g_rpc_err == 0); CU_ASSERT(g_rpc_err == 0);
verify_get_raids(construct_req, g_max_raids, g_get_raids_output, g_get_raids_count); 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++) { for (i = 0; i < g_get_raids_count; i++) {
free(g_get_raids_output[i]); free(g_get_raids_output[i]);
} }
g_get_raids_count = 0;
get_raids_req.category = strdup("online"); create_get_raids_req(&get_raids_req, "online", 0);
g_rpc_req = &get_raids_req;
g_rpc_req_size = sizeof(get_raids_req);
g_rpc_err = 0;
g_json_decode_obj_construct = 0;
spdk_rpc_get_raid_bdevs(NULL, NULL); spdk_rpc_get_raid_bdevs(NULL, NULL);
CU_ASSERT(g_rpc_err == 0); CU_ASSERT(g_rpc_err == 0);
verify_get_raids(construct_req, g_max_raids, g_get_raids_output, g_get_raids_count); 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++) { for (i = 0; i < g_get_raids_count; i++) {
free(g_get_raids_output[i]); free(g_get_raids_output[i]);
} }
g_get_raids_count = 0;
get_raids_req.category = strdup("configuring"); create_get_raids_req(&get_raids_req, "configuring", 0);
g_rpc_req = &get_raids_req;
g_rpc_req_size = sizeof(get_raids_req);
g_rpc_err = 0;
g_json_decode_obj_construct = 0;
spdk_rpc_get_raid_bdevs(NULL, NULL); spdk_rpc_get_raid_bdevs(NULL, NULL);
CU_ASSERT(g_rpc_err == 0); CU_ASSERT(g_rpc_err == 0);
CU_ASSERT(g_get_raids_count == 0); CU_ASSERT(g_get_raids_count == 0);
get_raids_req.category = strdup("offline"); create_get_raids_req(&get_raids_req, "offline", 0);
g_rpc_req = &get_raids_req;
g_rpc_req_size = sizeof(get_raids_req);
g_rpc_err = 0;
g_json_decode_obj_construct = 0;
spdk_rpc_get_raid_bdevs(NULL, NULL); spdk_rpc_get_raid_bdevs(NULL, NULL);
CU_ASSERT(g_rpc_err == 0); CU_ASSERT(g_rpc_err == 0);
CU_ASSERT(g_get_raids_count == 0); CU_ASSERT(g_get_raids_count == 0);
get_raids_req.category = strdup("invalid_category"); create_get_raids_req(&get_raids_req, "invalid_category", 0);
g_rpc_req = &get_raids_req;
g_rpc_req_size = sizeof(get_raids_req);
g_rpc_err = 0;
g_json_decode_obj_construct = 0;
spdk_rpc_get_raid_bdevs(NULL, NULL); spdk_rpc_get_raid_bdevs(NULL, NULL);
CU_ASSERT(g_rpc_err == 1); CU_ASSERT(g_rpc_err == 1);
CU_ASSERT(g_get_raids_count == 0); CU_ASSERT(g_get_raids_count == 0);
get_raids_req.category = strdup("all"); create_get_raids_req(&get_raids_req, "all", 1);
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;
spdk_rpc_get_raid_bdevs(NULL, NULL); spdk_rpc_get_raid_bdevs(NULL, NULL);
CU_ASSERT(g_rpc_err == 1); CU_ASSERT(g_rpc_err == 1);
g_json_decode_obj_err = 0;
free(get_raids_req.category); free(get_raids_req.category);
CU_ASSERT(g_get_raids_count == 0); CU_ASSERT(g_get_raids_count == 0);
get_raids_req.category = strdup("all"); create_get_raids_req(&get_raids_req, "all", 0);
g_rpc_req = &get_raids_req;
g_rpc_req_size = sizeof(get_raids_req);
g_rpc_err = 0;
g_json_decode_obj_construct = 0;
spdk_rpc_get_raid_bdevs(NULL, NULL); spdk_rpc_get_raid_bdevs(NULL, NULL);
CU_ASSERT(g_rpc_err == 0); CU_ASSERT(g_rpc_err == 0);
CU_ASSERT(g_get_raids_count == g_max_raids); CU_ASSERT(g_get_raids_count == g_max_raids);
for (i = 0; i < g_get_raids_count; i++) { for (i = 0; i < g_get_raids_count; i++) {
free(g_get_raids_output[i]); free(g_get_raids_output[i]);
} }
g_get_raids_count = 0;
for (i = 0; i < g_max_raids; i++) { for (i = 0; i < g_max_raids; i++) {
SPDK_CU_ASSERT_FATAL(construct_req[i].name != NULL); 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_config_present(name, false);
verify_raid_bdev_present(name, false); verify_raid_bdev_present(name, false);
} }
g_test_multi_raids = 0;
raid_bdev_exit(); raid_bdev_exit();
for (i = 0; i < g_max_raids; i++) { for (i = 0; i < g_max_raids; i++) {
free_test_req(&construct_req[i]); free_test_req(&construct_req[i]);