diff options
Diffstat (limited to 'common/tests')
-rw-r--r-- | common/tests/Kyuafile | 1 | ||||
-rw-r--r-- | common/tests/Makefile.am | 11 | ||||
-rw-r--r-- | common/tests/Makefile.in | 113 | ||||
-rw-r--r-- | common/tests/domain_name_test.c | 100 |
4 files changed, 192 insertions, 33 deletions
diff --git a/common/tests/Kyuafile b/common/tests/Kyuafile index f3c352db..4952b549 100644 --- a/common/tests/Kyuafile +++ b/common/tests/Kyuafile @@ -3,6 +3,7 @@ test_suite('isc-dhcp') atf_test_program{name='alloc_unittest'} atf_test_program{name='dns_unittest'} +atf_test_program{name='domain_name_unittest'} atf_test_program{name='misc_unittest'} atf_test_program{name='ns_name_unittest'} atf_test_program{name='option_unittest'} diff --git a/common/tests/Makefile.am b/common/tests/Makefile.am index 322f77e8..a5152653 100644 --- a/common/tests/Makefile.am +++ b/common/tests/Makefile.am @@ -9,7 +9,7 @@ ATF_TESTS = if HAVE_ATF ATF_TESTS += alloc_unittest dns_unittest misc_unittest ns_name_unittest \ - option_unittest + option_unittest domain_name_unittest alloc_unittest_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c alloc_unittest_LDADD = $(ATF_LDFLAGS) @@ -51,6 +51,15 @@ option_unittest_LDADD += ../libdhcp.@A@ ../../omapip/libomapi.@A@ \ @BINDLIBISCCFGDIR@/libisccfg.@A@ \ @BINDLIBISCDIR@/libisc.@A@ +domain_name_unittest_SOURCES = domain_name_test.c \ + $(top_srcdir)/tests/t_api_dhcp.c +domain_name_unittest_LDADD = $(ATF_LDFLAGS) +domain_name_unittest_LDADD += ../libdhcp.@A@ ../../omapip/libomapi.@A@ \ + @BINDLIBIRSDIR@/libirs.@A@ \ + @BINDLIBDNSDIR@/libdns.@A@ \ + @BINDLIBISCCFGDIR@/libisccfg.@A@ \ + @BINDLIBISCDIR@/libisc.@A@ + check: $(ATF_TESTS) @if test $(top_srcdir) != ${top_builddir}; then \ cp $(top_srcdir)/common/tests/Atffile Atffile; \ diff --git a/common/tests/Makefile.in b/common/tests/Makefile.in index 89ca98d7..b0d92063 100644 --- a/common/tests/Makefile.in +++ b/common/tests/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -88,7 +88,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @HAVE_ATF_TRUE@am__append_1 = alloc_unittest dns_unittest misc_unittest ns_name_unittest \ -@HAVE_ATF_TRUE@ option_unittest +@HAVE_ATF_TRUE@ option_unittest domain_name_unittest check_PROGRAMS = $(am__EXEEXT_2) subdir = common/tests @@ -104,7 +104,8 @@ CONFIG_CLEAN_VPATH_FILES = @HAVE_ATF_TRUE@am__EXEEXT_1 = alloc_unittest$(EXEEXT) \ @HAVE_ATF_TRUE@ dns_unittest$(EXEEXT) misc_unittest$(EXEEXT) \ @HAVE_ATF_TRUE@ ns_name_unittest$(EXEEXT) \ -@HAVE_ATF_TRUE@ option_unittest$(EXEEXT) +@HAVE_ATF_TRUE@ option_unittest$(EXEEXT) \ +@HAVE_ATF_TRUE@ domain_name_unittest$(EXEEXT) am__EXEEXT_2 = $(am__EXEEXT_1) am__alloc_unittest_SOURCES_DIST = test_alloc.c \ $(top_srcdir)/tests/t_api_dhcp.c @@ -121,6 +122,14 @@ am__dns_unittest_SOURCES_DIST = dns_unittest.c \ dns_unittest_OBJECTS = $(am_dns_unittest_OBJECTS) @HAVE_ATF_TRUE@dns_unittest_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @HAVE_ATF_TRUE@ ../libdhcp.@A@ ../../omapip/libomapi.@A@ +am__domain_name_unittest_SOURCES_DIST = domain_name_test.c \ + $(top_srcdir)/tests/t_api_dhcp.c +@HAVE_ATF_TRUE@am_domain_name_unittest_OBJECTS = \ +@HAVE_ATF_TRUE@ domain_name_test.$(OBJEXT) t_api_dhcp.$(OBJEXT) +domain_name_unittest_OBJECTS = $(am_domain_name_unittest_OBJECTS) +@HAVE_ATF_TRUE@domain_name_unittest_DEPENDENCIES = \ +@HAVE_ATF_TRUE@ $(am__DEPENDENCIES_1) ../libdhcp.@A@ \ +@HAVE_ATF_TRUE@ ../../omapip/libomapi.@A@ am__misc_unittest_SOURCES_DIST = misc_unittest.c \ $(top_srcdir)/tests/t_api_dhcp.c @HAVE_ATF_TRUE@am_misc_unittest_OBJECTS = misc_unittest.$(OBJEXT) \ @@ -156,7 +165,11 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/dns_unittest.Po \ + ./$(DEPDIR)/domain_name_test.Po ./$(DEPDIR)/misc_unittest.Po \ + ./$(DEPDIR)/ns_name_test.Po ./$(DEPDIR)/option_unittest.Po \ + ./$(DEPDIR)/t_api_dhcp.Po ./$(DEPDIR)/test_alloc.Po am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -175,10 +188,11 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(alloc_unittest_SOURCES) $(dns_unittest_SOURCES) \ - $(misc_unittest_SOURCES) $(ns_name_unittest_SOURCES) \ - $(option_unittest_SOURCES) + $(domain_name_unittest_SOURCES) $(misc_unittest_SOURCES) \ + $(ns_name_unittest_SOURCES) $(option_unittest_SOURCES) DIST_SOURCES = $(am__alloc_unittest_SOURCES_DIST) \ $(am__dns_unittest_SOURCES_DIST) \ + $(am__domain_name_unittest_SOURCES_DIST) \ $(am__misc_unittest_SOURCES_DIST) \ $(am__ns_name_unittest_SOURCES_DIST) \ $(am__option_unittest_SOURCES_DIST) @@ -202,7 +216,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -412,6 +426,15 @@ ATF_TESTS = $(am__append_1) @HAVE_ATF_TRUE@ @BINDLIBDNSDIR@/libdns.@A@ \ @HAVE_ATF_TRUE@ @BINDLIBISCCFGDIR@/libisccfg.@A@ \ @HAVE_ATF_TRUE@ @BINDLIBISCDIR@/libisc.@A@ +@HAVE_ATF_TRUE@domain_name_unittest_SOURCES = domain_name_test.c \ +@HAVE_ATF_TRUE@ $(top_srcdir)/tests/t_api_dhcp.c + +@HAVE_ATF_TRUE@domain_name_unittest_LDADD = $(ATF_LDFLAGS) \ +@HAVE_ATF_TRUE@ ../libdhcp.@A@ ../../omapip/libomapi.@A@ \ +@HAVE_ATF_TRUE@ @BINDLIBIRSDIR@/libirs.@A@ \ +@HAVE_ATF_TRUE@ @BINDLIBDNSDIR@/libdns.@A@ \ +@HAVE_ATF_TRUE@ @BINDLIBISCCFGDIR@/libisccfg.@A@ \ +@HAVE_ATF_TRUE@ @BINDLIBISCDIR@/libisc.@A@ all: all-recursive .SUFFIXES: @@ -433,8 +456,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -457,6 +480,10 @@ dns_unittest$(EXEEXT): $(dns_unittest_OBJECTS) $(dns_unittest_DEPENDENCIES) $(EX @rm -f dns_unittest$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dns_unittest_OBJECTS) $(dns_unittest_LDADD) $(LIBS) +domain_name_unittest$(EXEEXT): $(domain_name_unittest_OBJECTS) $(domain_name_unittest_DEPENDENCIES) $(EXTRA_domain_name_unittest_DEPENDENCIES) + @rm -f domain_name_unittest$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(domain_name_unittest_OBJECTS) $(domain_name_unittest_LDADD) $(LIBS) + misc_unittest$(EXEEXT): $(misc_unittest_OBJECTS) $(misc_unittest_DEPENDENCIES) $(EXTRA_misc_unittest_DEPENDENCIES) @rm -f misc_unittest$(EXEEXT) $(AM_V_CCLD)$(LINK) $(misc_unittest_OBJECTS) $(misc_unittest_LDADD) $(LIBS) @@ -475,12 +502,19 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dns_unittest.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc_unittest.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ns_name_test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/option_unittest.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_api_dhcp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_alloc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dns_unittest.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/domain_name_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc_unittest.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ns_name_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/option_unittest.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_api_dhcp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_alloc.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -609,7 +643,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -706,7 +743,13 @@ clean: clean-recursive clean-am: clean-checkPROGRAMS clean-generic mostlyclean-am distclean: distclean-recursive - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/dns_unittest.Po + -rm -f ./$(DEPDIR)/domain_name_test.Po + -rm -f ./$(DEPDIR)/misc_unittest.Po + -rm -f ./$(DEPDIR)/ns_name_test.Po + -rm -f ./$(DEPDIR)/option_unittest.Po + -rm -f ./$(DEPDIR)/t_api_dhcp.Po + -rm -f ./$(DEPDIR)/test_alloc.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-local distclean-tags @@ -752,7 +795,13 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/dns_unittest.Po + -rm -f ./$(DEPDIR)/domain_name_test.Po + -rm -f ./$(DEPDIR)/misc_unittest.Po + -rm -f ./$(DEPDIR)/ns_name_test.Po + -rm -f ./$(DEPDIR)/option_unittest.Po + -rm -f ./$(DEPDIR)/t_api_dhcp.Po + -rm -f ./$(DEPDIR)/test_alloc.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -772,19 +821,19 @@ uninstall-am: .MAKE: $(am__recursive_targets) check-am install-am install-strip -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-checkPROGRAMS clean-generic cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-local distclean-tags distdir dvi dvi-am html html-am \ - info info-am install install-am install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--depfiles check check-am clean clean-checkPROGRAMS \ + clean-generic cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-local \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile diff --git a/common/tests/domain_name_test.c b/common/tests/domain_name_test.c new file mode 100644 index 00000000..8bd70aa2 --- /dev/null +++ b/common/tests/domain_name_test.c @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2019 Internet Systems Consortium, Inc. ("ISC") + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +#include <config.h> +#include <atf-c.h> +#include "dhcpd.h" + +ATF_TC(pretty_print_domain_name); + +ATF_TC_HEAD(pretty_print_domain_name, tc) +{ + atf_tc_set_md_var(tc, "descr", + "Verify pretty_print_option can render a domain name."); +} + +/* + * This test verifies that pretty_print_option() correctly render a + * domain name. + * + */ +ATF_TC_BODY(pretty_print_domain_name, tc) +{ + struct option *option; + unsigned code; + unsigned char good_data[] = + { 0x05, 0x62, 0x6f, 0x6f, 0x79, 0x61, 0x03, 0x63, 0x6f, 0x6d, 0x00 }; + unsigned char short_data[] = + { 0x05, 0x62, 0x6f, 0x6f, 0x79, 0x61, 0x03, 0x63, 0x6f, 0x6d }; + unsigned char long_data[] = + { 0x05, 0x62, 0x6f, 0x6f, 0x79, 0x61, 0x03, 0x63, 0x6f, 0x6d, 0x00, + 0x01, 0x02 }; + const char *output_buf; + + initialize_common_option_spaces(); + + /* We'll use v4-lost because it happens to be format d */ + code = 137; + option = NULL; + if (!option_code_hash_lookup(&option, dhcp_universe.code_hash, + &code, 0, MDL)) { + atf_tc_fail("can't find option %d", code); + } + + if (option == NULL) { + atf_tc_fail("option is NULL"); + } + + /* First we will try a good value we know should fit. */ + output_buf = pretty_print_option(option, good_data, sizeof(good_data), 0, + 0); + + /* Make sure we get what we expect */ + if (!output_buf || strcmp(output_buf, "booya.com.")) { + atf_tc_fail("pretty_print_option did not return 'booya.com.'"); + } + + fprintf(stderr, "good!\n"); + + /* Now we'll try a data value that's too short */ + output_buf = pretty_print_option(option, short_data, sizeof(short_data), + 0, 0); + + /* Make sure we safely get an error */ + if (!output_buf || strcmp(output_buf, "<error>")) { + atf_tc_fail("pretty_print_option did not return \"<error>\""); + } + + /* Now we'll try a data value that's too large */ + output_buf = pretty_print_option(option, long_data, sizeof(long_data), 0, + 0); + + /* This logs but does not return an error */ + if (!output_buf || strcmp(output_buf, "booya.com.")) { + atf_tc_fail("pretty_print_option did not return 'booya.com.' (large)"); + } +} + + +/* This macro defines main() method that will call specified + test cases. tp and simple_test_case names can be whatever you want + as long as it is a valid variable identifier. */ +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, pretty_print_domain_name); + + return (atf_no_error()); +} |