I just realized there is no call to the  term_global or init_thread and
term_thread see
http://docs.opendataplane.org/arch/html/group__odp__initialization.html

On 30 October 2014 22:20, Hongbo Zhang <[email protected]> wrote:

>
>
> On 31 October 2014 00:48, yan.songming <[email protected]> wrote:
>
>> From: "yan.songming" <[email protected]>
>>
>>
> You may need commit comments here, describing what is this patch briefly.
> and you still need the "sign-off-by:" tag here.
>
> ---
>>  test/cunit/Makefile.am      |   4 +-
>>  test/cunit/odp_queue_test.c | 168
>> ++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 171 insertions(+), 1 deletion(-)
>>  create mode 100644 test/cunit/odp_queue_test.c
>>
>> diff --git a/test/cunit/Makefile.am b/test/cunit/Makefile.am
>> index 927a5a5..46f46c9 100644
>> --- a/test/cunit/Makefile.am
>> +++ b/test/cunit/Makefile.am
>> @@ -6,8 +6,10 @@ AM_LDFLAGS += -L$(CUNIT_PATH)/lib
>>  if ODP_CUNIT_ENABLED
>>  TESTS = ${bin_PROGRAMS}
>>  check_PROGRAMS = ${bin_PROGRAMS}
>> -bin_PROGRAMS = odp_init
>> +bin_PROGRAMS = odp_init odp_queue
>>  odp_init_LDFLAGS = $(AM_LDFLAGS) -static -lcunit
>> +odp_queue_LDFLAGS = $(AM_LDFLAGS) -static -lcunit
>>  endif
>>
>> +dist_odp_queue_SOURCES = odp_queue_test.c
>>  dist_odp_init_SOURCES = odp_init_test.c
>> diff --git a/test/cunit/odp_queue_test.c b/test/cunit/odp_queue_test.c
>> new file mode 100644
>> index 0000000..816ef22
>> --- /dev/null
>> +++ b/test/cunit/odp_queue_test.c
>> @@ -0,0 +1,168 @@
>> +/* Copyright (c) 2014, Linaro Limited
>> + * All rights reserved.
>> + *
>> + * SPDX-License-Identifier:     BSD-3-Clause
>> + */
>> +
>> +#include "odp.h"
>> +#include "CUnit/Basic.h"
>> +#include "odp_queue.h"
>> +#include "odp_buffer.h"
>> +#include "odp_shared_memory.h"
>> +#include "odp_buffer_pool.h"
>> +
>> +#define MAX_BUFFER_QUEUE        (8)             /**< Max enqueu buf num
>> */
>> +#define MSG_POOL_SIZE           (4*1024*1024)   /**< Message pool size */
>> +
>> +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 (pool_base == NULL) {
>> +               ODP_ERR("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 (pool == ODP_BUFFER_POOL_INVALID) {
>> +               ODP_ERR("Pool create failed.\n");
>> +               return -1;
>> +       }
>> +    return 0;
>> +}
>> +
>> +static void test_odp_queue(void)
>> +{
>> +    odp_queue_t       queue_creatid;
>> +    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;
>> +
>> +    int          i;
>> +    odp_buffer_t buf;
>> +    void         *pRtn = NULL;
>> +
>> +    /* test odp_queue_create */
>> +    memset(&param, 0, sizeof(param));
>> +    param.sched.sync  = ODP_SCHED_SYNC_NONE;
>> +
>> +    queue_creatid = odp_queue_create("test_queue", ODP_QUEUE_TYPE_POLL,
>> &param);
>> +    CU_ASSERT(queue_creatid != ODP_QUEUE_INVALID);
>> +
>> +    /* test odp_queue_type */
>> +    CU_ASSERT_EQUAL(ODP_QUEUE_TYPE_POLL, odp_queue_type(queue_creatid));
>> +
>> +    /* test odp_queue_type */
>> +    CU_ASSERT_EQUAL(ODP_SCHED_SYNC_NONE,
>> odp_queue_sched_type(queue_creatid));
>> +
>> +    /* test odp_queue_lookup */
>> +    queue_id = odp_queue_lookup("test_queue");
>> +    CU_ASSERT_EQUAL(queue_creatid, queue_id);
>> +
>> +    /* test odp_queue_set_context */
>> +    CU_ASSERT(0 == odp_queue_set_context(queue_id, &Queue_Contest));
>> +
>> +    /* test  odp_queue_get_context*/
>> +    pRtn = odp_queue_get_context(queue_id);
>> +    CU_ASSERT(&Queue_Contest == (int *)pRtn);
>> +
>> +    /* inite buffer pool */
>> +    CU_ASSERT_FATAL(0 == test_odp_buffer_pool_init());
>> +
>> +    /* apply for buffer */
>> +    msg_pool = odp_buffer_pool_lookup("msg_pool");
>> +    buf = odp_buffer_alloc(msg_pool);
>> +
>> +    /* test  odp_queue_deq and odp_queue_deq */
>> +    odp_queue_enq(queue_id, buf);
>> +    CU_ASSERT_EQUAL(buf, odp_queue_deq(queue_id));
>> +    odp_buffer_free(buf);
>> +
>> +    /* apply for mutili buffer */
>> +    for(i=0; i<MAX_BUFFER_QUEUE; i++) {
>> +        Enbuf[i] = odp_buffer_alloc(msg_pool);
>> +    }
>> +
>> +    /* test odp_queue_enq_multi  and odp_queue_enq_multi */
>> +    odp_queue_enq_multi(queue_id, Enbuf, MAX_BUFFER_QUEUE);
>> +    odp_queue_deq_multi(queue_id, Debuf, MAX_BUFFER_QUEUE);
>> +
>> +    for(i=0; i<MAX_BUFFER_QUEUE; i++) {
>> +        /* test odp_queue_deq_multi */
>> +        CU_ASSERT_EQUAL(Enbuf[i], Debuf[i]);
>> +               /*  buffer free */
>> +        odp_buffer_free(Enbuf[i]);
>> +    }
>> +    return;
>> +}
>> +
>> +static void test_odp_init_global(void)
>> +{
>> +       int status;
>> +       status = odp_init_global(NULL, NULL);
>> +       CU_ASSERT_FATAL(status == 0);
>> +}
>> +
>> +static int init(void)
>> +{
>> +       printf("\tODP version: %s\n", odp_version_api_str());
>> +       return 0;
>> +}
>> +
>> +static int finalise(void)
>> +{
>> +       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 a suite to the registry */
>> +       ptr_suite = CU_add_suite("odp intalization", init, finalise);
>> +       if (NULL == ptr_suite) {
>> +               CU_cleanup_registry();
>> +               return CU_get_error();
>> +       }
>> +       /* add the tests to the suite */
>> +       if (NULL == CU_ADD_TEST(ptr_suite, test_odp_init_global)) {
>> +               CU_cleanup_registry();
>> +               return CU_get_error();
>> +       }
>> +
>> +
>> +       ptr_suite = CU_add_suite("odp queue", init, finalise);
>> +       if (NULL == ptr_suite) {
>> +               CU_cleanup_registry();
>> +               return CU_get_error();
>> +       }
>> +
>> +       /* add the tests to the queue suite */
>> +       if (NULL == CU_ADD_TEST(ptr_suite, test_odp_queue)) {
>> +               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
>>
>
>
> _______________________________________________
> 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