| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- #include <stdio.h>
- #include <string.h>
- #include <glib.h>
- #include "test.h"
- /* example from glib documentation */
- RESULT
- test_array_big ()
- {
- GArray *garray;
- gint i;
- /* We create a new array to store gint values.
- We don't want it zero-terminated or cleared to 0's. */
- garray = g_array_new (FALSE, FALSE, sizeof (gint));
- for (i = 0; i < 10000; i++)
- g_array_append_val (garray, i);
- for (i = 0; i < 10000; i++)
- if (g_array_index (garray, gint, i) != i)
- return FAILED ("array value didn't match");
-
- g_array_free (garray, TRUE);
- return NULL;
- }
- RESULT
- test_array_index ()
- {
- GArray *array = g_array_new (FALSE, FALSE, sizeof (int));
- int v;
- v = 27;
- g_array_append_val (array, v);
- if (27 != g_array_index (array, int, 0))
- return FAILED ("");
- g_array_free (array, TRUE);
- return NULL;
- }
- RESULT
- test_array_append_zero_terminated ()
- {
- GArray *array = g_array_new (TRUE, FALSE, sizeof (int));
- int v;
- v = 27;
- g_array_append_val (array, v);
- if (27 != g_array_index (array, int, 0))
- return FAILED ("g_array_append_val failed");
- if (0 != g_array_index (array, int, 1))
- return FAILED ("zero_terminated didn't append a zero element");
- g_array_free (array, TRUE);
- return NULL;
- }
- RESULT
- test_array_append ()
- {
- GArray *array = g_array_new (FALSE, FALSE, sizeof (int));
- int v;
- if (0 != array->len)
- return FAILED ("initial array length not zero");
- v = 27;
- g_array_append_val (array, v);
- if (1 != array->len)
- return FAILED ("array append failed");
- g_array_free (array, TRUE);
- return NULL;
- }
- RESULT
- test_array_insert_val ()
- {
- GArray *array = g_array_new (FALSE, FALSE, sizeof (gpointer));
- gpointer ptr0, ptr1, ptr2, ptr3;
- g_array_insert_val (array, 0, array);
- if (array != g_array_index (array, gpointer, 0))
- return FAILED ("1 The value in the array is incorrect");
- g_array_insert_val (array, 1, array);
- if (array != g_array_index (array, gpointer, 1))
- return FAILED ("2 The value in the array is incorrect");
- g_array_insert_val (array, 2, array);
- if (array != g_array_index (array, gpointer, 2))
- return FAILED ("3 The value in the array is incorrect");
-
- g_array_free (array, TRUE);
- array = g_array_new (FALSE, FALSE, sizeof (gpointer));
- ptr0 = array;
- ptr1 = array + 1;
- ptr2 = array + 2;
- ptr3 = array + 3;
- g_array_insert_val (array, 0, ptr0);
- g_array_insert_val (array, 1, ptr1);
- g_array_insert_val (array, 2, ptr2);
- g_array_insert_val (array, 1, ptr3);
- if (ptr0 != g_array_index (array, gpointer, 0))
- return FAILED ("4 The value in the array is incorrect");
- if (ptr3 != g_array_index (array, gpointer, 1))
- return FAILED ("5 The value in the array is incorrect");
- if (ptr1 != g_array_index (array, gpointer, 2))
- return FAILED ("6 The value in the array is incorrect");
- if (ptr2 != g_array_index (array, gpointer, 3))
- return FAILED ("7 The value in the array is incorrect");
- g_array_free (array, TRUE);
- return NULL;
- }
- RESULT
- test_array_remove ()
- {
- GArray *array = g_array_new (FALSE, FALSE, sizeof (int));
- int v[] = {30, 29, 28, 27, 26, 25};
- g_array_append_vals (array, v, 6);
- if (6 != array->len)
- return FAILED ("append_vals fail");
- g_array_remove_index (array, 3);
- if (5 != array->len)
- return FAILED ("remove_index failed to update length");
- if (26 != g_array_index (array, int, 3))
- return FAILED ("remove_index failed to update the array");
- g_array_free (array, TRUE);
- return NULL;
- }
- static Test array_tests [] = {
- {"big", test_array_big},
- {"append", test_array_append},
- {"insert_val", test_array_insert_val},
- {"index", test_array_index},
- {"remove", test_array_remove},
- {"append_zero_term", test_array_append_zero_terminated},
- {NULL, NULL}
- };
- DEFINE_TEST_GROUP_INIT(array_tests_init, array_tests)
|