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