From 1e3ee7e738c1a0c428d09bb25b83d5002dbfc53b Mon Sep 17 00:00:00 2001 From: Janne Peltonen Date: Wed, 25 May 2022 17:30:14 +0300 Subject: validation: improve testing of default values set by init functions Improve testing of the default values set by various init functions by checking the defaults twice: once after memsetting the to-be-initialized structure to zero before the init call and once after memsetting to 0xff. This way missing initialization can always be detected. Signed-off-by: Janne Peltonen Reviewed-by: Tuomas Taipale --- test/validation/api/queue/queue.c | 42 ++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 14 deletions(-) (limited to 'test/validation/api/queue/queue.c') diff --git a/test/validation/api/queue/queue.c b/test/validation/api/queue/queue.c index ec6863628..ff97cdf63 100644 --- a/test/validation/api/queue/queue.c +++ b/test/validation/api/queue/queue.c @@ -1,5 +1,5 @@ /* Copyright (c) 2014-2018, Linaro Limited - * Copyright (c) 2021, Nokia + * Copyright (c) 2021-2022, Nokia * All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause @@ -134,6 +134,32 @@ static void queue_test_capa(void) CU_ASSERT(capa.max_queues >= capa.plain.waitfree.max_num); } +static void test_defaults(uint8_t fill) +{ + odp_queue_param_t param; + + memset(¶m, fill, sizeof(param)); + odp_queue_param_init(¶m); + CU_ASSERT(param.type == ODP_QUEUE_TYPE_PLAIN); + CU_ASSERT(param.enq_mode == ODP_QUEUE_OP_MT); + CU_ASSERT(param.deq_mode == ODP_QUEUE_OP_MT); + CU_ASSERT(param.sched.prio == odp_schedule_default_prio()); + CU_ASSERT(param.sched.sync == ODP_SCHED_SYNC_PARALLEL); + CU_ASSERT(param.sched.group == ODP_SCHED_GROUP_ALL); + CU_ASSERT(param.sched.lock_count == 0); + CU_ASSERT(param.order == ODP_QUEUE_ORDER_KEEP); + CU_ASSERT(param.nonblocking == ODP_BLOCKING); + CU_ASSERT(param.context == NULL); + CU_ASSERT(param.context_len == 0); + CU_ASSERT(param.size == 0); +} + +static void queue_test_param_init(void) +{ + test_defaults(0); + test_defaults(0xff); +} + static void queue_test_max_plain(void) { odp_queue_capability_t capa; @@ -607,20 +633,7 @@ static void queue_test_param(void) odp_queue_param_t qparams; odp_buffer_t enbuf; - /* Defaults */ odp_queue_param_init(&qparams); - CU_ASSERT(qparams.type == ODP_QUEUE_TYPE_PLAIN); - CU_ASSERT(qparams.enq_mode == ODP_QUEUE_OP_MT); - CU_ASSERT(qparams.deq_mode == ODP_QUEUE_OP_MT); - CU_ASSERT(qparams.sched.prio == odp_schedule_default_prio()); - CU_ASSERT(qparams.sched.sync == ODP_SCHED_SYNC_PARALLEL); - CU_ASSERT(qparams.sched.group == ODP_SCHED_GROUP_ALL); - CU_ASSERT(qparams.sched.lock_count == 0); - CU_ASSERT(qparams.order == ODP_QUEUE_ORDER_KEEP); - CU_ASSERT(qparams.nonblocking == ODP_BLOCKING); - CU_ASSERT(qparams.context == NULL); - CU_ASSERT(qparams.context_len == 0); - CU_ASSERT(qparams.size == 0); /* Schedule type queue */ qparams.type = ODP_QUEUE_TYPE_SCHED; @@ -985,6 +998,7 @@ static void queue_test_mt_plain_nonblock_lf(void) odp_testinfo_t queue_suite[] = { ODP_TEST_INFO(queue_test_capa), + ODP_TEST_INFO(queue_test_param_init), ODP_TEST_INFO(queue_test_mode), ODP_TEST_INFO(queue_test_max_plain), ODP_TEST_INFO(queue_test_burst), -- cgit v1.2.3