Test different queue enqueue and dequeue mode combinations.

Signed-off-by: Petri Savolainen <[email protected]>
---
 test/validation/queue/queue.c | 41 +++++++++++++++++++++++++++++++++++++++++
 test/validation/queue/queue.h |  1 +
 2 files changed, 42 insertions(+)

diff --git a/test/validation/queue/queue.c b/test/validation/queue/queue.c
index b554aa3..0516469 100644
--- a/test/validation/queue/queue.c
+++ b/test/validation/queue/queue.c
@@ -95,6 +95,46 @@ void queue_test_capa(void)
                CU_ASSERT(odp_queue_destroy(queue[i]) == 0);
 }
 
+void queue_test_mode(void)
+{
+       odp_queue_param_t qparams;
+       odp_queue_t queue;
+       int i, j;
+       odp_queue_op_mode_t mode[3] = { ODP_QUEUE_OP_MT,
+                                       ODP_QUEUE_OP_MT_UNSAFE,
+                                       ODP_QUEUE_OP_DISABLED };
+
+       odp_queue_param_init(&qparams);
+
+       /* Plain queue modes */
+       for (i = 0; i < 3; i++) {
+               for (j = 0; j < 3; j++) {
+                       /* Should not disable both enq and deq */
+                       if (i == 2 && j == 2)
+                               break;
+
+                       qparams.enq_mode = mode[i];
+                       qparams.deq_mode = mode[j];
+                       queue = odp_queue_create("test_queue", &qparams);
+                       CU_ASSERT(queue != ODP_QUEUE_INVALID);
+                       if (queue != ODP_QUEUE_INVALID)
+                               CU_ASSERT(odp_queue_destroy(queue) == 0);
+               }
+       }
+
+       odp_queue_param_init(&qparams);
+       qparams.type = ODP_QUEUE_TYPE_SCHED;
+
+       /* Scheduled queue modes. Dequeue mode is fixed. */
+       for (i = 0; i < 3; i++) {
+               qparams.enq_mode = mode[i];
+               queue = odp_queue_create("test_queue", &qparams);
+               CU_ASSERT(queue != ODP_QUEUE_INVALID);
+               if (queue != ODP_QUEUE_INVALID)
+                       CU_ASSERT(odp_queue_destroy(queue) == 0);
+       }
+}
+
 void queue_test_param(void)
 {
        odp_queue_t queue_creat_id, queue_id;
@@ -247,6 +287,7 @@ void queue_test_info(void)
 
 odp_testinfo_t queue_suite[] = {
        ODP_TEST_INFO(queue_test_capa),
+       ODP_TEST_INFO(queue_test_mode),
        ODP_TEST_INFO(queue_test_param),
        ODP_TEST_INFO(queue_test_info),
        ODP_TEST_INFO_NULL,
diff --git a/test/validation/queue/queue.h b/test/validation/queue/queue.h
index 1d3164d..6b787b1 100644
--- a/test/validation/queue/queue.h
+++ b/test/validation/queue/queue.h
@@ -11,6 +11,7 @@
 
 /* test functions: */
 void queue_test_capa(void);
+void queue_test_mode(void);
 void queue_test_param(void);
 void queue_test_info(void);
 
-- 
2.8.1

_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to