odp_queue_capability() returns max_queues which may be more than 64K. Use malloc to allocate an array of queue handles to test the ability to create max_queues to avoid limiting the test to 64K queues. If this malloc fails then attempt a reduced test with 64K queues.
Signed-off-by: Bill Fischofer <[email protected]> --- test/validation/queue/queue.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/test/validation/queue/queue.c b/test/validation/queue/queue.c index d88e74b..0311f90 100644 --- a/test/validation/queue/queue.c +++ b/test/validation/queue/queue.c @@ -55,7 +55,7 @@ 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]; + odp_queue_t *queue; int32_t num_queues, i; memset(&capa, 0, sizeof(odp_queue_capability_t)); @@ -71,10 +71,15 @@ void queue_test_capa(void) name[ODP_QUEUE_NAME_LEN - 1] = 0; - if (capa.max_queues > MAX_QUEUES) + num_queues = capa.max_queues; + queue = malloc(num_queues * sizeof(odp_queue_t)); + if (queue == NULL) { + printf("Unable to alloc %d queues, trying with %d\n", + num_queues, MAX_QUEUES); num_queues = MAX_QUEUES; - else - num_queues = capa.max_queues; + queue = malloc(num_queues * sizeof(odp_queue_t)); + CU_ASSERT_FATAL(queue != NULL); + } odp_queue_param_init(&qparams); @@ -93,6 +98,8 @@ void queue_test_capa(void) for (i = 0; i < num_queues; i++) CU_ASSERT(odp_queue_destroy(queue[i]) == 0); + + free(queue); } void queue_test_mode(void) -- 2.7.4 _______________________________________________ lng-odp mailing list [email protected] https://lists.linaro.org/mailman/listinfo/lng-odp
