test/zone: Cleanup mocked rpc request handling
Unify function names and memory handling for create/delete rpc mock functions in unit test for block zone bdev. Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com> Change-Id: Ib8613a78623279447cd5a6b9cf0c686e15b69d32 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/479644 Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com> Community-CI: SPDK CI Jenkins <sys_sgci@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
parent
351c38d570
commit
214483e834
@ -49,7 +49,6 @@ uint8_t g_rpc_err;
|
||||
uint8_t g_json_decode_obj_construct;
|
||||
static TAILQ_HEAD(, spdk_bdev) g_bdev_list = TAILQ_HEAD_INITIALIZER(g_bdev_list);
|
||||
void *g_rpc_req = NULL;
|
||||
uint32_t g_rpc_req_size = 0;
|
||||
static struct spdk_thread *g_thread;
|
||||
|
||||
DEFINE_STUB_V(spdk_bdev_module_list_add, (struct spdk_bdev_module *bdev_module));
|
||||
@ -169,20 +168,25 @@ spdk_json_decode_object(const struct spdk_json_val *values,
|
||||
const struct spdk_json_object_decoder *decoders, size_t num_decoders,
|
||||
void *out)
|
||||
{
|
||||
struct rpc_construct_zone_block *req, *_out;
|
||||
struct rpc_construct_zone_block *construct, *_construct;
|
||||
struct rpc_delete_zone_block *delete, *_delete;
|
||||
|
||||
if (g_json_decode_obj_construct) {
|
||||
req = g_rpc_req;
|
||||
_out = out;
|
||||
construct = g_rpc_req;
|
||||
_construct = out;
|
||||
|
||||
_out->name = strdup(req->name);
|
||||
SPDK_CU_ASSERT_FATAL(_out->name != NULL);
|
||||
_out->base_bdev = strdup(req->base_bdev);
|
||||
SPDK_CU_ASSERT_FATAL(_out->base_bdev != NULL);
|
||||
_out->zone_capacity = req->zone_capacity;
|
||||
_out->optimal_open_zones = req->optimal_open_zones;
|
||||
_construct->name = strdup(construct->name);
|
||||
SPDK_CU_ASSERT_FATAL(_construct->name != NULL);
|
||||
_construct->base_bdev = strdup(construct->base_bdev);
|
||||
SPDK_CU_ASSERT_FATAL(_construct->base_bdev != NULL);
|
||||
_construct->zone_capacity = construct->zone_capacity;
|
||||
_construct->optimal_open_zones = construct->optimal_open_zones;
|
||||
} else {
|
||||
memcpy(out, g_rpc_req, g_rpc_req_size);
|
||||
delete = g_rpc_req;
|
||||
_delete = out;
|
||||
|
||||
_delete->name = strdup(delete->name);
|
||||
SPDK_CU_ASSERT_FATAL(_delete->name != NULL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -300,9 +304,14 @@ verify_bdev_present(const char *name, bool presence)
|
||||
}
|
||||
|
||||
static void
|
||||
create_test_req(struct rpc_construct_zone_block *r, const char *vbdev_name, const char *base_name,
|
||||
initialize_create_req(const char *vbdev_name, const char *base_name,
|
||||
uint64_t zone_capacity, uint64_t optimal_open_zones, bool create_base_bdev)
|
||||
{
|
||||
struct rpc_construct_zone_block *r;
|
||||
|
||||
r = g_rpc_req = calloc(1, sizeof(struct rpc_construct_zone_block));
|
||||
SPDK_CU_ASSERT_FATAL(r != NULL);
|
||||
|
||||
r->name = strdup(vbdev_name);
|
||||
SPDK_CU_ASSERT_FATAL(r->name != NULL);
|
||||
r->base_bdev = strdup(base_name);
|
||||
@ -313,45 +322,49 @@ create_test_req(struct rpc_construct_zone_block *r, const char *vbdev_name, cons
|
||||
if (create_base_bdev == true) {
|
||||
create_nvme_bdev();
|
||||
}
|
||||
g_rpc_req = r;
|
||||
g_rpc_req_size = sizeof(*r);
|
||||
}
|
||||
|
||||
static void
|
||||
free_test_req(struct rpc_construct_zone_block *r)
|
||||
{
|
||||
free(r->name);
|
||||
free(r->base_bdev);
|
||||
|
||||
g_rpc_req = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
initialize_create_req(struct rpc_construct_zone_block *r, const char *vbdev_name,
|
||||
const char *base_name,
|
||||
uint64_t zone_capacity, uint64_t optimal_open_zones, bool create_base_bdev)
|
||||
{
|
||||
create_test_req(r, vbdev_name, base_name, zone_capacity, optimal_open_zones, create_base_bdev);
|
||||
|
||||
g_rpc_err = 0;
|
||||
g_json_decode_obj_construct = 1;
|
||||
}
|
||||
|
||||
static void
|
||||
create_delete_req(struct rpc_delete_zone_block *r, const char *vbdev_name)
|
||||
free_create_req(void)
|
||||
{
|
||||
struct rpc_construct_zone_block *r = g_rpc_req;
|
||||
|
||||
free(r->name);
|
||||
free(r->base_bdev);
|
||||
free(r);
|
||||
g_rpc_req = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
initialize_delete_req(const char *vbdev_name)
|
||||
{
|
||||
struct rpc_delete_zone_block *r;
|
||||
|
||||
r = g_rpc_req = calloc(1, sizeof(struct rpc_delete_zone_block));
|
||||
SPDK_CU_ASSERT_FATAL(r != NULL);
|
||||
r->name = strdup(vbdev_name);
|
||||
SPDK_CU_ASSERT_FATAL(r->name != NULL);
|
||||
|
||||
g_rpc_req = r;
|
||||
g_rpc_req_size = sizeof(*r);
|
||||
g_rpc_err = 0;
|
||||
g_json_decode_obj_construct = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
verify_zone_config(struct rpc_construct_zone_block *r, bool presence)
|
||||
free_delete_req(void)
|
||||
{
|
||||
struct rpc_delete_zone_block *r = g_rpc_req;
|
||||
|
||||
free(r->name);
|
||||
free(r);
|
||||
g_rpc_req = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
verify_zone_config(bool presence)
|
||||
{
|
||||
struct rpc_construct_zone_block *r = g_rpc_req;
|
||||
struct bdev_zone_block_config *cfg = NULL;
|
||||
|
||||
TAILQ_FOREACH(cfg, &g_bdev_configs, link) {
|
||||
@ -374,8 +387,9 @@ verify_zone_config(struct rpc_construct_zone_block *r, bool presence)
|
||||
}
|
||||
|
||||
static void
|
||||
verify_zone_bdev(struct rpc_construct_zone_block *r, bool presence)
|
||||
verify_zone_bdev(bool presence)
|
||||
{
|
||||
struct rpc_construct_zone_block *r = g_rpc_req;
|
||||
struct bdev_zone_block *bdev;
|
||||
bool bdev_found = false;
|
||||
|
||||
@ -412,27 +426,23 @@ static void
|
||||
send_create_vbdev(char *vdev_name, char *name, uint64_t zone_capacity, uint64_t optimal_open_zones,
|
||||
bool create_bdev, bool success)
|
||||
{
|
||||
struct rpc_construct_zone_block req;
|
||||
|
||||
initialize_create_req(&req, vdev_name, name, zone_capacity, optimal_open_zones, create_bdev);
|
||||
initialize_create_req(vdev_name, name, zone_capacity, optimal_open_zones, create_bdev);
|
||||
rpc_zone_block_create(NULL, NULL);
|
||||
CU_ASSERT(g_rpc_err != success);
|
||||
verify_zone_config(&req, success);
|
||||
verify_zone_bdev(&req, success);
|
||||
free_test_req(&req);
|
||||
verify_zone_config(success);
|
||||
verify_zone_bdev(success);
|
||||
free_create_req();
|
||||
}
|
||||
|
||||
static void
|
||||
send_delete_vbdev(char *name, bool success)
|
||||
{
|
||||
struct rpc_delete_zone_block delete_req;
|
||||
|
||||
create_delete_req(&delete_req, name);
|
||||
initialize_delete_req(name);
|
||||
rpc_zone_block_delete(NULL, NULL);
|
||||
verify_config_present(name, false);
|
||||
verify_bdev_present(name, false);
|
||||
CU_ASSERT(g_rpc_err != success);
|
||||
g_rpc_req = NULL;
|
||||
free_delete_req();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -447,7 +457,6 @@ static void
|
||||
test_zone_block_create(void)
|
||||
{
|
||||
struct spdk_bdev *bdev;
|
||||
struct rpc_construct_zone_block req;
|
||||
char *name = "Nvme0n1";
|
||||
size_t num_zones = 20;
|
||||
size_t zone_capacity = BLOCK_CNT / num_zones;
|
||||
@ -457,15 +466,15 @@ test_zone_block_create(void)
|
||||
/* Create zoned virtual device before nvme device */
|
||||
verify_config_present("zone_dev1", false);
|
||||
verify_bdev_present("zone_dev1", false);
|
||||
initialize_create_req(&req, "zone_dev1", name, zone_capacity, 1, false);
|
||||
initialize_create_req("zone_dev1", name, zone_capacity, 1, false);
|
||||
rpc_zone_block_create(NULL, NULL);
|
||||
CU_ASSERT(g_rpc_err == 0);
|
||||
verify_zone_config(&req, true);
|
||||
verify_zone_bdev(&req, false);
|
||||
verify_zone_config(true);
|
||||
verify_zone_bdev(false);
|
||||
bdev = create_nvme_bdev();
|
||||
zone_block_examine(bdev);
|
||||
verify_zone_bdev(&req, true);
|
||||
free_test_req(&req);
|
||||
verify_zone_bdev(true);
|
||||
free_create_req();
|
||||
|
||||
/* Delete bdev */
|
||||
send_delete_vbdev("zone_dev1", true);
|
||||
|
Loading…
Reference in New Issue
Block a user