@@ -19,28 +19,36 @@ static int show(int *v)
1919 return v ? * v : MISSING ;
2020}
2121
22- static void test_prio_queue (int * input , int * result , size_t input_size )
22+ static void test_prio_queue (int * input , size_t input_size ,
23+ int * result , size_t result_size )
2324{
2425 struct prio_queue pq = { intcmp };
26+ int j = 0 ;
2527
26- for (int i = 0 , j = 0 ; i < input_size ; i ++ ) {
28+ for (int i = 0 ; i < input_size ; i ++ ) {
2729 void * peek , * get ;
2830 switch (input [i ]) {
2931 case GET :
3032 peek = prio_queue_peek (& pq );
3133 get = prio_queue_get (& pq );
3234 if (!check (peek == get ))
3335 return ;
34- if (!check_int (result [j ++ ], = = , show (get )))
35- test_msg ("failed at result[] index %d" , j - 1 );
36+ if (!check_uint (j , < , result_size ))
37+ break ;
38+ if (!check_int (result [j ], = = , show (get )))
39+ test_msg (" j: %d" , j );
40+ j ++ ;
3641 break ;
3742 case DUMP :
3843 while ((peek = prio_queue_peek (& pq ))) {
3944 get = prio_queue_get (& pq );
4045 if (!check (peek == get ))
4146 return ;
42- if (!check_int (result [j ++ ], = = , show (get )))
43- test_msg ("failed at result[] index %d" , j - 1 );
47+ if (!check_uint (j , < , result_size ))
48+ break ;
49+ if (!check_int (result [j ], = = , show (get )))
50+ test_msg (" j: %d" , j );
51+ j ++ ;
4452 }
4553 break ;
4654 case STACK :
@@ -54,6 +62,7 @@ static void test_prio_queue(int *input, int *result, size_t input_size)
5462 break ;
5563 }
5664 }
65+ check_uint (j , = = , result_size );
5766 clear_prio_queue (& pq );
5867}
5968
@@ -77,7 +86,8 @@ static void test_prio_queue(int *input, int *result, size_t input_size)
7786{ \
7887 int input[] = {INPUT}; \
7988 int result[] = {RESULT}; \
80- test_prio_queue(input, result, ARRAY_SIZE(input)); \
89+ test_prio_queue(input, ARRAY_SIZE(input), \
90+ result, ARRAY_SIZE(result)); \
8191}
8292
8393TEST_INPUT (BASIC_INPUT , BASIC_RESULT , basic )
0 commit comments