gio/tests/network-address: fix when no network is available
authorDan Winship <danw@gnome.org>
Tue, 27 May 2014 13:39:46 +0000 (09:39 -0400)
committerDan Winship <danw@gnome.org>
Tue, 27 May 2014 13:42:50 +0000 (09:42 -0400)
GResolver doesn't do full validation of its inputs, so in some of
these tests, the fact that we were getting back
G_RESOLVER_ERROR_NOT_FOUND is because the junk string was getting
passed to an upstream DNS resolver, which returned NXDOMAIN. But if
there's no network on the machine then we'd get
G_RESOLVER_ERROR_INTERNAL instead in that case.

gio/tests/network-address.c

index ac4842c..44b6990 100644 (file)
@@ -210,7 +210,24 @@ test_resolve_address_gresolver (gconstpointer d)
   else
     {
       g_assert_false (test->valid_resolve);
-      g_assert_error (error, G_RESOLVER_ERROR, G_RESOLVER_ERROR_NOT_FOUND);
+
+      if (!test->valid_parse)
+        {
+          /* GResolver should have rejected the address internally, in
+           * which case we're guaranteed to get G_RESOLVER_ERROR_NOT_FOUND.
+           */
+          g_assert_error (error, G_RESOLVER_ERROR, G_RESOLVER_ERROR_NOT_FOUND);
+        }
+      else
+        {
+          /* If GResolver didn't reject the string itself, then we
+           * might have attempted to send it over the network. If that
+           * attempt succeeded, we'd get back NOT_FOUND, but if
+           * there's no network available we might have gotten some
+           * other error instead.
+           */
+        }
+
       g_error_free (error);
       return;
     }