Fix the Keyfile Test on Windows

Windows will not allow one to write to a temp file opened by g_mkstemp()
by opening another fd associated with it before one closes the fd that
is returned by g_mkstemp(), which will cause the test_save test to fail.

Fix this by using a variable to store the fd from g_mkstemp() and checking
it, and call close() on that variable before attempting to call
g_key_file_save_to_file() on the temp file as that will attempt to open
another fd (which would not work) associated with that temp file.

https://bugzilla.gnome.org/show_bug.cgi?id=719344
This commit is contained in:
Chun-wei Fan 2013-12-17 10:58:15 +08:00
parent 6448f87552
commit 3fd6edab66

View File

@ -1370,13 +1370,16 @@ test_save (void)
gchar *file;
guint64 c;
GError *error = NULL;
int fd;
kf = g_key_file_new ();
ok = g_key_file_load_from_data (kf, data, strlen (data), 0, NULL);
g_assert (ok);
file = g_strdup ("key_file_XXXXXX");
g_mkstemp (file);
fd = g_mkstemp (file);
g_assert (fd != -1);
close (fd);
ok = g_key_file_save_to_file (kf, file, &error);
g_assert (ok);
g_assert_no_error (error);