This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, master has been updated via 8e6e5e999ce3d9edb704e18bedf6bc0ebc6ecf79 (commit) via 1a6766a3b0b2befb065336d54fff735db62aa96f (commit) via f606e161748d68612b1a5668ae0184ac4909738d (commit) via a85a684948248d5e127f109622026e3bbc4be53d (commit) from b0401d8ed43c643905c84b9a576df925d4ad06e1 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 8e6e5e999ce3d9edb704e18bedf6bc0ebc6ecf79 Author: Petri Savolainen petri.savolainen@nokia.com Date: Wed Jun 22 16:09:57 2016 +0300
test: queue: do not dequeue from scheduled queue
Correct queue validation test to dequeue from a plain queue. Dequeue from a scheduled queue is not permitted. Also cleaned up code by converting CU_ASSERT_EQUAL(foo, bar) to CU_ASSERT(foo == bar). This was the only validation test, which used CU_ASSERT_EQUAL.
Signed-off-by: Petri Savolainen petri.savolainen@nokia.com Reviewed-and-tested-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/test/validation/queue/queue.c b/test/validation/queue/queue.c index 7ef9adf..be9c0dc 100644 --- a/test/validation/queue/queue.c +++ b/test/validation/queue/queue.c @@ -147,9 +147,9 @@ void queue_test_param(void) int i, deq_ret, ret; int nr_deq_entries = 0; int max_iteration = CONFIG_MAX_ITERATION; - void *prtn = NULL; odp_queue_param_t qparams;
+ /* Schedule type queue */ odp_queue_param_init(&qparams); qparams.type = ODP_QUEUE_TYPE_SCHED; qparams.sched.prio = ODP_SCHED_PRIO_LOWEST; @@ -160,23 +160,29 @@ void queue_test_param(void) CU_ASSERT(ODP_QUEUE_INVALID != queue); CU_ASSERT(odp_queue_to_u64(queue) != odp_queue_to_u64(ODP_QUEUE_INVALID)); - - CU_ASSERT_EQUAL(ODP_QUEUE_TYPE_SCHED, - odp_queue_type(queue)); - CU_ASSERT(queue == odp_queue_lookup("test_queue")); - - CU_ASSERT_EQUAL(ODP_SCHED_GROUP_WORKER, - odp_queue_sched_group(queue)); - CU_ASSERT_EQUAL(ODP_SCHED_PRIO_LOWEST, odp_queue_sched_prio(queue)); - CU_ASSERT_EQUAL(ODP_SCHED_SYNC_PARALLEL, - odp_queue_sched_type(queue)); + CU_ASSERT(ODP_QUEUE_TYPE_SCHED == odp_queue_type(queue)); + CU_ASSERT(ODP_SCHED_PRIO_LOWEST == odp_queue_sched_prio(queue)); + CU_ASSERT(ODP_SCHED_SYNC_PARALLEL == odp_queue_sched_type(queue)); + CU_ASSERT(ODP_SCHED_GROUP_WORKER == odp_queue_sched_group(queue));
CU_ASSERT(0 == odp_queue_context_set(queue, &queue_context, sizeof(queue_context)));
- prtn = odp_queue_context(queue); - CU_ASSERT(&queue_context == (int *)prtn); + CU_ASSERT(&queue_context == odp_queue_context(queue)); + CU_ASSERT(odp_queue_destroy(queue) == 0); + + /* Plain type queue */ + odp_queue_param_init(&qparams); + qparams.type = ODP_QUEUE_TYPE_PLAIN; + qparams.context = &queue_context; + qparams.context_len = sizeof(queue_context); + + queue = odp_queue_create("test_queue", &qparams); + CU_ASSERT(ODP_QUEUE_INVALID != queue); + CU_ASSERT(queue == odp_queue_lookup("test_queue")); + CU_ASSERT(ODP_QUEUE_TYPE_PLAIN == odp_queue_type(queue)); + CU_ASSERT(&queue_context == odp_queue_context(queue));
msg_pool = odp_pool_lookup("msg_pool"); buf = odp_buffer_alloc(msg_pool); @@ -186,7 +192,7 @@ void queue_test_param(void) if (!(CU_ASSERT(odp_queue_enq(queue, ev) == 0))) { odp_buffer_free(buf); } else { - CU_ASSERT_EQUAL(ev, odp_queue_deq(queue)); + CU_ASSERT(ev == odp_queue_deq(queue)); odp_buffer_free(buf); }
@@ -218,7 +224,7 @@ void queue_test_param(void)
for (i = 0; i < MAX_BUFFER_QUEUE; i++) { odp_buffer_t enbuf = odp_buffer_from_event(enev[i]); - CU_ASSERT_EQUAL(enev[i], deev[i]); + CU_ASSERT(enev[i] == deev[i]); odp_buffer_free(enbuf); }
commit 1a6766a3b0b2befb065336d54fff735db62aa96f Author: Petri Savolainen petri.savolainen@nokia.com Date: Wed Jun 22 16:09:56 2016 +0300
test: queue: cleanup variable naming
Use single and short variable name for the queue.
Signed-off-by: Petri Savolainen petri.savolainen@nokia.com Reviewed-and-tested-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/test/validation/queue/queue.c b/test/validation/queue/queue.c index 0516469..7ef9adf 100644 --- a/test/validation/queue/queue.c +++ b/test/validation/queue/queue.c @@ -137,7 +137,7 @@ void queue_test_mode(void)
void queue_test_param(void) { - odp_queue_t queue_creat_id, queue_id; + odp_queue_t queue; odp_event_t enev[MAX_BUFFER_QUEUE]; odp_event_t deev[MAX_BUFFER_QUEUE]; odp_buffer_t buf; @@ -156,27 +156,26 @@ void queue_test_param(void) qparams.sched.sync = ODP_SCHED_SYNC_PARALLEL; qparams.sched.group = ODP_SCHED_GROUP_WORKER;
- queue_creat_id = odp_queue_create("test_queue", &qparams); - CU_ASSERT(ODP_QUEUE_INVALID != queue_creat_id); - CU_ASSERT(odp_queue_to_u64(queue_creat_id) != + queue = odp_queue_create("test_queue", &qparams); + CU_ASSERT(ODP_QUEUE_INVALID != queue); + CU_ASSERT(odp_queue_to_u64(queue) != odp_queue_to_u64(ODP_QUEUE_INVALID));
CU_ASSERT_EQUAL(ODP_QUEUE_TYPE_SCHED, - odp_queue_type(queue_creat_id)); + odp_queue_type(queue));
- queue_id = odp_queue_lookup("test_queue"); - CU_ASSERT_EQUAL(queue_creat_id, queue_id); + CU_ASSERT(queue == odp_queue_lookup("test_queue"));
CU_ASSERT_EQUAL(ODP_SCHED_GROUP_WORKER, - odp_queue_sched_group(queue_id)); - CU_ASSERT_EQUAL(ODP_SCHED_PRIO_LOWEST, odp_queue_sched_prio(queue_id)); + odp_queue_sched_group(queue)); + CU_ASSERT_EQUAL(ODP_SCHED_PRIO_LOWEST, odp_queue_sched_prio(queue)); CU_ASSERT_EQUAL(ODP_SCHED_SYNC_PARALLEL, - odp_queue_sched_type(queue_id)); + odp_queue_sched_type(queue));
- CU_ASSERT(0 == odp_queue_context_set(queue_id, &queue_context, + CU_ASSERT(0 == odp_queue_context_set(queue, &queue_context, sizeof(queue_context)));
- prtn = odp_queue_context(queue_id); + prtn = odp_queue_context(queue); CU_ASSERT(&queue_context == (int *)prtn);
msg_pool = odp_pool_lookup("msg_pool"); @@ -184,10 +183,10 @@ void queue_test_param(void) CU_ASSERT_FATAL(buf != ODP_BUFFER_INVALID); ev = odp_buffer_to_event(buf);
- if (!(CU_ASSERT(odp_queue_enq(queue_id, ev) == 0))) { + if (!(CU_ASSERT(odp_queue_enq(queue, ev) == 0))) { odp_buffer_free(buf); } else { - CU_ASSERT_EQUAL(ev, odp_queue_deq(queue_id)); + CU_ASSERT_EQUAL(ev, odp_queue_deq(queue)); odp_buffer_free(buf); }
@@ -201,7 +200,7 @@ void queue_test_param(void) * constraints in the implementation at that given point of time. * But here we assume that we succeed in enqueuing all buffers. */ - ret = odp_queue_enq_multi(queue_id, enev, MAX_BUFFER_QUEUE); + ret = odp_queue_enq_multi(queue, enev, MAX_BUFFER_QUEUE); CU_ASSERT(MAX_BUFFER_QUEUE == ret); i = ret < 0 ? 0 : ret; for ( ; i < MAX_BUFFER_QUEUE; i++) @@ -209,7 +208,7 @@ void queue_test_param(void)
pev_tmp = deev; do { - deq_ret = odp_queue_deq_multi(queue_id, pev_tmp, + deq_ret = odp_queue_deq_multi(queue, pev_tmp, MAX_BUFFER_QUEUE); nr_deq_entries += deq_ret; max_iteration--; @@ -223,7 +222,7 @@ void queue_test_param(void) odp_buffer_free(enbuf); }
- CU_ASSERT(odp_queue_destroy(queue_id) == 0); + CU_ASSERT(odp_queue_destroy(queue) == 0); }
void queue_test_info(void)
commit f606e161748d68612b1a5668ae0184ac4909738d Author: Petri Savolainen petri.savolainen@nokia.com Date: Wed Jun 22 16:09:55 2016 +0300
test: queue: add mode test
Test different queue enqueue and dequeue mode combinations.
Signed-off-by: Petri Savolainen petri.savolainen@nokia.com Reviewed-and-tested-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
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);
commit a85a684948248d5e127f109622026e3bbc4be53d Author: Petri Savolainen petri.savolainen@nokia.com Date: Wed Jun 22 16:09:54 2016 +0300
test: queue: add capability test
Test queue capability API and create the maximum number of queues.
Signed-off-by: Petri Savolainen petri.savolainen@nokia.com Reviewed-and-tested-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/odp_queue.c b/platform/linux-generic/odp_queue.c index f3e589e..1166a72 100644 --- a/platform/linux-generic/odp_queue.c +++ b/platform/linux-generic/odp_queue.c @@ -25,6 +25,8 @@ #include <odp/api/traffic_mngr.h> #include <odp_schedule_ordered_internal.h>
+#define NUM_INTERNAL_QUEUES 64 + #ifdef USE_TICKETLOCK #include <odp/api/ticketlock.h> #define LOCK(a) odp_ticketlock_lock(a) @@ -184,7 +186,8 @@ int odp_queue_capability(odp_queue_capability_t *capa) { memset(capa, 0, sizeof(odp_queue_capability_t));
- capa->max_queues = ODP_CONFIG_QUEUES; + /* Reserve some queues for internal use */ + capa->max_queues = ODP_CONFIG_QUEUES - NUM_INTERNAL_QUEUES; capa->max_ordered_locks = SCHEDULE_ORDERED_LOCKS_PER_QUEUE; capa->max_sched_groups = sched_fn->num_grps(); capa->sched_prios = odp_schedule_num_prio(); diff --git a/test/validation/queue/queue.c b/test/validation/queue/queue.c index 1e60cd7..b554aa3 100644 --- a/test/validation/queue/queue.c +++ b/test/validation/queue/queue.c @@ -11,10 +11,22 @@ #define MAX_BUFFER_QUEUE (8) #define MSG_POOL_SIZE (4 * 1024 * 1024) #define CONFIG_MAX_ITERATION (100) +#define MAX_QUEUES (64 * 1024)
static int queue_context = 0xff; static odp_pool_t pool;
+static void generate_name(char *name, uint32_t index) +{ + /* Uniqueue name for up to 300M queues */ + name[0] = 'A' + ((index / (26 * 26 * 26 * 26 * 26)) % 26); + name[1] = 'A' + ((index / (26 * 26 * 26 * 26)) % 26); + name[2] = 'A' + ((index / (26 * 26 * 26)) % 26); + name[3] = 'A' + ((index / (26 * 26)) % 26); + name[4] = 'A' + ((index / 26) % 26); + name[5] = 'A' + (index % 26); +} + int queue_suite_init(void) { odp_pool_param_t params; @@ -38,7 +50,52 @@ int queue_suite_term(void) return odp_pool_destroy(pool); }
-void queue_test_sunnydays(void) +void queue_test_capa(void) +{ + odp_queue_capability_t capa; + odp_queue_param_t qparams; + char name[ODP_QUEUE_NAME_LEN]; + odp_queue_t queue[MAX_QUEUES]; + uint32_t num_queues, i; + + memset(&capa, 0, sizeof(odp_queue_capability_t)); + CU_ASSERT(odp_queue_capability(&capa) == 0); + + CU_ASSERT(capa.max_queues != 0); + CU_ASSERT(capa.max_ordered_locks != 0); + CU_ASSERT(capa.max_sched_groups != 0); + CU_ASSERT(capa.sched_prios != 0); + + for (i = 0; i < ODP_QUEUE_NAME_LEN; i++) + name[i] = 'A' + (i % 26); + + name[ODP_QUEUE_NAME_LEN - 1] = 0; + + if (capa.max_queues > MAX_QUEUES) + num_queues = MAX_QUEUES; + else + num_queues = capa.max_queues; + + odp_queue_param_init(&qparams); + + for (i = 0; i < num_queues; i++) { + generate_name(name, i); + queue[i] = odp_queue_create(name, &qparams); + + if (queue[i] == ODP_QUEUE_INVALID) { + CU_FAIL("Queue create failed"); + num_queues = i - 1; + break; + } + + CU_ASSERT(odp_queue_lookup(name) != ODP_QUEUE_INVALID); + } + + for (i = 0; i < num_queues; i++) + CU_ASSERT(odp_queue_destroy(queue[i]) == 0); +} + +void queue_test_param(void) { odp_queue_t queue_creat_id, queue_id; odp_event_t enev[MAX_BUFFER_QUEUE]; @@ -189,7 +246,8 @@ void queue_test_info(void) }
odp_testinfo_t queue_suite[] = { - ODP_TEST_INFO(queue_test_sunnydays), + ODP_TEST_INFO(queue_test_capa), + 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 4ef52f5..1d3164d 100644 --- a/test/validation/queue/queue.h +++ b/test/validation/queue/queue.h @@ -10,7 +10,8 @@ #include <odp_cunit_common.h>
/* test functions: */ -void queue_test_sunnydays(void); +void queue_test_capa(void); +void queue_test_param(void); void queue_test_info(void);
/* test arrays: */
-----------------------------------------------------------------------
Summary of changes: platform/linux-generic/odp_queue.c | 5 +- test/validation/queue/queue.c | 158 ++++++++++++++++++++++++++++++------- test/validation/queue/queue.h | 4 +- 3 files changed, 138 insertions(+), 29 deletions(-)
hooks/post-receive