tests: Fix signed/unsigned comparisons and assignments in queue test

This introduces no functional changes.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
This commit is contained in:
Philip Withnall 2023-03-14 11:50:25 +00:00
parent 2d89f84267
commit ea852e2683

View File

@ -166,10 +166,10 @@ compare_int (gconstpointer a, gconstpointer b, gpointer data)
return -1; return -1;
} }
static gint static guint
get_random_position (GQueue *queue, gboolean allow_offlist) get_random_position (GQueue *queue, gboolean allow_offlist)
{ {
int n; guint n;
enum { OFF_QUEUE, HEAD, TAIL, MIDDLE, LAST } where; enum { OFF_QUEUE, HEAD, TAIL, MIDDLE, LAST } where;
if (allow_offlist) if (allow_offlist)
@ -190,8 +190,10 @@ get_random_position (GQueue *queue, gboolean allow_offlist)
case TAIL: case TAIL:
if (allow_offlist) if (allow_offlist)
n = queue->length; n = queue->length;
else else if (queue->length > 0)
n = queue->length - 1; n = queue->length - 1;
else
n = 0;
break; break;
case MIDDLE: case MIDDLE:
@ -229,9 +231,8 @@ random_test (gconstpointer d)
} QueueOp; } QueueOp;
const guint n_iterations = g_test_thorough () ? 500000 : 100000; const guint n_iterations = g_test_thorough () ? 500000 : 100000;
#define N_QUEUES 3
#define RANDOM_QUEUE() &(queues[g_random_int_range(0, N_QUEUES)]) #define RANDOM_QUEUE() &(queues[g_random_int_range(0, G_N_ELEMENTS (queues))])
typedef struct QueueInfo QueueInfo; typedef struct QueueInfo QueueInfo;
struct QueueInfo struct QueueInfo
@ -242,13 +243,13 @@ random_test (gconstpointer d)
guint length; guint length;
}; };
gint i; guint i;
QueueOp op; QueueOp op;
QueueInfo queues[N_QUEUES]; QueueInfo queues[3];
g_random_set_seed (seed); g_random_set_seed (seed);
for (i = 0; i < N_QUEUES; ++i) for (i = 0; i < G_N_ELEMENTS (queues); ++i)
{ {
queues[i].queue = g_queue_new (); queues[i].queue = g_queue_new ();
queues[i].head = NULL; queues[i].head = NULL;
@ -258,7 +259,7 @@ random_test (gconstpointer d)
for (i = 0; i < n_iterations; ++i) for (i = 0; i < n_iterations; ++i)
{ {
int j; guint j;
QueueInfo *qinf = RANDOM_QUEUE(); QueueInfo *qinf = RANDOM_QUEUE();
GQueue *q = qinf->queue; GQueue *q = qinf->queue;
op = g_random_int_range (IS_EMPTY, LAST_OP); op = g_random_int_range (IS_EMPTY, LAST_OP);
@ -401,7 +402,7 @@ random_test (gconstpointer d)
break; break;
case PUSH_NTH: case PUSH_NTH:
{ {
int pos = get_random_position (q, TRUE); guint pos = get_random_position (q, TRUE);
int x = g_random_int_range (0, 236546); int x = g_random_int_range (0, 236546);
g_queue_push_nth (q, GINT_TO_POINTER (x), pos); g_queue_push_nth (q, GINT_TO_POINTER (x), pos);
if (qinf->head && qinf->head->prev) if (qinf->head && qinf->head->prev)
@ -434,16 +435,16 @@ random_test (gconstpointer d)
case POP_NTH: case POP_NTH:
if (!g_queue_is_empty (q)) if (!g_queue_is_empty (q))
{ {
int n = get_random_position (q, TRUE); guint n = get_random_position (q, TRUE);
gpointer elm = g_queue_peek_nth (q, n); gpointer elm = g_queue_peek_nth (q, n);
if (n == (int) (q->length - 1)) if (n == q->length - 1)
qinf->tail = qinf->tail->prev; qinf->tail = qinf->tail->prev;
if (n == 0) if (n == 0)
qinf->head = qinf->head->next; qinf->head = qinf->head->next;
if (n >= 0 && (guint) n < q->length) if (n < q->length)
qinf->length--; qinf->length--;
g_assert_true (elm == g_queue_pop_nth (q, n)); g_assert_true (elm == g_queue_pop_nth (q, n));
@ -464,14 +465,15 @@ random_test (gconstpointer d)
case PEEK_NTH: case PEEK_NTH:
if (g_queue_is_empty (q)) if (g_queue_is_empty (q))
{ {
for (j = -10; j < 10; ++j) int k;
g_assert_null (g_queue_peek_nth (q, j)); for (k = -10; k < 10; ++k)
g_assert_null (g_queue_peek_nth (q, (guint) k));
} }
else else
{ {
GList *list; GList *list;
int n = get_random_position (q, TRUE); guint n = get_random_position (q, TRUE);
if (n < 0 || (guint) n >= q->length) if (n >= q->length)
{ {
g_assert_null (g_queue_peek_nth (q, n)); g_assert_null (g_queue_peek_nth (q, n));
} }
@ -617,7 +619,7 @@ random_test (gconstpointer d)
case PUSH_NTH_LINK: case PUSH_NTH_LINK:
{ {
GList *link = g_list_prepend (NULL, GINT_TO_POINTER (i)); GList *link = g_list_prepend (NULL, GINT_TO_POINTER (i));
gint n = get_random_position (q, TRUE); guint n = get_random_position (q, TRUE);
g_queue_push_nth_link (q, n, link); g_queue_push_nth_link (q, n, link);
if (qinf->head && qinf->head->prev) if (qinf->head && qinf->head->prev)
@ -656,9 +658,9 @@ random_test (gconstpointer d)
g_assert_null (g_queue_pop_nth_link (q, 200)); g_assert_null (g_queue_pop_nth_link (q, 200));
else else
{ {
int n = get_random_position (q, FALSE); guint n = get_random_position (q, FALSE);
if (n == (int) (g_queue_get_length (q) - 1)) if (n == g_queue_get_length (q) - 1)
qinf->tail = qinf->tail->prev; qinf->tail = qinf->tail->prev;
if (n == 0) if (n == 0)
@ -686,7 +688,7 @@ random_test (gconstpointer d)
g_assert_null (g_queue_peek_nth_link (q, 1000)); g_assert_null (g_queue_peek_nth_link (q, 1000));
else else
{ {
gint n = get_random_position (q, FALSE); guint n = get_random_position (q, FALSE);
GList *link; GList *link;
link = q->head; link = q->head;
@ -699,7 +701,7 @@ random_test (gconstpointer d)
case UNLINK: case UNLINK:
if (!g_queue_is_empty (q)) if (!g_queue_is_empty (q))
{ {
gint n = g_random_int_range (0, g_queue_get_length (q)); guint n = g_random_int_range (0, g_queue_get_length (q));
GList *link; GList *link;
link = q->head; link = q->head;
@ -719,7 +721,7 @@ random_test (gconstpointer d)
case DELETE_LINK: case DELETE_LINK:
if (!g_queue_is_empty (q)) if (!g_queue_is_empty (q))
{ {
gint n = g_random_int_range (0, g_queue_get_length (q)); guint n = g_random_int_range (0, g_queue_get_length (q));
GList *link; GList *link;
link = q->head; link = q->head;
@ -749,11 +751,11 @@ random_test (gconstpointer d)
g_assert_true (qinf->tail == q->tail); g_assert_true (qinf->tail == q->tail);
g_assert_cmpuint (qinf->length, ==, q->length); g_assert_cmpuint (qinf->length, ==, q->length);
for (j = 0; j < N_QUEUES; ++j) for (j = 0; j < G_N_ELEMENTS (queues); ++j)
check_integrity (queues[j].queue); check_integrity (queues[j].queue);
} }
for (i = 0; i < N_QUEUES; ++i) for (i = 0; i < G_N_ELEMENTS (queues); ++i)
g_queue_free (queues[i].queue); g_queue_free (queues[i].queue);
} }