Merge branch 'w32-testsuite-fixes-general' into 'master'

General fixes to W32 test suite

Closes #875

See merge request GNOME/glib!665
This commit is contained in:
Philip Withnall 2019-02-13 10:40:11 +00:00
commit c5c9b29b9d
7 changed files with 46 additions and 10 deletions

View File

@ -151,7 +151,7 @@ G_DEFINE_BOXED_TYPE (GResource, g_resource, g_resource_ref, g_resource_unref)
* When debugging a program or testing a change to an installed version, it is often useful to be able to
* replace resources in the program or library, without recompiling, for debugging or quick hacking and testing
* purposes. Since GLib 2.50, it is possible to use the `G_RESOURCE_OVERLAYS` environment variable to selectively overlay
* resources with replacements from the filesystem. It is a colon-separated list of substitutions to perform
* resources with replacements from the filesystem. It is a %G_SEARCHPATH_SEPARATOR-separated list of substitutions to perform
* during resource lookups.
*
* A substitution has the form
@ -332,7 +332,7 @@ g_resource_find_overlay (const gchar *path,
gchar **parts;
gint i, j;
parts = g_strsplit (envvar, ":", 0);
parts = g_strsplit (envvar, G_SEARCHPATH_SEPARATOR_S, 0);
/* Sanity check the parts, dropping those that are invalid.
* 'i' may grow faster than 'j'.
@ -378,9 +378,9 @@ g_resource_find_overlay (const gchar *path,
continue;
}
if (eq[1] != '/')
if (!g_path_is_absolute (eq + 1))
{
g_critical ("G_RESOURCE_OVERLAYS segment '%s' lacks leading '/' after '='. Ignoring", part);
g_critical ("G_RESOURCE_OVERLAYS segment '%s' does not have an absolute path after '='. Ignoring", part);
g_free (part);
continue;
}

View File

@ -8,7 +8,7 @@ test_autoptr (void)
g_autofree gchar *path = g_file_get_path (p);
g_autofree gchar *istr = g_inet_address_to_string (a);
g_assert_cmpstr (path, ==, "/blah");
g_assert_cmpstr (path, ==, G_DIR_SEPARATOR_S "blah");
g_assert_cmpstr (istr, ==, "127.0.0.1");
}

View File

@ -271,6 +271,7 @@ find_ifname_and_index (void)
static void
test_scope_id (GSocketConnectable *addr)
{
#ifndef G_OS_WIN32
GSocketAddressEnumerator *addr_enum;
GSocketAddress *saddr;
GInetSocketAddress *isaddr;
@ -300,6 +301,9 @@ test_scope_id (GSocketConnectable *addr)
g_assert (saddr == NULL);
g_object_unref (addr_enum);
#else
g_test_skip ("winsock2 getaddrinfo() cant understand scope IDs");
#endif
}
static void

View File

@ -173,7 +173,7 @@ g_winhttp_vfs_get_file_for_uri (GVfs *vfs,
return _g_winhttp_file_new (winhttp_vfs, uri);
/* For other URIs fallback to the wrapped GVfs */
return g_vfs_parse_name (winhttp_vfs->wrapped_vfs, uri);
return g_vfs_get_file_for_uri (winhttp_vfs->wrapped_vfs, uri);
}
static const gchar * const *

View File

@ -17,6 +17,11 @@
*/
#include <glib.h>
#ifdef G_OS_WIN32
#include <fcntl.h>
#include <io.h>
#include <stdio.h>
#endif
static void
test_pass (void)
@ -47,6 +52,14 @@ main (int argc,
{
char *argv1;
#ifdef G_OS_WIN32
/* Windows opens std streams in text mode, with \r\n EOLs.
* Sometimes it's easier to force a switch to binary mode than
* to account for extra \r in testcases.
*/
setmode (fileno (stdout), O_BINARY);
#endif
g_return_val_if_fail (argc > 1, 1);
argv1 = argv[1];

View File

@ -133,10 +133,13 @@ int main(int argc, char** argv)
g_date_set_julian(d, 1);
TEST("GDate's \"Julian\" epoch's first day is valid", g_date_valid(d));
#ifndef G_OS_WIN32
g_date_strftime(buf,100,"Our \"Julian\" epoch begins on a %A, in the month of %B, %x\n",
d);
g_print("%s", buf);
#else
g_print ("But Windows FILETIME does not support dates before Jan 1 1601, so we can't strftime() the beginning of the \"Julian\" epoch.\n");
#endif
g_date_set_dmy(d, 10, 1, 2000);
g_date_strftime(buf,100,"%x", d);

View File

@ -843,6 +843,7 @@ test_paths (void)
gchar *relative_path;
gchar *canonical_path;
} canonicalize_filename_checks[] = {
#ifndef G_OS_WIN32
{ "/etc", "../usr/share", "/usr/share" },
{ "/", "/foo/bar", "/foo/bar" },
{ "/usr/bin", "../../foo/bar", "/foo/bar" },
@ -857,7 +858,22 @@ test_paths (void)
{ "///triple/slash", ".", "/triple/slash" },
{ "//double/slash", ".", "//double/slash" },
{ "/cwd/../with/./complexities/", "./hello", "/with/complexities/hello" },
#ifdef G_OS_WIN32
#else
{ "/etc", "../usr/share", "\\usr\\share" },
{ "/", "/foo/bar", "\\foo\\bar" },
{ "/usr/bin", "../../foo/bar", "\\foo\\bar" },
{ "/", "../../foo/bar", "\\foo\\bar" },
{ "/double//dash", "../../foo/bar", "\\foo\\bar" },
{ "/usr/share/foo", ".././././bar", "\\usr\\share\\bar" },
{ "/foo/bar", "../bar/./.././bar", "\\foo\\bar" },
{ "/test///dir", "../../././foo/bar", "\\foo\\bar" },
{ "/test///dir", "../../././/foo///bar", "\\foo\\bar" },
{ "/etc", "///triple/slash", "\\triple\\slash" },
{ "/etc", "//double/slash", "//double/slash" },
{ "///triple/slash", ".", "\\triple\\slash" },
{ "//double/slash", ".", "//double/slash\\" },
{ "/cwd/../with/./complexities/", "./hello", "\\with\\complexities\\hello" },
{ "\\etc", "..\\usr\\share", "\\usr\\share" },
{ "\\", "\\foo\\bar", "\\foo\\bar" },
{ "\\usr\\bin", "..\\..\\foo\\bar", "\\foo\\bar" },
@ -870,8 +886,8 @@ test_paths (void)
{ "\\etc", "\\\\\\triple\\slash", "\\triple\\slash" },
{ "\\etc", "\\\\double\\slash", "\\\\double\\slash" },
{ "\\\\\\triple\\slash", ".", "\\triple\\slash" },
{ "\\\\double\\slash", ".", "\\\\double\\slash" },
{ "\\cwd\\..\\with\\.\\complexities\\", ".\\hello", "\\cwd\\with\\complexities\\hello" },
{ "\\\\double\\slash", ".", "\\\\double\\slash\\" },
{ "\\cwd\\..\\with\\.\\complexities\\", ".\\hello", "\\with\\complexities\\hello" },
#endif
};
const guint n_canonicalize_filename_checks = G_N_ELEMENTS (canonicalize_filename_checks);