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); --
