diff --git a/tests/Makefile.am b/tests/Makefile.am index 58ad51fb..c5dd7d53 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -19,11 +19,22 @@ dist_check_SCRIPTS = test-pass test-pass-cert test-cert test-iroute test-pass-sc radius-test test-gssapi kerberos-test pam-test test-ban test-sighup \ test-cookie-invalidation + +ipv4_prefix_CPPFLAGS = \ + -I$(top_srcdir)/src/ \ + -I$(top_builddir)/src/ \ + -I$(top_srcdir)/gl/ \ + -I$(top_builddir)/gl/ +ipv4_prefix_SOURCES = ../src/common.c ../src/common.h ipv4-prefix.c +ipv4_prefix_LDADD = ../gl/libgnu.a $(LIBTALLOC_LIBS) + +check_PROGRAMS = ipv4-prefix + TESTS = test-pass test-pass-cert test-cert test-iroute test-pass-script \ test-multi-cookie full-test test-group-pass test-pass-group-cert \ ocpasswd-test test-pass-group-cert-no-pass unix-test test-pass-opt-cert \ test-cookie-timeout test-cookie-timeout-2 test-explicit-ip radius-test \ - test-gssapi kerberos-test pam-test test-ban test-sighup + test-gssapi kerberos-test pam-test test-ban test-sighup ipv4-prefix TESTS_ENVIRONMENT = srcdir="$(srcdir)" \ top_builddir="$(top_builddir)" diff --git a/tests/ipv4-prefix.c b/tests/ipv4-prefix.c new file mode 100644 index 00000000..d2b8be47 --- /dev/null +++ b/tests/ipv4-prefix.c @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2015 Red Hat, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include + +#include "../src/common.h" + +int main() +{ + char *p; + + p = ipv4_prefix_to_mask(NULL, 32); + if (p == NULL || strcmp(p, "255.255.255.255") != 0) { + fprintf(stderr, "error in %d: %s\n", __LINE__, p); + exit(1); + } + talloc_free(p); + + p = ipv4_prefix_to_mask(NULL, 30); + if (p == NULL || strcmp(p, "255.255.255.252") != 0) { + fprintf(stderr, "error in %d: %s\n", __LINE__, p); + exit(1); + } + talloc_free(p); + + p = ipv4_prefix_to_mask(NULL, 27); + if (p == NULL || strcmp(p, "255.255.255.224") != 0) { + fprintf(stderr, "error in %d: %s\n", __LINE__, p); + exit(1); + } + talloc_free(p); + + p = ipv4_prefix_to_mask(NULL, 24); + if (p == NULL || strcmp(p, "255.255.255.0") != 0) { + fprintf(stderr, "error in %d: %s\n", __LINE__, p); + exit(1); + } + talloc_free(p); + + p = ipv4_prefix_to_mask(NULL, 22); + if (p == NULL || strcmp(p, "255.255.252.0") != 0) { + fprintf(stderr, "error in %d: %s\n", __LINE__, p); + exit(1); + } + talloc_free(p); + + p = ipv4_prefix_to_mask(NULL, 20); + if (p == NULL || strcmp(p, "255.255.240.0") != 0) { + fprintf(stderr, "error in %d: %s\n", __LINE__, p); + exit(1); + } + talloc_free(p); + + p = ipv4_prefix_to_mask(NULL, 18); + if (p == NULL || strcmp(p, "255.255.192.0") != 0) { + fprintf(stderr, "error in %d: %s\n", __LINE__, p); + exit(1); + } + talloc_free(p); + + p = ipv4_prefix_to_mask(NULL, 16); + if (p == NULL || strcmp(p, "255.255.0.0") != 0) { + fprintf(stderr, "error in %d: %s\n", __LINE__, p); + exit(1); + } + talloc_free(p); + + p = ipv4_prefix_to_mask(NULL, 8); + if (p == NULL || strcmp(p, "255.0.0.0") != 0) { + fprintf(stderr, "error in %d: %s\n", __LINE__, p); + exit(1); + } + talloc_free(p); + + p = ipv4_prefix_to_mask(NULL, 5); + if (p == NULL || strcmp(p, "248.0.0.0") != 0) { + fprintf(stderr, "error in %d: %s\n", __LINE__, p); + exit(1); + } + talloc_free(p); + + p = ipv4_prefix_to_mask(NULL, 3); + if (p == NULL || strcmp(p, "224.0.0.0") != 0) { + fprintf(stderr, "error in %d: %s\n", __LINE__, p); + exit(1); + } + talloc_free(p); + + return 0; +}