X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tests%2Ftestglib.c;h=2453e167acc5b9682636eb91f7d416ba9142b3b7;hb=953962d783e46c8aa17301ec733fa54483e3fab7;hp=9180d9cfd4522de5ee92e763876f3137db460c58;hpb=fe751b255f098f54760273eff3d3d2508cef72b8;p=platform%2Fupstream%2Fglib.git diff --git a/tests/testglib.c b/tests/testglib.c index 9180d9c..2453e16 100644 --- a/tests/testglib.c +++ b/tests/testglib.c @@ -33,7 +33,7 @@ #include #include "glib.h" -#include "gstdio.h" +#include #include @@ -242,7 +242,7 @@ node_build_string (GNode *node, gchar *string; gchar c[2] = "_"; - c[0] = ((gchar) ((long) (node->data))); + c[0] = ((gchar) ((gintptr) (node->data))); string = g_strconcat (*p ? *p : "", c, NULL); g_free (*p); @@ -255,7 +255,7 @@ static void gnode_test (void) { #define C2P(c) ((gpointer) ((long) (c))) -#define P2C(p) ((gchar) ((long) (p))) +#define P2C(p) ((gchar) ((gintptr) (p))) GNode *root; GNode *node; GNode *node_B; @@ -506,85 +506,6 @@ find_first_that(gpointer key, return (*v == *test); } - -static void -test_g_mkdir_with_parents_1 (const gchar *base) -{ - char *p0 = g_build_filename (base, "fum", NULL); - char *p1 = g_build_filename (p0, "tem", NULL); - char *p2 = g_build_filename (p1, "zap", NULL); - FILE *f; - - g_remove (p2); - g_remove (p1); - g_remove (p0); - - if (g_file_test (p0, G_FILE_TEST_EXISTS)) - g_error ("failed, %s exists, cannot test g_mkdir_with_parents\n", p0); - - if (g_file_test (p1, G_FILE_TEST_EXISTS)) - g_error ("failed, %s exists, cannot test g_mkdir_with_parents\n", p1); - - if (g_file_test (p2, G_FILE_TEST_EXISTS)) - g_error ("failed, %s exists, cannot test g_mkdir_with_parents\n", p2); - - if (g_mkdir_with_parents (p2, 0777) == -1) - g_error ("failed, g_mkdir_with_parents(%s) failed: %s\n", p2, g_strerror (errno)); - - if (!g_file_test (p2, G_FILE_TEST_IS_DIR)) - g_error ("failed, g_mkdir_with_parents(%s) succeeded, but %s is not a directory\n", p2, p2); - - if (!g_file_test (p1, G_FILE_TEST_IS_DIR)) - g_error ("failed, g_mkdir_with_parents(%s) succeeded, but %s is not a directory\n", p2, p1); - - if (!g_file_test (p0, G_FILE_TEST_IS_DIR)) - g_error ("failed, g_mkdir_with_parents(%s) succeeded, but %s is not a directory\n", p2, p0); - - g_rmdir (p2); - if (g_file_test (p2, G_FILE_TEST_EXISTS)) - g_error ("failed, did g_rmdir(%s), but %s is still there\n", p2, p2); - - g_rmdir (p1); - if (g_file_test (p1, G_FILE_TEST_EXISTS)) - g_error ("failed, did g_rmdir(%s), but %s is still there\n", p1, p1); - - f = g_fopen (p1, "w"); - if (f == NULL) - g_error ("failed, couldn't create file %s\n", p1); - fclose (f); - - if (g_mkdir_with_parents (p1, 0666) == 0) - g_error ("failed, g_mkdir_with_parents(%s) succeeded, even if %s is a file\n", p1, p1); - - if (g_mkdir_with_parents (p2, 0666) == 0) - g_error("failed, g_mkdir_with_parents(%s) succeeded, even if %s is a file\n", p2, p1); - - g_remove (p2); - g_remove (p1); - g_remove (p0); -} - -static void -test_g_mkdir_with_parents (void) -{ - gchar *cwd; - if (g_test_verbose()) - g_print ("checking g_mkdir_with_parents() in subdir ./hum/"); - test_g_mkdir_with_parents_1 ("hum"); - g_remove ("hum"); - if (g_test_verbose()) - g_print ("checking g_mkdir_with_parents() in subdir ./hii///haa/hee/"); - test_g_mkdir_with_parents_1 ("hii///haa/hee"); - g_remove ("hii/haa/hee"); - g_remove ("hii/haa"); - g_remove ("hii"); - cwd = g_get_current_dir (); - if (g_test_verbose()) - g_print ("checking g_mkdir_with_parents() in cwd: %s", cwd); - test_g_mkdir_with_parents_1 (cwd); - g_free (cwd); -} - static void test_g_parse_debug_string (void) { @@ -817,9 +738,6 @@ test_info (void) if (g_test_verbose()) { -#ifdef G_PLATFORM_WIN32 - gchar *glib_dll; -#endif const gchar *charset; if (g_get_charset ((G_CONST_RETURN char**)&charset)) g_print ("current charset is UTF-8: %s\n", charset); @@ -827,28 +745,7 @@ test_info (void) g_print ("current charset is not UTF-8: %s\n", charset); #ifdef G_PLATFORM_WIN32 -#ifdef G_OS_WIN32 - /* Can't calculate GLib DLL name at runtime. */ - glib_dll = "libglib-2.0-0.dll"; -#endif -#ifdef G_WITH_CYGWIN - glib_dll = "cygglib-2.0-0.dll"; -#endif - g_print ("current locale: %s\n", g_win32_getlocale ()); - g_print ("GLib DLL name tested for: %s\n", glib_dll); - - g_print ("GLib installation directory, from Registry entry for %s if available: %s\n", - GETTEXT_PACKAGE, - g_win32_get_package_installation_directory (GETTEXT_PACKAGE, NULL)); - g_print ("Ditto, or from GLib DLL name: %s\n", - g_win32_get_package_installation_directory (GETTEXT_PACKAGE, glib_dll)); - g_print ("Ditto, only from GLib DLL name: %s\n", - g_win32_get_package_installation_directory (NULL, glib_dll)); - g_print ("locale subdirectory of GLib installation directory: %s\n", - g_win32_get_package_installation_subdirectory (NULL, glib_dll, "lib\\locale")); - g_print ("GTK+ 2.0 installation directory, if available: %s\n", - g_win32_get_package_installation_directory ("gtk20", NULL)); g_print ("found more.com as %s\n", g_find_program_in_path ("more.com")); g_print ("found regedit as %s\n", g_find_program_in_path ("regedit")); @@ -1358,6 +1255,7 @@ various_string_tests (void) GTimeVal ref_date, date; gchar *tmp_string = NULL, *tmp_string_2, *string, *date_str; guint i; + const gchar *tz; if (g_test_verbose()) g_print ("checking string chunks..."); @@ -1383,36 +1281,106 @@ various_string_tests (void) g_free (tmp_string); g_free (string); -#define REF_INVALID "Wed Dec 19 17:20:20 GMT 2007" -#define REF_SEC_UTC 320063760 -#define REF_STR_UTC "1980-02-22T10:36:00Z" -#define REF_STR_CEST "1980-02-22T12:36:00+02:00" -#define REF_STR_EST "1980-02-22T05:36:00-05:00" +#define REF_INVALID1 "Wed Dec 19 17:20:20 GMT 2007" +#define REF_INVALID2 "1980-02-22T10:36:00Zulu" +#define REF_SEC_UTC 320063760 +#define REF_STR_UTC "1980-02-22T10:36:00Z" +#define REF_STR_LOCAL "1980-02-22T13:36:00" +#define REF_STR_CEST "1980-02-22T12:36:00+02:00" +#define REF_STR_EST "19800222T053600-0500" +#define REF_STR_NST "1980-02-22T07:06:00-03:30" +#define REF_USEC_UTC 50000 +#define REF_STR_USEC_UTC "1980-02-22T10:36:00.050000Z" +#define REF_STR_USEC_CEST "19800222T123600.050000000+0200" +#define REF_STR_USEC_EST "1980-02-22T05:36:00,05-05:00" +#define REF_STR_USEC_NST "19800222T070600,0500-0330" if (g_test_verbose()) g_print ("checking g_time_val_from_iso8601...\n"); ref_date.tv_sec = REF_SEC_UTC; ref_date.tv_usec = 0; - g_assert (g_time_val_from_iso8601 (REF_INVALID, &date) == FALSE); + g_assert (g_time_val_from_iso8601 (REF_INVALID1, &date) == FALSE); + g_assert (g_time_val_from_iso8601 (REF_INVALID2, &date) == FALSE); g_assert (g_time_val_from_iso8601 (REF_STR_UTC, &date) != FALSE); if (g_test_verbose()) - g_print ("\t=> UTC stamp = %ld (should be: %ld) (%ld off)\n", date.tv_sec, ref_date.tv_sec, date.tv_sec - ref_date.tv_sec); - g_assert (date.tv_sec == ref_date.tv_sec); + g_print ("\t=> UTC stamp = %ld.%06ld (should be: %ld.%06ld) (%ld.%06ld off)\n", + date.tv_sec, date.tv_usec, ref_date.tv_sec, ref_date.tv_usec, + date.tv_sec - ref_date.tv_sec, date.tv_usec - ref_date.tv_usec); + g_assert (date.tv_sec == ref_date.tv_sec && date.tv_usec == ref_date.tv_usec); + + /* predefine time zone */ + tz = g_getenv("TZ"); + g_setenv("TZ", "UTC-03:00", 1); + tzset(); + + g_assert (g_time_val_from_iso8601 (REF_STR_LOCAL, &date) != FALSE); + if (g_test_verbose()) + g_print ("\t=> LOCAL stamp = %ld.%06ld (should be: %ld.%06ld) (%ld.%06ld off)\n", + date.tv_sec, date.tv_usec, ref_date.tv_sec, ref_date.tv_usec, + date.tv_sec - ref_date.tv_sec, date.tv_usec - ref_date.tv_usec); + g_assert (date.tv_sec == ref_date.tv_sec && date.tv_usec == ref_date.tv_usec); + + /* revert back user defined time zone */ + if (tz) + g_setenv("TZ", tz, TRUE); + else + g_unsetenv("TZ"); + tzset(); g_assert (g_time_val_from_iso8601 (REF_STR_CEST, &date) != FALSE); if (g_test_verbose()) - g_print ("\t=> CEST stamp = %ld (should be: %ld) (%ld off)\n", date.tv_sec, ref_date.tv_sec, date.tv_sec - ref_date.tv_sec); - g_assert (date.tv_sec == ref_date.tv_sec); + g_print ("\t=> CEST stamp = %ld.%06ld (should be: %ld.%06ld) (%ld.%06ld off)\n", + date.tv_sec, date.tv_usec, ref_date.tv_sec, ref_date.tv_usec, + date.tv_sec - ref_date.tv_sec, date.tv_usec - ref_date.tv_usec); + g_assert (date.tv_sec == ref_date.tv_sec && date.tv_usec == ref_date.tv_usec); g_assert (g_time_val_from_iso8601 (REF_STR_EST, &date) != FALSE); if (g_test_verbose()) - g_print ("\t=> EST stamp = %ld (should be: %ld) (%ld off)\n", date.tv_sec, ref_date.tv_sec, date.tv_sec - ref_date.tv_sec); - g_assert (date.tv_sec == ref_date.tv_sec); + g_print ("\t=> EST stamp = %ld.%06ld (should be: %ld.%06ld) (%ld.%06ld off)\n", + date.tv_sec, date.tv_usec, ref_date.tv_sec, ref_date.tv_usec, + date.tv_sec - ref_date.tv_sec, date.tv_usec - ref_date.tv_usec); + g_assert (date.tv_sec == ref_date.tv_sec && date.tv_usec == ref_date.tv_usec); + + g_assert (g_time_val_from_iso8601 (REF_STR_NST, &date) != FALSE); + if (g_test_verbose()) + g_print ("\t=> NST stamp = %ld.%06ld (should be: %ld.%06ld) (%ld.%06ld off)\n", + date.tv_sec, date.tv_usec, ref_date.tv_sec, ref_date.tv_usec, + date.tv_sec - ref_date.tv_sec, date.tv_usec - ref_date.tv_usec); + g_assert (date.tv_sec == ref_date.tv_sec && date.tv_usec == ref_date.tv_usec); + + ref_date.tv_usec = REF_USEC_UTC; + g_assert (g_time_val_from_iso8601 (REF_STR_USEC_UTC, &date) != FALSE); + if (g_test_verbose()) + g_print ("\t=> UTC stamp = %ld.%06ld (should be: %ld.%06ld) (%ld.%06ld off)\n", + date.tv_sec, date.tv_usec, ref_date.tv_sec, ref_date.tv_usec, + date.tv_sec - ref_date.tv_sec, date.tv_usec - ref_date.tv_usec); + g_assert (date.tv_sec == ref_date.tv_sec && date.tv_usec == ref_date.tv_usec); + + g_assert (g_time_val_from_iso8601 (REF_STR_USEC_CEST, &date) != FALSE); + if (g_test_verbose()) + g_print ("\t=> CEST stamp = %ld.%06ld (should be: %ld.%06ld) (%ld.%06ld off)\n", + date.tv_sec, date.tv_usec, ref_date.tv_sec, ref_date.tv_usec, + date.tv_sec - ref_date.tv_sec, date.tv_usec - ref_date.tv_usec); + g_assert (date.tv_sec == ref_date.tv_sec && date.tv_usec == ref_date.tv_usec); + + g_assert (g_time_val_from_iso8601 (REF_STR_USEC_EST, &date) != FALSE); + if (g_test_verbose()) + g_print ("\t=> EST stamp = %ld.%06ld (should be: %ld.%06ld) (%ld.%06ld off)\n", + date.tv_sec, date.tv_usec, ref_date.tv_sec, ref_date.tv_usec, + date.tv_sec - ref_date.tv_sec, date.tv_usec - ref_date.tv_usec); + g_assert (date.tv_sec == ref_date.tv_sec && date.tv_usec == ref_date.tv_usec); + + g_assert (g_time_val_from_iso8601 (REF_STR_USEC_NST, &date) != FALSE); + if (g_test_verbose()) + g_print ("\t=> NST stamp = %ld.%06ld (should be: %ld.%06ld) (%ld.%06ld off)\n", + date.tv_sec, date.tv_usec, ref_date.tv_sec, ref_date.tv_usec, + date.tv_sec - ref_date.tv_sec, date.tv_usec - ref_date.tv_usec); + g_assert (date.tv_sec == ref_date.tv_sec && date.tv_usec == ref_date.tv_usec); if (g_test_verbose()) g_print ("checking g_time_val_to_iso8601...\n"); ref_date.tv_sec = REF_SEC_UTC; - ref_date.tv_usec = 1; + ref_date.tv_usec = 0; date_str = g_time_val_to_iso8601 (&ref_date); g_assert (date_str != NULL); if (g_test_verbose()) @@ -1420,6 +1388,14 @@ various_string_tests (void) g_assert (strcmp (date_str, REF_STR_UTC) == 0); g_free (date_str); + ref_date.tv_usec = REF_USEC_UTC; + date_str = g_time_val_to_iso8601 (&ref_date); + g_assert (date_str != NULL); + if (g_test_verbose()) + g_print ("\t=> date string = %s (should be: %s)\n", date_str, REF_STR_USEC_UTC); + g_assert (strcmp (date_str, REF_STR_USEC_UTC) == 0); + g_free (date_str); + if (g_test_verbose()) g_print ("checking g_ascii_strcasecmp..."); g_assert (g_ascii_strcasecmp ("FroboZZ", "frobozz") == 0); @@ -1523,6 +1499,7 @@ various_string_tests (void) /* g_debug (argv[0]); */ } +#ifndef G_DISABLE_DEPRECATED static void test_mem_chunks (void) { @@ -1539,6 +1516,7 @@ test_mem_chunks (void) for (i = 0; i < 10000; i++) g_mem_chunk_free (mem_chunk, mem[i]); } +#endif int main (int argc, @@ -1559,9 +1537,10 @@ main (int argc, g_test_add_func ("/testglib/Relation", relation_test); g_test_add_func ("/testglib/File Paths", test_paths); g_test_add_func ("/testglib/File Functions", test_file_functions); - g_test_add_func ("/testglib/Mkdir", test_g_mkdir_with_parents); g_test_add_func ("/testglib/Parse Debug Strings", test_g_parse_debug_string); +#ifndef G_DISABLE_DEPRECATED g_test_add_func ("/testglib/GMemChunk (deprecated)", test_mem_chunks); +#endif g_test_add_func ("/testglib/Warnings & Errors", log_warning_error_tests); g_test_add_func ("/testglib/Timers (slow)", timer_tests);