barbieri pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e2c0b7741b7545408f4f10dcfebc36aab65f4276

commit e2c0b7741b7545408f4f10dcfebc36aab65f4276
Author: Gustavo Sverzut Barbieri <[email protected]>
Date:   Mon Dec 19 15:49:16 2016 -0200

    tests/ecore_con: skip ipv6 tests if that's disabled on the running system.
---
 .../ecore_con/ecore_con_test_efl_net_ip_address.c  | 36 ++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/src/tests/ecore_con/ecore_con_test_efl_net_ip_address.c 
b/src/tests/ecore_con/ecore_con_test_efl_net_ip_address.c
index 9eda9dd..7f15c1f 100644
--- a/src/tests/ecore_con/ecore_con_test_efl_net_ip_address.c
+++ b/src/tests/ecore_con/ecore_con_test_efl_net_ip_address.c
@@ -30,6 +30,7 @@
 #include <ctype.h>
 
 #include "ecore_con_suite.h"
+#include "ecore_con_private.h"
 
 struct log_ctx {
    const char *dom;
@@ -720,6 +721,34 @@ END_TEST
 
 /* IPv6 *****************************************************************/
 
+static Eina_Bool
+_ipv6_enabled(void)
+{
+   SOCKET fd;
+   struct sockaddr_in6 addr = {
+     .sin6_family = AF_INET6,
+   };
+   int r;
+
+   fd = socket(AF_INET6, SOCK_STREAM, 0);
+   if (fd == INVALID_SOCKET)
+     {
+        Eina_Error err = efl_net_socket_error_get();
+        fprintf(stderr, "WARNING: failed socket(AF_INET6, SOCK_STREAM, 0): 
%s\n", eina_error_msg_get(err));
+        return EINA_FALSE;
+     }
+
+   r = bind(fd, &addr, sizeof(addr));
+   if (r != 0)
+     {
+        Eina_Error err = efl_net_socket_error_get();
+        fprintf(stderr, "WARNING: failed bind(" SOCKET_FMT ", 
{.sin6_family=AF_INET6, .sin6_addr={0}, .sin6_port=0}, sizeof(struct 
sockaddr_in6)): %s\n", fd, eina_error_msg_get(err));
+     }
+
+   closesocket(fd);
+   return r == 0;
+}
+
 static void
 _ipv6_check(Eo *o, const struct sockaddr_in6 *addr)
 {
@@ -1268,6 +1297,13 @@ void ecore_con_test_efl_net_ip_address(TCase *tc)
    tcase_add_test(tc, ecore_test_efl_net_ip_address_ipv4_resolve_ok);
    tcase_add_test(tc, ecore_test_efl_net_ip_address_ipv4_resolve_fail);
    tcase_add_test(tc, ecore_test_efl_net_ip_address_ipv4_checks);
+
+   if (!_ipv6_enabled())
+     {
+        fputs("\nWARNING: your system has IPv6 disabled. Skipping IPv6 
tests!\n\n", stderr);
+        return;
+     }
+
    tcase_add_test(tc, ecore_test_efl_net_ip_address_ipv6_manual_ok);
    tcase_add_test(tc, ecore_test_efl_net_ip_address_ipv6_manual_fail);
    tcase_add_test(tc, ecore_test_efl_net_ip_address_ipv6_create_ok);

-- 


Reply via email to