@@ -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)
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 <bill.fischofer@linaro.org> --- test/validation/queue/queue.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)