On 9 November 2014 08:41, Yan Songming <[email protected]> wrote:

> From: "yan.songming" <[email protected]>
>
> Add the cunit test for none syne queue. Test the base queue function
>
> Signed-off-by: yan.songming <[email protected]>
> ---
> Fix spelling problem and commend problem. Add term_local and term_global.
> Move cunit queue test to test_odp_queue_base for none syn queue.
> ---
>  test/cunit/Makefile.am      |   8 ++-
>  test/cunit/odp_queue_test.c | 160
> ++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 165 insertions(+), 3 deletions(-)
>  create mode 100644 test/cunit/odp_queue_test.c
>
> diff --git a/test/cunit/Makefile.am b/test/cunit/Makefile.am
> index 927a5a5..74a0deb 100644
> --- a/test/cunit/Makefile.am
> +++ b/test/cunit/Makefile.am
> @@ -1,13 +1,15 @@
>  include $(top_srcdir)/test/Makefile.inc
>
>  AM_CFLAGS += -I$(CUNIT_PATH)/include
> -AM_LDFLAGS += -L$(CUNIT_PATH)/lib
> +AM_LDFLAGS += -L$(CUNIT_PATH)/lib -static -lcunit
>
>  if ODP_CUNIT_ENABLED
>  TESTS = ${bin_PROGRAMS}
>  check_PROGRAMS = ${bin_PROGRAMS}
> -bin_PROGRAMS = odp_init
> -odp_init_LDFLAGS = $(AM_LDFLAGS) -static -lcunit
> +bin_PROGRAMS = odp_init odp_queue
> +odp_init_LDFLAGS = $(AM_LDFLAGS)
> +odp_queue_LDFLAGS = $(AM_LDFLAGS)
>  endif
>
>  dist_odp_init_SOURCES = odp_init_test.c
> +dist_odp_queue_SOURCES = odp_queue_test.c
> diff --git a/test/cunit/odp_queue_test.c b/test/cunit/odp_queue_test.c
> new file mode 100644
> index 0000000..5040f13
> --- /dev/null
> +++ b/test/cunit/odp_queue_test.c
> @@ -0,0 +1,160 @@
> +/* Copyright (c) 2014, Linaro Limited
> + * All rights reserved.
> + *
> + * SPDX-License-Identifier:     BSD-3-Clause
> + */
> +
> +#include "odp.h"
> +#include "CUnit/Basic.h"
> +
> +#define MAX_BUFFER_QUEUE        (8)
> +#define MSG_POOL_SIZE           (4*1024*1024)
> +#define CONFIG_MAX_ITERATION    (100)
> +
> +static int queue_contest = 0xff;
> +
> +static int test_odp_buffer_pool_init(void)
> +{
> +       odp_buffer_pool_t pool;
> +       void *pool_base;
> +       odp_shm_t shm;
> +
> +       shm = odp_shm_reserve("msg_pool",
> +                             MSG_POOL_SIZE, ODP_CACHE_LINE_SIZE, 0);
> +
> +       pool_base = odp_shm_addr(shm);
> +
> +       if (NULL == pool_base) {
> +               printf("Shared memory reserve failed.\n");
> +               return -1;
> +       }
> +
> +       pool = odp_buffer_pool_create("msg_pool", pool_base,
> MSG_POOL_SIZE, 0,
> +                                     ODP_CACHE_LINE_SIZE,
> ODP_BUFFER_TYPE_RAW);
> +
> +       if (ODP_BUFFER_POOL_INVALID == pool) {
> +               printf("Pool create failed.\n");
> +               return -1;
> +       }
> +       return 0;
> +}
> +
> +static void test_odp_queue_base(void)
> +{
> +       odp_queue_t queue_creat_id;
> +       odp_queue_t queue_id;
> +       odp_buffer_t enbuf[MAX_BUFFER_QUEUE];
> +       odp_buffer_t debuf[MAX_BUFFER_QUEUE];
> +       odp_buffer_pool_t msg_pool;
> +       odp_queue_param_t param;
> +       odp_buffer_t *pbuf_tmp;
> +       int i;
> +       int nr_deq_entries = 0;
> +       int max_iteration = CONFIG_MAX_ITERATION;
> +       int deq_ret;
> +       odp_buffer_t buf;
> +       void *prtn = NULL;
> +
> +       memset(&param, 0, sizeof(param));
> +       param.sched.sync  = ODP_SCHED_SYNC_NONE;
> +
> +       queue_creat_id = odp_queue_create("test_queue",
> +                                         ODP_QUEUE_TYPE_POLL, &param);
> +       CU_ASSERT(ODP_QUEUE_INVALID != queue_creat_id);
> +
> +       CU_ASSERT_EQUAL(ODP_QUEUE_TYPE_POLL,
> +                       odp_queue_type(queue_creat_id));
> +       CU_ASSERT_EQUAL(ODP_SCHED_SYNC_NONE,
> +                       odp_queue_sched_type(queue_creat_id));
> +
> +       queue_id = odp_queue_lookup("test_queue");
> +       CU_ASSERT_EQUAL(queue_creat_id, queue_id);
> +
> +       CU_ASSERT(0 == odp_queue_set_context(queue_id, &queue_contest));
> +
> +       prtn = odp_queue_get_context(queue_id);
> +       CU_ASSERT(&queue_contest == (int *)prtn);
> +
> +       msg_pool = odp_buffer_pool_lookup("msg_pool");
> +       buf = odp_buffer_alloc(msg_pool);
> +
> +       odp_queue_enq(queue_id, buf);
> +       CU_ASSERT_EQUAL(buf, odp_queue_deq(queue_id));
> +       odp_buffer_free(buf);
> +
> +       for (i = 0; i < MAX_BUFFER_QUEUE; i++)
> +               enbuf[i] = odp_buffer_alloc(msg_pool);
> +
> +       /*
> +        * odp_queue_enq_multi may return 0..n buffers due to the resource
> +        * constraints in the implementation at that given point of time.
> +        */
> +       odp_queue_enq_multi(queue_id, enbuf, MAX_BUFFER_QUEUE);
> +       pbuf_tmp = debuf;
> +       do {
> +               deq_ret  = odp_queue_deq_multi(queue_id, pbuf_tmp,
> +                                              MAX_BUFFER_QUEUE);
> +               nr_deq_entries += deq_ret;
> +               max_iteration--;
> +               pbuf_tmp += deq_ret;
> +               CU_ASSERT(max_iteration >= 0);
> +       } while (nr_deq_entries < MAX_BUFFER_QUEUE);
> +
> +       for (i = 0; i < MAX_BUFFER_QUEUE; i++) {
> +               CU_ASSERT_EQUAL(enbuf[i], debuf[i]);
> +               odp_buffer_free(enbuf[i]);
> +       }
> +
> +       return;
> +}
> +
> +static int init(void)
> +{
> +       if (0 != odp_init_global(NULL, NULL)) {
> +               printf("odp_init_global fail.\n");
> +               return -1;
> +       }
> +       if (0 != odp_init_local()) {
> +               printf("odp_init_local fail.\n");
> +               return -1;
> +       }
> +       if (0 != test_odp_buffer_pool_init()) {
> +               printf("test_odp_buffer_pool_init fail.\n");
> +               return -1;
> +       }
> +       return 0;
> +}
> +
> +static int finalize(void)
> +{
> +       odp_term_local();
> +       odp_term_global();
> +       return 0;
> +}
> +
> +int main(void)
> +{
> +       CU_pSuite ptr_suite = NULL;
> +
> +       /* initialize the CUnit test registry */
> +       if (CUE_SUCCESS != CU_initialize_registry())
> +               return CU_get_error();
> +
> +       /* add the tests to the queue suite */
> +       ptr_suite = CU_add_suite("odp queue", init, finalize);

+       if (NULL == ptr_suite) {
> +               CU_cleanup_registry();
> +               return CU_get_error();
> +       }
> +
> +       if (NULL == CU_ADD_TEST(ptr_suite, test_odp_queue_base)) {
>

"test_odp_queue_base"  is not very descriptive as a name for this test case
 "test_odp_queue_sunnyday" is a better name
if you change that I would add Reviewed-by


> +               CU_cleanup_registry();
> +               return CU_get_error();
> +       }
> +
> +       /* Run all tests using the CUnit Basic interface */
> +       CU_basic_set_mode(CU_BRM_VERBOSE);
> +       CU_basic_run_tests();
> +       CU_cleanup_registry();
> +       return CU_get_error();
> +}
> --
> 1.8.3.1
>
>
> _______________________________________________
> lng-odp mailing list
> [email protected]
> http://lists.linaro.org/mailman/listinfo/lng-odp
>



-- 
*Mike Holmes*
Linaro  Sr Technical Manager
LNG - ODP
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to