[glib] win32: various fixes to test programs
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] win32: various fixes to test programs
- Date: Thu, 15 Nov 2012 19:37:00 +0000 (UTC)
commit f80d8f1e4d583167234d79ace0a3ef7081826317
Author: Dan Winship <danw gnome org>
Date: Sat Nov 10 11:06:57 2012 -0500
win32: various fixes to test programs
Fix a few win32-specific bugs in various tests, and #ifdef out code
that is UNIX- or Linux-specific that wouldn't be expected to pass on
Windows.
https://bugzilla.gnome.org/show_bug.cgi?id=688109
glib/tests/fileutils.c | 2 +-
glib/tests/gdatetime.c | 5 ++++-
glib/tests/keyfile.c | 13 +++++++++++--
glib/tests/mappedfile.c | 4 ++++
glib/tests/uri.c | 25 +++++++++++++------------
glib/tests/utils.c | 17 +++++++++++++++++
6 files changed, 50 insertions(+), 16 deletions(-)
---
diff --git a/glib/tests/fileutils.c b/glib/tests/fileutils.c
index 5f38874..be9acdb 100644
--- a/glib/tests/fileutils.c
+++ b/glib/tests/fileutils.c
@@ -620,7 +620,7 @@ test_basename (void)
g_free (b);
b = g_path_get_basename ("///");
- g_assert_cmpstr (b, ==, "/");
+ g_assert_cmpstr (b, ==, G_DIR_SEPARATOR_S);
g_free (b);
b = g_path_get_basename ("/a/b/c/d");
diff --git a/glib/tests/gdatetime.c b/glib/tests/gdatetime.c
index 4def53e..b2e6924 100644
--- a/glib/tests/gdatetime.c
+++ b/glib/tests/gdatetime.c
@@ -678,6 +678,7 @@ test_GDateTime_new_from_unix_utc (void)
static void
test_GDateTime_get_utc_offset (void)
{
+#if defined (HAVE_STRUCT_TM_TM_GMTOFF) || defined (HAVE_STRUCT_TM___TM_GMTOFF)
GDateTime *dt;
GTimeSpan ts;
struct tm tm;
@@ -694,6 +695,7 @@ test_GDateTime_get_utc_offset (void)
g_assert_cmpint (ts, ==, (tm.__tm_gmtoff * G_TIME_SPAN_SECOND));
#endif
g_date_time_unref (dt);
+#endif
}
static void
@@ -1209,7 +1211,7 @@ test_z (void)
static void
test_strftime (void)
{
- /* this is probably going to cause various buggy libcs to explode... */
+#ifdef __linux__
#define TEST_FORMAT \
"a%a A%A b%b B%B c%c C%C d%d e%e F%F g%g G%G h%h H%H I%I j%j m%m M%M " \
"n%n p%p r%r R%R S%S t%t T%T u%u V%V w%w x%x X%X y%y Y%Y z%z Z%Z %%"
@@ -1229,6 +1231,7 @@ test_strftime (void)
g_date_time_unref (date_time);
g_free (dt_str);
}
+#endif
}
static void
diff --git a/glib/tests/keyfile.c b/glib/tests/keyfile.c
index 4c12b57..530fbf1 100644
--- a/glib/tests/keyfile.c
+++ b/glib/tests/keyfile.c
@@ -1301,11 +1301,18 @@ test_load (void)
GKeyFile *file;
GError *error;
gboolean bools[2] = { TRUE, FALSE };
+ gboolean loaded;
file = g_key_file_new ();
error = NULL;
- g_assert (g_key_file_load_from_data_dirs (file, "keyfiletest.ini", NULL, 0, &error));
+#ifdef G_OS_UNIX
+ /* Uses the value of $XDG_DATA_HOME we set in main() */
+ loaded = g_key_file_load_from_data_dirs (file, "keyfiletest.ini", NULL, 0, &error);
+#else
+ loaded = g_key_file_load_from_file (file, SRCDIR "/keyfiletest.ini", 0, &error);
+#endif
g_assert_no_error (error);
+ g_assert (loaded);
g_key_file_set_locale_string (file, "test", "key4", "de", "Vierter SchlÃssel");
g_key_file_set_boolean_list (file, "test", "key5", bools, 2);
@@ -1333,7 +1340,7 @@ test_load_fail (void)
file = g_key_file_new ();
error = NULL;
- g_assert (!g_key_file_load_from_file (file, "/", 0, &error));
+ g_assert (!g_key_file_load_from_file (file, SRCDIR "/keyfile.c", 0, &error));
g_assert_error (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_PARSE);
g_clear_error (&error);
g_assert (!g_key_file_load_from_file (file, "/nosuchfile", 0, &error));
@@ -1566,7 +1573,9 @@ test_roundtrip (void)
int
main (int argc, char *argv[])
{
+#ifdef G_OS_UNIX
g_setenv ("XDG_DATA_HOME", SRCDIR, TRUE);
+#endif
g_test_init (&argc, &argv, NULL);
g_test_bug_base ("http://bugzilla.gnome.org/");
diff --git a/glib/tests/mappedfile.c b/glib/tests/mappedfile.c
index 3de9393..8d5258d 100644
--- a/glib/tests/mappedfile.c
+++ b/glib/tests/mappedfile.c
@@ -42,6 +42,7 @@ test_empty (void)
g_mapped_file_free (file);
}
+#ifdef G_OS_UNIX
static void
test_device (void)
{
@@ -53,6 +54,7 @@ test_device (void)
g_assert (file == NULL);
g_error_free (error);
}
+#endif
static void
test_nonexisting (void)
@@ -173,7 +175,9 @@ main (int argc, char *argv[])
g_test_add_func ("/mappedfile/basic", test_basic);
g_test_add_func ("/mappedfile/empty", test_empty);
+#ifdef G_OS_UNIX
g_test_add_func ("/mappedfile/device", test_device);
+#endif
g_test_add_func ("/mappedfile/nonexisting", test_nonexisting);
g_test_add_func ("/mappedfile/writable", test_writable);
g_test_add_func ("/mappedfile/writable_fd", test_writable_fd);
diff --git a/glib/tests/uri.c b/glib/tests/uri.c
index 828dcac..0fc7657 100644
--- a/glib/tests/uri.c
+++ b/glib/tests/uri.c
@@ -204,15 +204,16 @@ run_from_uri_tests (void)
&error);
#ifdef G_OS_WIN32
- {
- gchar *p, *slash;
- p = from_uri_tests[i].expected_filename = g_strdup (from_uri_tests[i].expected_filename);
- while ((slash = strchr (p, '/')) != NULL)
- {
- *slash = '\\';
- p = slash + 1;
- }
- }
+ if (from_uri_tests[i].expected_filename)
+ {
+ gchar *p, *slash;
+ p = from_uri_tests[i].expected_filename = g_strdup (from_uri_tests[i].expected_filename);
+ while ((slash = strchr (p, '/')) != NULL)
+ {
+ *slash = '\\';
+ p = slash + 1;
+ }
+ }
#endif
if (res)
g_assert_cmpstr (res, ==, from_uri_tests[i].expected_filename);
@@ -257,12 +258,12 @@ safe_strcmp_hostname (const gchar *a, const gchar *b)
if (b == NULL)
b = "";
#ifndef G_OS_WIN32
- return g_strcmp0 (a, b);
+ return strcmp (a, b);
#else
- if (g_strcmp0 (a, "localhost") == 0 && b == NULL)
+ if (strcmp (a, "localhost") == 0 && !*b)
return 0;
else
- return g_strcmp0 (a, b);
+ return strcmp (a, b);
#endif
}
diff --git a/glib/tests/utils.c b/glib/tests/utils.c
index 9d79584..9c89bde 100644
--- a/glib/tests/utils.c
+++ b/glib/tests/utils.c
@@ -236,6 +236,7 @@ test_find_program (void)
{
gchar *res;
+#ifdef G_OS_UNIX
res = g_find_program_in_path ("sh");
g_assert (res != NULL);
g_free (res);
@@ -243,6 +244,11 @@ test_find_program (void)
res = g_find_program_in_path ("/bin/sh");
g_assert (res != NULL);
g_free (res);
+#else
+ /* There's not a lot we can search for that would reliably work both
+ * on real Windows and mingw.
+ */
+#endif
res = g_find_program_in_path ("this_program_does_not_exit");
g_assert (res == NULL);
@@ -370,6 +376,7 @@ test_hostname (void)
g_assert (name != NULL);
}
+#ifdef G_OS_UNIX
static void
test_xdg_dirs (void)
{
@@ -427,6 +434,7 @@ test_xdg_dirs (void)
g_strfreev ((gchar **)dirs);
g_free (s);
}
+#endif
static void
test_special_dir (void)
@@ -508,6 +516,13 @@ main (int argc,
g_unsetenv ("TMP");
g_unsetenv ("TEMP");
+ /* g_test_init() only calls g_set_prgname() if g_get_prgname()
+ * returns %NULL, but g_get_prgname() on Windows never returns NULL.
+ * So we need to do this by hand to make test_appname() work on
+ * Windows.
+ */
+ g_set_prgname (argv[0]);
+
g_test_init (&argc, &argv, NULL);
g_test_bug_base ("http://bugzilla.gnome.org/");
@@ -526,7 +541,9 @@ main (int argc,
g_test_add_func ("/utils/username", test_username);
g_test_add_func ("/utils/realname", test_realname);
g_test_add_func ("/utils/hostname", test_hostname);
+#ifdef G_OS_UNIX
g_test_add_func ("/utils/xdgdirs", test_xdg_dirs);
+#endif
g_test_add_func ("/utils/specialdir", test_special_dir);
g_test_add_func ("/utils/specialdir/desktop", test_desktop_special_dir);
g_test_add_func ("/utils/clear-pointer", test_clear_pointer);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]