diff --git a/libknet/tests/api_knet_addrtostr.c b/libknet/tests/api_knet_addrtostr.c index d7c43959..71fc2cfe 100644 --- a/libknet/tests/api_knet_addrtostr.c +++ b/libknet/tests/api_knet_addrtostr.c @@ -1,127 +1,127 @@ /* * Copyright (C) 2017-2018 Red Hat, Inc. All rights reserved. * * Authors: Fabio M. Di Nitto * Federico Simoncelli * * This software licensed under GPL-2.0+, LGPL-2.0+ */ #include "config.h" #include #include #include #include #include #include #include #include "libknet.h" #include "test-common.h" static void test(void) { struct sockaddr_storage addr; struct sockaddr_in *addrv4; struct sockaddr_in6 *addrv6; char addr_str[KNET_MAX_HOST_LEN]; char port_str[KNET_MAX_PORT_LEN]; memset(&addr, 0, sizeof(struct sockaddr_storage)); printf("Checking knet_addrtostr with invalid ss\n"); if (!knet_addrtostr(NULL, sizeof(struct sockaddr_storage), addr_str, KNET_MAX_HOST_LEN, - port_str, KNET_MAX_PORT_LEN) && (errno != EINVAL)) { - printf("knet_addrtostr accepted invalid ss\n"); + port_str, KNET_MAX_PORT_LEN) || (errno != EINVAL)) { + printf("knet_addrtostr accepted invalid ss or returned incorrect error: %s\n", strerror(errno)); exit(FAIL); } printf("Checking knet_addrtostr with invalid sslen\n"); if (!knet_addrtostr(&addr, 0, addr_str, KNET_MAX_HOST_LEN, - port_str, KNET_MAX_PORT_LEN) && (errno != EINVAL)) { - printf("knet_addrtostr accepted invalid sslen\n"); + port_str, KNET_MAX_PORT_LEN) || (errno != EINVAL)) { + printf("knet_addrtostr accepted invalid sslen or returned incorrect error: %s\n", strerror(errno)); exit(FAIL); } printf("Checking knet_addrtostr with invalid addr_str\n"); if (!knet_addrtostr(&addr, sizeof(struct sockaddr_storage), NULL, KNET_MAX_HOST_LEN, - port_str, KNET_MAX_PORT_LEN) && (errno != EINVAL)) { - printf("knet_addrtostr accepted invalid addr_str\n"); + port_str, KNET_MAX_PORT_LEN) || (errno != EINVAL)) { + printf("knet_addrtostr accepted invalid addr_str or returned incorrect error: %s\n", strerror(errno)); exit(FAIL); } printf("Checking knet_addrtostr with invalid port_str\n"); if (!knet_addrtostr(&addr, sizeof(struct sockaddr_storage), addr_str, KNET_MAX_HOST_LEN, - NULL, KNET_MAX_PORT_LEN) && (errno != EINVAL)) { - printf("knet_addrtostr accepted invalid addr_str\n"); + NULL, KNET_MAX_PORT_LEN) || (errno != EINVAL)) { + printf("knet_addrtostr accepted invalid addr_str or returned incorrect error: %s\n", strerror(errno)); exit(FAIL); } addrv4 = (struct sockaddr_in *)&addr; addrv4->sin_family = AF_INET; addrv4->sin_addr.s_addr = htonl(0xc0a80001); /* 192.168.0.1 */ addrv4->sin_port = htons(50000); printf("Checking knet_addrtostr with valid data (192.168.0.1:50000)\n"); if (knet_addrtostr(&addr, sizeof(struct sockaddr_storage), addr_str, KNET_MAX_HOST_LEN, port_str, KNET_MAX_PORT_LEN) < 0) { printf("Unable to convert 192.168.0.1:50000\n"); exit(FAIL); } if (strcmp(addr_str, "192.168.0.1") != 0) { printf("Wrong address conversion: %s\n", addr_str); exit(EXIT_FAILURE); } if (strcmp(port_str, "50000") != 0) { printf("Wrong port conversion: %s\n", port_str); exit(EXIT_FAILURE); } printf("Checking knet_addrtostr with valid data ([fd00::1]:50000)\n"); memset(&addr, 0, sizeof(struct sockaddr_storage)); addrv6 = (struct sockaddr_in6 *)&addr; addrv6->sin6_family = AF_INET6; addrv6->sin6_addr.s6_addr16[0] = htons(0xfd00); /* fd00::1 */ addrv6->sin6_addr.s6_addr16[7] = htons(0x0001); addrv6->sin6_port = htons(50000); if (knet_addrtostr(&addr, sizeof(struct sockaddr_storage), addr_str, KNET_MAX_HOST_LEN, port_str, KNET_MAX_PORT_LEN) < 0) { printf("Unable to convert [fd00::1]:50000\n"); exit(FAIL); } if (strcmp(addr_str, "fd00::1") != 0) { printf("Wrong address conversion: %s\n", addr_str); exit(FAIL); } if (strcmp(port_str, "50000") != 0) { printf("Wrong port conversion: %s\n", port_str); exit(EXIT_FAILURE); } } int main(int argc, char *argv[]) { test(); exit(PASS); } diff --git a/libknet/tests/api_knet_strtoaddr.c b/libknet/tests/api_knet_strtoaddr.c index ac301ffe..08786034 100644 --- a/libknet/tests/api_knet_strtoaddr.c +++ b/libknet/tests/api_knet_strtoaddr.c @@ -1,115 +1,115 @@ /* * Copyright (C) 2017-2018 Red Hat, Inc. All rights reserved. * * Authors: Fabio M. Di Nitto * Federico Simoncelli * * This software licensed under GPL-2.0+, LGPL-2.0+ */ #include "config.h" #include #include #include #include #include #include #include #include "libknet.h" #include "test-common.h" static void test(void) { struct sockaddr_storage out_addr; struct sockaddr_in *out_addrv4 = (struct sockaddr_in *)&out_addr; struct sockaddr_in6 *out_addrv6 = (struct sockaddr_in6 *)&out_addr; struct sockaddr_in addrv4; struct sockaddr_in6 addrv6; memset(&out_addr, 0, sizeof(struct sockaddr_storage)); memset(&addrv4, 0, sizeof(struct sockaddr_in)); memset(&addrv6, 0, sizeof(struct sockaddr_in6)); printf("Checking knet_strtoaddr with invalid host\n"); - if (!knet_strtoaddr(NULL, "50000", &out_addr, sizeof(struct sockaddr_storage)) && + if (!knet_strtoaddr(NULL, "50000", &out_addr, sizeof(struct sockaddr_storage)) || (errno != EINVAL)) { - printf("knet_strtoaddr accepted invalid host\n"); + printf("knet_strtoaddr accepted invalid host or returned incorrect error: %s\n", strerror(errno)); exit(FAIL); } printf("Checking knet_strtoaddr with invalid port\n"); - if (!knet_strtoaddr("127.0.0.1", NULL, &out_addr, sizeof(struct sockaddr_storage)) && + if (!knet_strtoaddr("127.0.0.1", NULL, &out_addr, sizeof(struct sockaddr_storage)) || (errno != EINVAL)) { - printf("knet_strtoaddr accepted invalid port\n"); + printf("knet_strtoaddr accepted invalid port or returned incorrect error: %s\n", strerror(errno)); exit(FAIL); } printf("Checking knet_strtoaddr with invalid addr\n"); - if (!knet_strtoaddr("127.0.0.1", "50000", NULL, sizeof(struct sockaddr_storage)) && + if (!knet_strtoaddr("127.0.0.1", "50000", NULL, sizeof(struct sockaddr_storage)) || (errno != EINVAL)) { - printf("knet_strtoaddr accepted invalid addr\n"); + printf("knet_strtoaddr accepted invalid addr or returned incorrect error: %s\n", strerror(errno)); exit(FAIL); } printf("Checking knet_strtoaddr with invalid size\n"); - if (!knet_strtoaddr("127.0.0.1", "50000", &out_addr, 0) && + if (!knet_strtoaddr("127.0.0.1", "50000", &out_addr, 0) || (errno != EINVAL)) { - printf("knet_strtoaddr accepted invalid size\n"); + printf("knet_strtoaddr accepted invalid size or returned incorrect error: %s\n", strerror(errno)); exit(FAIL); } addrv4.sin_family = AF_INET; addrv4.sin_addr.s_addr = htonl(0xc0a80001); /* 192.168.0.1 */ addrv4.sin_port = htons(50000); printf("Checking knet_strtoaddr with valid data (192.168.0.1:50000)\n"); if (knet_strtoaddr("192.168.0.1", "50000", &out_addr, sizeof(struct sockaddr_storage))) { printf("Unable to convert 192.168.0.1:50000\n"); exit(FAIL); } if (out_addrv4->sin_family != addrv4.sin_family || out_addrv4->sin_port != addrv4.sin_port || out_addrv4->sin_addr.s_addr != addrv4.sin_addr.s_addr) { printf("Check on 192.168.0.1:50000 failed\n"); exit(FAIL); } printf("Checking knet_strtoaddr with valid data ([fd00::1]:50000)\n"); memset(&out_addr, 0, sizeof(struct sockaddr_storage)); addrv6.sin6_family = AF_INET6; addrv6.sin6_addr.s6_addr16[0] = htons(0xfd00); /* fd00::1 */ addrv6.sin6_addr.s6_addr16[7] = htons(0x0001); addrv6.sin6_port = htons(50000); if (knet_strtoaddr("fd00::1", "50000", &out_addr, sizeof(struct sockaddr_storage))) { printf("Unable to convert fd00::1:50000\n"); exit(FAIL); } if (out_addrv6->sin6_family != addrv6.sin6_family || out_addrv6->sin6_port != addrv6.sin6_port || memcmp(&out_addrv6->sin6_addr, &addrv6.sin6_addr, sizeof(struct in6_addr))) { printf("Check on fd00::1:50000 failed\n"); exit(FAIL); } } int main(int argc, char *argv[]) { test(); exit(PASS); }