#define C2P(c) ((gpointer) ((long) (c)))
#define P2C(p) ((gchar) ((long) (p)))
+#define GLIB_TEST_STRING "el dorado "
+#define GLIB_TEST_STRING_5 "el do"
+
+typedef struct {
+ guint age;
+ gchar name[40];
+} GlibTestInfo;
+
static gboolean
node_build_string (GNode *node,
gpointer data)
g_print ("ok\n");
}
-gboolean
+static gboolean
my_hash_callback_remove (gpointer key,
gpointer value,
gpointer user_data)
return FALSE;
}
-void
+static void
my_hash_callback_remove_test (gpointer key,
gpointer value,
gpointer user_data)
g_print ("bad!\n");
}
-void
+static void
my_hash_callback (gpointer key,
gpointer value,
gpointer user_data)
*d = 1;
}
-guint
+static guint
my_hash (gconstpointer key)
{
return (guint) *((const gint*) key);
}
-gint
+static gint
my_hash_compare (gconstpointer a,
gconstpointer b)
{
return *((const gint*) a) == *((const gint*) b);
}
-gint
+static gint
my_list_compare_one (gconstpointer a, gconstpointer b)
{
gint one = *((const gint*)a);
return one-two;
}
-gint
+static gint
my_list_compare_two (gconstpointer a, gconstpointer b)
{
gint one = *((const gint*)a);
return two-one;
}
-/* void
+/* static void
my_list_print (gpointer a, gpointer b)
{
gint three = *((gint*)a);
g_print("%d", three);
}; */
-gint
+static gint
my_compare (gconstpointer a,
gconstpointer b)
{
return *cha - *chb;
}
-gint
+static gint
my_traverse (gpointer key,
gpointer value,
gpointer data)
GRelation *relation;
GTuples *tuples;
gint data [1024];
+ GlibTestInfo *gti;
struct {
gchar *filename;
gchar *dirname;
guint n_dirname_checks = sizeof (dirname_checks) / sizeof (dirname_checks[0]);
guint16 gu16t1 = 0x44afU, gu16t2 = 0xaf44U;
guint32 gu32t1 = 0x02a7f109U, gu32t2 = 0x09f1a702U;
-#ifdef HAVE_GINT64
- guint64 gu64t1 = 0x1d636b02300a7aa7U, gu64t2 = 0xa77a0a30026b631dU;
+#ifdef G_HAVE_GINT64
+ guint64 gu64t1 = G_GINT64_CONSTANT(0x1d636b02300a7aa7U),
+ gu64t2 = G_GINT64_CONSTANT(0xa77a0a30026b631dU);
#endif
g_print ("TestGLib v%u.%u.%u (i:%u b:%u)\n",
TEST (NULL, sizeof (gint16) == 2);
g_print ("\nchecking size of gint32: %d", (int)sizeof (gint32));
TEST (NULL, sizeof (gint32) == 4);
-#ifdef HAVE_GINT64
+#ifdef G_HAVE_GINT64
g_print ("\nchecking size of gint64: %d", (int)sizeof (gint64));
TEST (NULL, sizeof (gint64) == 8);
-#endif /* HAVE_GINT64 */
+#endif /* G_HAVE_GINT64 */
g_print ("\n");
g_print ("checking g_dirname()...");
}
g_list_free (list);
+ list = NULL;
+
+ for (i = 0; i < 10; i++)
+ list = g_list_prepend (list, &morenums[i]);
+
+ list = g_list_sort (list, my_list_compare_two);
+
+ /*
+ g_print("\n");
+ g_list_foreach (list, my_list_print, NULL);
+ */
+
+ for (i = 0; i < 10; i++)
+ {
+ t = g_list_nth (list, i);
+ if (*((gint*) t->data) != (9 - i))
+ g_error ("Merge sort failed");
+ }
+
+ g_list_free (list);
g_print ("ok\n");
}
g_slist_free(slist);
+ slist = NULL;
+
+ for (i = 0; i < 10; i++)
+ slist = g_slist_prepend (slist, &morenums[i]);
+
+ slist = g_slist_sort (slist, my_list_compare_two);
+
+ /*
+ g_print("\n");
+ g_slist_foreach (slist, my_list_print, NULL);
+ */
+
+ for (i = 0; i < 10; i++)
+ {
+ st = g_slist_nth (slist, i);
+ if (*((gint*) st->data) != (9 - i))
+ g_error("Sorted insert failed");
+ }
+
+ g_slist_free(slist);
g_print ("ok\n");
g_print ("ok\n");
+ g_print ("checking g_strdup...");
+ g_assert(g_strdup(NULL) == NULL);
+ string = g_strdup(GLIB_TEST_STRING);
+ g_assert(string != NULL);
+ g_assert(strcmp(string, GLIB_TEST_STRING) == 0);
+ g_free(string);
+
+ g_print ("ok\n");
+
+ g_print ("checking g_strconcat...");
+ string = g_strconcat(GLIB_TEST_STRING, NULL);
+ g_assert(string != NULL);
+ g_assert(strcmp(string, GLIB_TEST_STRING) == 0);
+ g_free(string);
+ string = g_strconcat(GLIB_TEST_STRING, GLIB_TEST_STRING,
+ GLIB_TEST_STRING, NULL);
+ g_assert(string != NULL);
+ g_assert(strcmp(string, GLIB_TEST_STRING GLIB_TEST_STRING
+ GLIB_TEST_STRING) == 0);
+ g_free(string);
+
+ g_print ("ok\n");
+
+ g_print ("checking g_strdup_printf...");
+ string = g_strdup_printf ("%05d %-5s", 21, "test");
+ g_assert (string != NULL);
+ g_assert (strcmp(string, "00021 test ") == 0);
+ g_free (string);
+
+ g_print ("ok\n");
+
/* g_debug (argv[0]); */
/* Relation tests */
string = NULL;
g_print (string);
- g_print ("endian macro tests...");
+ g_print ("checking endian macros (host is ");
#if G_BYTE_ORDER == G_BIG_ENDIAN
- g_print ("big endian...");
+ g_print ("big endian)...");
#else
- g_print ("little endian...");
+ g_print ("little endian)...");
#endif
g_assert (GUINT16_SWAP_LE_BE (gu16t1) == gu16t2);
g_assert (GUINT32_SWAP_LE_BE (gu32t1) == gu32t2);
-#ifdef HAVE_GINT64
+#ifdef G_HAVE_GINT64
g_assert (GUINT64_SWAP_LE_BE (gu64t1) == gu64t2);
#endif
g_print ("ok\n");
+#ifdef G_HAVE_ALLOCA
+ g_print ("checking alloca()-based allocation routines...");
+
+ string = g_alloca(80);
+ g_assert(string != NULL);
+ for (i = 0; i < 80; i++)
+ string[i] = 'x';
+ string[79] = 0;
+ g_assert(strlen(string) == 79);
+
+ gti = g_new_a(GlibTestInfo, 2);
+ string = g_alloca(2);
+ strcpy(string, "x");
+ for (i = 0; i < 2; i++) {
+ for (j = 0; j < 40; j++)
+ gti[i].name[j] = 'x';
+ gti[i].name[39] = 0;
+ g_assert(strlen(gti[i].name) == 39);
+ gti[i].age = 42;
+ }
+ g_assert(strcmp(string, "x") == 0);
+
+ string = g_new0_a(char, 40);
+ for (i = 0; i < 39; i++)
+ string[i] = 'x';
+ g_assert(strlen(string) == 39);
+
+ g_print ("ok\n");
+
+ g_print ("checking alloca()-based string duplication routines...");
+
+ g_strdup_a(string, GLIB_TEST_STRING);
+ g_assert(string != NULL);
+ g_assert(strcmp(string, GLIB_TEST_STRING) == 0);
+ g_strdup_a(string, NULL);
+ g_assert(string == NULL);
+
+ g_strndup_a(string, GLIB_TEST_STRING, 5);
+ g_assert(string != NULL);
+ g_assert(strlen(string) == 5);
+ g_assert(strcmp(string, GLIB_TEST_STRING_5) == 0);
+ g_strndup_a(string, NULL, 20);
+ g_assert(string == NULL);
+
+ g_strconcat3_a(string, GLIB_TEST_STRING, GLIB_TEST_STRING, GLIB_TEST_STRING);
+ g_assert(string != NULL);
+ g_assert(strcmp(string, GLIB_TEST_STRING GLIB_TEST_STRING
+ GLIB_TEST_STRING) == 0);
+
+ g_print ("ok\n");
+#endif
+
return 0;
}
+