Remove g_mutex_new()/g_cond_new() in testcases
[platform/upstream/glib.git] / gobject / tests / valuearray.c
1 #include <glib-object.h>
2
3 static gint
4 cmpint (gconstpointer a, gconstpointer b)
5 {
6   const GValue *aa = a;
7   const GValue *bb = b;
8
9   return g_value_get_int (aa) - g_value_get_int (bb);
10 }
11
12 static void
13 test_basic (void)
14 {
15   GValueArray *a;
16   GValueArray *a2;
17   GValue v = { 0, };
18   GValue *p;
19   gint i;
20
21   a = g_value_array_new (20);
22
23   g_value_init (&v, G_TYPE_INT);
24   for (i = 0; i < 100; i++)
25     {
26       g_value_set_int (&v, i);
27       g_value_array_append (a, &v);
28     }
29
30   g_assert_cmpint (a->n_values, ==, 100);
31   p = g_value_array_get_nth (a, 5);
32   g_assert_cmpint (g_value_get_int (p), ==, 5);
33
34   for (i = 20; i < 100; i+= 5)
35     g_value_array_remove (a, 100 - i);
36
37   for (i = 100; i < 150; i++)
38     {
39       g_value_set_int (&v, i);
40       g_value_array_prepend (a, &v);
41     }
42
43   g_value_array_sort (a, cmpint);
44   for (i = 0; i < a->n_values - 1; i++)
45     g_assert_cmpint (g_value_get_int (&a->values[i]), <=, g_value_get_int (&a->values[i+1]));
46
47   a2 = g_value_array_copy (a);
48   for (i = 0; i < a->n_values; i++)
49     g_assert_cmpint (g_value_get_int (&a->values[i]), ==, g_value_get_int (&a2->values[i]));
50
51   g_value_array_free (a);
52   g_value_array_free (a2);
53 }
54
55 int
56 main (int argc, char *argv[])
57 {
58   g_type_init ();
59
60   g_test_init (&argc, &argv, NULL);
61
62   g_test_add_func ("/valuearray/basic", test_basic);
63
64   return g_test_run ();
65 }