mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-08-29 05:17:57 +00:00
[master] ATF usage and documentation cleaned up
Merges in rt38619
This commit is contained in:
parent
112d76f60c
commit
9a111ee803
1
.gitignore
vendored
1
.gitignore
vendored
@ -28,3 +28,4 @@ server/tests/legacy_unittests
|
|||||||
server/tests/load_bal_unittests
|
server/tests/load_bal_unittests
|
||||||
server/tests/test-suite.log
|
server/tests/test-suite.log
|
||||||
tests/libt_api.a
|
tests/libt_api.a
|
||||||
|
tests/unittest.sh
|
||||||
|
@ -224,6 +224,7 @@ distcleancheck_listfiles = find . -type f -print
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
15
RELNOTES
15
RELNOTES
@ -60,6 +60,21 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
the issue.
|
the issue.
|
||||||
[ISC-Bugs #37780]
|
[ISC-Bugs #37780]
|
||||||
|
|
||||||
|
- Unit test execution now uses a path augmented during configuration
|
||||||
|
processing of the --with-atf option to locate ATF runtime tools, atf-run
|
||||||
|
and atf-report. For most installations of ATF, this should alleviate the
|
||||||
|
need to manually include them in the PATH, as was formerly required.
|
||||||
|
If the configure script cannot locate the tools it will emit a warning,
|
||||||
|
informing the user that the tools must be in the PATH when running unit
|
||||||
|
tests.
|
||||||
|
Secondly, please note that "make check" will now exit with a failure status
|
||||||
|
code (non-zero) if one or more unit tests fail. This means that invoking
|
||||||
|
"make check" from an upper level directory will cause the make process to
|
||||||
|
STOP after the first test subdirectory with failed test(s). To force all
|
||||||
|
tests in all subdirectories to run, regardless of individual test outcome,
|
||||||
|
use the command "make -k check".
|
||||||
|
[ISC-Bugs #38619]
|
||||||
|
|
||||||
Changes since 4.3.1
|
Changes since 4.3.1
|
||||||
|
|
||||||
- Corrected parser's right brace matching when a statement contains an error.
|
- Corrected parser's right brace matching when a statement contains an error.
|
||||||
|
37
aclocal.m4
vendored
37
aclocal.m4
vendored
@ -109,6 +109,43 @@ AC_PREREQ([2.50])dnl
|
|||||||
am_aux_dir=`cd $ac_aux_dir && pwd`
|
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||||
])
|
])
|
||||||
|
|
||||||
|
# AM_COND_IF -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2008-2013 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# _AM_COND_IF
|
||||||
|
# _AM_COND_ELSE
|
||||||
|
# _AM_COND_ENDIF
|
||||||
|
# --------------
|
||||||
|
# These macros are only used for tracing.
|
||||||
|
m4_define([_AM_COND_IF])
|
||||||
|
m4_define([_AM_COND_ELSE])
|
||||||
|
m4_define([_AM_COND_ENDIF])
|
||||||
|
|
||||||
|
# AM_COND_IF(COND, [IF-TRUE], [IF-FALSE])
|
||||||
|
# ---------------------------------------
|
||||||
|
# If the shell condition COND is true, execute IF-TRUE, otherwise execute
|
||||||
|
# IF-FALSE. Allow automake to learn about conditional instantiating macros
|
||||||
|
# (the AC_CONFIG_FOOS).
|
||||||
|
AC_DEFUN([AM_COND_IF],
|
||||||
|
[m4_ifndef([_AM_COND_VALUE_$1],
|
||||||
|
[m4_fatal([$0: no such condition "$1"])])dnl
|
||||||
|
_AM_COND_IF([$1])dnl
|
||||||
|
if test -z "$$1_TRUE"; then :
|
||||||
|
m4_n([$2])[]dnl
|
||||||
|
m4_ifval([$3],
|
||||||
|
[_AM_COND_ELSE([$1])dnl
|
||||||
|
else
|
||||||
|
$3
|
||||||
|
])dnl
|
||||||
|
_AM_COND_ENDIF([$1])dnl
|
||||||
|
fi[]dnl
|
||||||
|
])
|
||||||
|
|
||||||
# AM_CONDITIONAL -*- Autoconf -*-
|
# AM_CONDITIONAL -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1997-2013 Free Software Foundation, Inc.
|
# Copyright (C) 1997-2013 Free Software Foundation, Inc.
|
||||||
|
@ -232,6 +232,7 @@ am__relativize = \
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -21,12 +21,8 @@ DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.a
|
|||||||
$(top_builddir)/bind/lib/libisc.a
|
$(top_builddir)/bind/lib/libisc.a
|
||||||
|
|
||||||
ATF_TESTS =
|
ATF_TESTS =
|
||||||
TESTS =
|
|
||||||
if HAVE_ATF
|
if HAVE_ATF
|
||||||
|
|
||||||
check: $(ATF_TESTS)
|
|
||||||
atf-run | atf-report
|
|
||||||
|
|
||||||
ATF_TESTS += duid_unittests
|
ATF_TESTS += duid_unittests
|
||||||
|
|
||||||
duid_unittests_SOURCES = $(DHCPSRC)
|
duid_unittests_SOURCES = $(DHCPSRC)
|
||||||
@ -35,6 +31,9 @@ duid_unittests_SOURCES += duid_unittest.c
|
|||||||
duid_unittests_LDADD = $(ATF_LDFLAGS)
|
duid_unittests_LDADD = $(ATF_LDFLAGS)
|
||||||
duid_unittests_LDADD += $(DHCPLIBS)
|
duid_unittests_LDADD += $(DHCPLIBS)
|
||||||
|
|
||||||
|
check: $(ATF_TESTS)
|
||||||
|
sh ${top_srcdir}/tests/unittest.sh
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
check_PROGRAMS = $(ATF_TESTS) $(TESTS)
|
check_PROGRAMS = $(ATF_TESTS)
|
||||||
|
@ -77,12 +77,11 @@ PRE_UNINSTALL = :
|
|||||||
POST_UNINSTALL = :
|
POST_UNINSTALL = :
|
||||||
build_triplet = @build@
|
build_triplet = @build@
|
||||||
host_triplet = @host@
|
host_triplet = @host@
|
||||||
TESTS =
|
|
||||||
@HAVE_ATF_TRUE@am__append_1 = duid_unittests
|
@HAVE_ATF_TRUE@am__append_1 = duid_unittests
|
||||||
check_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_3)
|
check_PROGRAMS = $(am__EXEEXT_2)
|
||||||
subdir = client/tests
|
subdir = client/tests
|
||||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||||
$(top_srcdir)/depcomp $(top_srcdir)/test-driver
|
$(top_srcdir)/depcomp
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
@ -93,7 +92,6 @@ CONFIG_CLEAN_FILES =
|
|||||||
CONFIG_CLEAN_VPATH_FILES =
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
@HAVE_ATF_TRUE@am__EXEEXT_1 = duid_unittests$(EXEEXT)
|
@HAVE_ATF_TRUE@am__EXEEXT_1 = duid_unittests$(EXEEXT)
|
||||||
am__EXEEXT_2 = $(am__EXEEXT_1)
|
am__EXEEXT_2 = $(am__EXEEXT_1)
|
||||||
am__EXEEXT_3 =
|
|
||||||
am__duid_unittests_SOURCES_DIST = ../clparse.c ../dhc6.c ../dhclient.c \
|
am__duid_unittests_SOURCES_DIST = ../clparse.c ../dhc6.c ../dhclient.c \
|
||||||
duid_unittest.c
|
duid_unittest.c
|
||||||
am__objects_1 = clparse.$(OBJEXT) dhc6.$(OBJEXT) dhclient.$(OBJEXT)
|
am__objects_1 = clparse.$(OBJEXT) dhc6.$(OBJEXT) dhclient.$(OBJEXT)
|
||||||
@ -157,7 +155,7 @@ am__recursive_targets = \
|
|||||||
$(RECURSIVE_CLEAN_TARGETS) \
|
$(RECURSIVE_CLEAN_TARGETS) \
|
||||||
$(am__extra_recursive_targets)
|
$(am__extra_recursive_targets)
|
||||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||||
check recheck distdir
|
distdir
|
||||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||||
# Read a list of newline-separated strings from the standard input,
|
# Read a list of newline-separated strings from the standard input,
|
||||||
# and print each of them once, without duplicates. Input order is
|
# and print each of them once, without duplicates. Input order is
|
||||||
@ -177,207 +175,6 @@ am__define_uniq_tagged_files = \
|
|||||||
done | $(am__uniquify_input)`
|
done | $(am__uniquify_input)`
|
||||||
ETAGS = etags
|
ETAGS = etags
|
||||||
CTAGS = ctags
|
CTAGS = ctags
|
||||||
am__tty_colors_dummy = \
|
|
||||||
mgn= red= grn= lgn= blu= brg= std=; \
|
|
||||||
am__color_tests=no
|
|
||||||
am__tty_colors = { \
|
|
||||||
$(am__tty_colors_dummy); \
|
|
||||||
if test "X$(AM_COLOR_TESTS)" = Xno; then \
|
|
||||||
am__color_tests=no; \
|
|
||||||
elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
|
|
||||||
am__color_tests=yes; \
|
|
||||||
elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
|
|
||||||
am__color_tests=yes; \
|
|
||||||
fi; \
|
|
||||||
if test $$am__color_tests = yes; then \
|
|
||||||
red='[0;31m'; \
|
|
||||||
grn='[0;32m'; \
|
|
||||||
lgn='[1;32m'; \
|
|
||||||
blu='[1;34m'; \
|
|
||||||
mgn='[0;35m'; \
|
|
||||||
brg='[1m'; \
|
|
||||||
std='[m'; \
|
|
||||||
fi; \
|
|
||||||
}
|
|
||||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
|
||||||
am__vpath_adj = case $$p in \
|
|
||||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
|
||||||
*) f=$$p;; \
|
|
||||||
esac;
|
|
||||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
|
||||||
am__install_max = 40
|
|
||||||
am__nobase_strip_setup = \
|
|
||||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
|
||||||
am__nobase_strip = \
|
|
||||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
|
||||||
am__nobase_list = $(am__nobase_strip_setup); \
|
|
||||||
for p in $$list; do echo "$$p $$p"; done | \
|
|
||||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
|
||||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
|
||||||
if (++n[$$2] == $(am__install_max)) \
|
|
||||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
|
||||||
END { for (dir in files) print dir, files[dir] }'
|
|
||||||
am__base_list = \
|
|
||||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
|
||||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
|
||||||
am__uninstall_files_from_dir = { \
|
|
||||||
test -z "$$files" \
|
|
||||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
|
||||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
|
||||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
|
||||||
}
|
|
||||||
am__recheck_rx = ^[ ]*:recheck:[ ]*
|
|
||||||
am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
|
|
||||||
am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
|
|
||||||
# A command that, given a newline-separated list of test names on the
|
|
||||||
# standard input, print the name of the tests that are to be re-run
|
|
||||||
# upon "make recheck".
|
|
||||||
am__list_recheck_tests = $(AWK) '{ \
|
|
||||||
recheck = 1; \
|
|
||||||
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
|
|
||||||
{ \
|
|
||||||
if (rc < 0) \
|
|
||||||
{ \
|
|
||||||
if ((getline line2 < ($$0 ".log")) < 0) \
|
|
||||||
recheck = 0; \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
|
|
||||||
{ \
|
|
||||||
recheck = 0; \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
|
|
||||||
{ \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
}; \
|
|
||||||
if (recheck) \
|
|
||||||
print $$0; \
|
|
||||||
close ($$0 ".trs"); \
|
|
||||||
close ($$0 ".log"); \
|
|
||||||
}'
|
|
||||||
# A command that, given a newline-separated list of test names on the
|
|
||||||
# standard input, create the global log from their .trs and .log files.
|
|
||||||
am__create_global_log = $(AWK) ' \
|
|
||||||
function fatal(msg) \
|
|
||||||
{ \
|
|
||||||
print "fatal: making $@: " msg | "cat >&2"; \
|
|
||||||
exit 1; \
|
|
||||||
} \
|
|
||||||
function rst_section(header) \
|
|
||||||
{ \
|
|
||||||
print header; \
|
|
||||||
len = length(header); \
|
|
||||||
for (i = 1; i <= len; i = i + 1) \
|
|
||||||
printf "="; \
|
|
||||||
printf "\n\n"; \
|
|
||||||
} \
|
|
||||||
{ \
|
|
||||||
copy_in_global_log = 1; \
|
|
||||||
global_test_result = "RUN"; \
|
|
||||||
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
|
|
||||||
{ \
|
|
||||||
if (rc < 0) \
|
|
||||||
fatal("failed to read from " $$0 ".trs"); \
|
|
||||||
if (line ~ /$(am__global_test_result_rx)/) \
|
|
||||||
{ \
|
|
||||||
sub("$(am__global_test_result_rx)", "", line); \
|
|
||||||
sub("[ ]*$$", "", line); \
|
|
||||||
global_test_result = line; \
|
|
||||||
} \
|
|
||||||
else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
|
|
||||||
copy_in_global_log = 0; \
|
|
||||||
}; \
|
|
||||||
if (copy_in_global_log) \
|
|
||||||
{ \
|
|
||||||
rst_section(global_test_result ": " $$0); \
|
|
||||||
while ((rc = (getline line < ($$0 ".log"))) != 0) \
|
|
||||||
{ \
|
|
||||||
if (rc < 0) \
|
|
||||||
fatal("failed to read from " $$0 ".log"); \
|
|
||||||
print line; \
|
|
||||||
}; \
|
|
||||||
printf "\n"; \
|
|
||||||
}; \
|
|
||||||
close ($$0 ".trs"); \
|
|
||||||
close ($$0 ".log"); \
|
|
||||||
}'
|
|
||||||
# Restructured Text title.
|
|
||||||
am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
|
|
||||||
# Solaris 10 'make', and several other traditional 'make' implementations,
|
|
||||||
# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
|
|
||||||
# by disabling -e (using the XSI extension "set +e") if it's set.
|
|
||||||
am__sh_e_setup = case $$- in *e*) set +e;; esac
|
|
||||||
# Default flags passed to test drivers.
|
|
||||||
am__common_driver_flags = \
|
|
||||||
--color-tests "$$am__color_tests" \
|
|
||||||
--enable-hard-errors "$$am__enable_hard_errors" \
|
|
||||||
--expect-failure "$$am__expect_failure"
|
|
||||||
# To be inserted before the command running the test. Creates the
|
|
||||||
# directory for the log if needed. Stores in $dir the directory
|
|
||||||
# containing $f, in $tst the test, in $log the log. Executes the
|
|
||||||
# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
|
|
||||||
# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
|
|
||||||
# will run the test scripts (or their associated LOG_COMPILER, if
|
|
||||||
# thy have one).
|
|
||||||
am__check_pre = \
|
|
||||||
$(am__sh_e_setup); \
|
|
||||||
$(am__vpath_adj_setup) $(am__vpath_adj) \
|
|
||||||
$(am__tty_colors); \
|
|
||||||
srcdir=$(srcdir); export srcdir; \
|
|
||||||
case "$@" in \
|
|
||||||
*/*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
|
|
||||||
*) am__odir=.;; \
|
|
||||||
esac; \
|
|
||||||
test "x$$am__odir" = x"." || test -d "$$am__odir" \
|
|
||||||
|| $(MKDIR_P) "$$am__odir" || exit $$?; \
|
|
||||||
if test -f "./$$f"; then dir=./; \
|
|
||||||
elif test -f "$$f"; then dir=; \
|
|
||||||
else dir="$(srcdir)/"; fi; \
|
|
||||||
tst=$$dir$$f; log='$@'; \
|
|
||||||
if test -n '$(DISABLE_HARD_ERRORS)'; then \
|
|
||||||
am__enable_hard_errors=no; \
|
|
||||||
else \
|
|
||||||
am__enable_hard_errors=yes; \
|
|
||||||
fi; \
|
|
||||||
case " $(XFAIL_TESTS) " in \
|
|
||||||
*[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
|
|
||||||
am__expect_failure=yes;; \
|
|
||||||
*) \
|
|
||||||
am__expect_failure=no;; \
|
|
||||||
esac; \
|
|
||||||
$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
|
|
||||||
# A shell command to get the names of the tests scripts with any registered
|
|
||||||
# extension removed (i.e., equivalently, the names of the test logs, with
|
|
||||||
# the '.log' extension removed). The result is saved in the shell variable
|
|
||||||
# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
|
|
||||||
# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
|
|
||||||
# since that might cause problem with VPATH rewrites for suffix-less tests.
|
|
||||||
# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
|
|
||||||
am__set_TESTS_bases = \
|
|
||||||
bases='$(TEST_LOGS)'; \
|
|
||||||
bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
|
|
||||||
bases=`echo $$bases`
|
|
||||||
RECHECK_LOGS = $(TEST_LOGS)
|
|
||||||
TEST_SUITE_LOG = test-suite.log
|
|
||||||
TEST_EXTENSIONS = @EXEEXT@ .test
|
|
||||||
am__test_logs1 = $(TESTS:=.log)
|
|
||||||
am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
|
|
||||||
TEST_LOGS = $(am__test_logs2:.test.log=.log)
|
|
||||||
TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
|
|
||||||
TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
|
|
||||||
$(TEST_LOG_FLAGS)
|
|
||||||
am__set_b = \
|
|
||||||
case '$@' in \
|
|
||||||
*/*) \
|
|
||||||
case '$*' in \
|
|
||||||
*/*) b='$*';; \
|
|
||||||
*) b=`echo '$@' | sed 's/\.log$$//'`; \
|
|
||||||
esac;; \
|
|
||||||
*) \
|
|
||||||
b='$*';; \
|
|
||||||
esac
|
|
||||||
DIST_SUBDIRS = $(SUBDIRS)
|
DIST_SUBDIRS = $(SUBDIRS)
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
am__relativize = \
|
am__relativize = \
|
||||||
@ -408,6 +205,7 @@ am__relativize = \
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -524,7 +322,7 @@ ATF_TESTS = $(am__append_1)
|
|||||||
all: all-recursive
|
all: all-recursive
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs
|
.SUFFIXES: .c .o .obj
|
||||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
@for dep in $?; do \
|
@for dep in $?; do \
|
||||||
case '$(am__configure_deps)' in \
|
case '$(am__configure_deps)' in \
|
||||||
@ -729,162 +527,6 @@ cscopelist-am: $(am__tagged_files)
|
|||||||
distclean-tags:
|
distclean-tags:
|
||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
# Recover from deleted '.trs' file; this should ensure that
|
|
||||||
# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
|
|
||||||
# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
|
|
||||||
# to avoid problems with "make -n".
|
|
||||||
.log.trs:
|
|
||||||
rm -f $< $@
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $<
|
|
||||||
|
|
||||||
# Leading 'am--fnord' is there to ensure the list of targets does not
|
|
||||||
# expand to empty, as could happen e.g. with make check TESTS=''.
|
|
||||||
am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
|
|
||||||
am--force-recheck:
|
|
||||||
@:
|
|
||||||
|
|
||||||
$(TEST_SUITE_LOG): $(TEST_LOGS)
|
|
||||||
@$(am__set_TESTS_bases); \
|
|
||||||
am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
|
|
||||||
redo_bases=`for i in $$bases; do \
|
|
||||||
am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
|
|
||||||
done`; \
|
|
||||||
if test -n "$$redo_bases"; then \
|
|
||||||
redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
|
|
||||||
redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
|
|
||||||
if $(am__make_dryrun); then :; else \
|
|
||||||
rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
if test -n "$$am__remaking_logs"; then \
|
|
||||||
echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
|
|
||||||
"recursion detected" >&2; \
|
|
||||||
else \
|
|
||||||
am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
|
|
||||||
fi; \
|
|
||||||
if $(am__make_dryrun); then :; else \
|
|
||||||
st=0; \
|
|
||||||
errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
|
|
||||||
for i in $$redo_bases; do \
|
|
||||||
test -f $$i.trs && test -r $$i.trs \
|
|
||||||
|| { echo "$$errmsg $$i.trs" >&2; st=1; }; \
|
|
||||||
test -f $$i.log && test -r $$i.log \
|
|
||||||
|| { echo "$$errmsg $$i.log" >&2; st=1; }; \
|
|
||||||
done; \
|
|
||||||
test $$st -eq 0 || exit 1; \
|
|
||||||
fi
|
|
||||||
@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
|
|
||||||
ws='[ ]'; \
|
|
||||||
results=`for b in $$bases; do echo $$b.trs; done`; \
|
|
||||||
test -n "$$results" || results=/dev/null; \
|
|
||||||
all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
|
|
||||||
pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
|
|
||||||
fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
|
|
||||||
skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
|
|
||||||
xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
|
|
||||||
xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
|
|
||||||
error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
|
|
||||||
if test `expr $$fail + $$xpass + $$error` -eq 0; then \
|
|
||||||
success=true; \
|
|
||||||
else \
|
|
||||||
success=false; \
|
|
||||||
fi; \
|
|
||||||
br='==================='; br=$$br$$br$$br$$br; \
|
|
||||||
result_count () \
|
|
||||||
{ \
|
|
||||||
if test x"$$1" = x"--maybe-color"; then \
|
|
||||||
maybe_colorize=yes; \
|
|
||||||
elif test x"$$1" = x"--no-color"; then \
|
|
||||||
maybe_colorize=no; \
|
|
||||||
else \
|
|
||||||
echo "$@: invalid 'result_count' usage" >&2; exit 4; \
|
|
||||||
fi; \
|
|
||||||
shift; \
|
|
||||||
desc=$$1 count=$$2; \
|
|
||||||
if test $$maybe_colorize = yes && test $$count -gt 0; then \
|
|
||||||
color_start=$$3 color_end=$$std; \
|
|
||||||
else \
|
|
||||||
color_start= color_end=; \
|
|
||||||
fi; \
|
|
||||||
echo "$${color_start}# $$desc $$count$${color_end}"; \
|
|
||||||
}; \
|
|
||||||
create_testsuite_report () \
|
|
||||||
{ \
|
|
||||||
result_count $$1 "TOTAL:" $$all "$$brg"; \
|
|
||||||
result_count $$1 "PASS: " $$pass "$$grn"; \
|
|
||||||
result_count $$1 "SKIP: " $$skip "$$blu"; \
|
|
||||||
result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
|
|
||||||
result_count $$1 "FAIL: " $$fail "$$red"; \
|
|
||||||
result_count $$1 "XPASS:" $$xpass "$$red"; \
|
|
||||||
result_count $$1 "ERROR:" $$error "$$mgn"; \
|
|
||||||
}; \
|
|
||||||
{ \
|
|
||||||
echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
|
|
||||||
$(am__rst_title); \
|
|
||||||
create_testsuite_report --no-color; \
|
|
||||||
echo; \
|
|
||||||
echo ".. contents:: :depth: 2"; \
|
|
||||||
echo; \
|
|
||||||
for b in $$bases; do echo $$b; done \
|
|
||||||
| $(am__create_global_log); \
|
|
||||||
} >$(TEST_SUITE_LOG).tmp || exit 1; \
|
|
||||||
mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
|
|
||||||
if $$success; then \
|
|
||||||
col="$$grn"; \
|
|
||||||
else \
|
|
||||||
col="$$red"; \
|
|
||||||
test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
|
|
||||||
fi; \
|
|
||||||
echo "$${col}$$br$${std}"; \
|
|
||||||
echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
|
|
||||||
echo "$${col}$$br$${std}"; \
|
|
||||||
create_testsuite_report --maybe-color; \
|
|
||||||
echo "$$col$$br$$std"; \
|
|
||||||
if $$success; then :; else \
|
|
||||||
echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
|
|
||||||
if test -n "$(PACKAGE_BUGREPORT)"; then \
|
|
||||||
echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
|
|
||||||
fi; \
|
|
||||||
echo "$$col$$br$$std"; \
|
|
||||||
fi; \
|
|
||||||
$$success || exit 1
|
|
||||||
|
|
||||||
check-TESTS:
|
|
||||||
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
|
|
||||||
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
|
|
||||||
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
|
||||||
@set +e; $(am__set_TESTS_bases); \
|
|
||||||
log_list=`for i in $$bases; do echo $$i.log; done`; \
|
|
||||||
trs_list=`for i in $$bases; do echo $$i.trs; done`; \
|
|
||||||
log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
|
|
||||||
exit $$?;
|
|
||||||
recheck: all $(check_PROGRAMS)
|
|
||||||
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
|
||||||
@set +e; $(am__set_TESTS_bases); \
|
|
||||||
bases=`for i in $$bases; do echo $$i; done \
|
|
||||||
| $(am__list_recheck_tests)` || exit 1; \
|
|
||||||
log_list=`for i in $$bases; do echo $$i.log; done`; \
|
|
||||||
log_list=`echo $$log_list`; \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
|
|
||||||
am__force_recheck=am--force-recheck \
|
|
||||||
TEST_LOGS="$$log_list"; \
|
|
||||||
exit $$?
|
|
||||||
.test.log:
|
|
||||||
@p='$<'; \
|
|
||||||
$(am__set_b); \
|
|
||||||
$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
|
|
||||||
--log-file $$b.log --trs-file $$b.trs \
|
|
||||||
$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
|
|
||||||
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
|
||||||
@am__EXEEXT_TRUE@.test$(EXEEXT).log:
|
|
||||||
@am__EXEEXT_TRUE@ @p='$<'; \
|
|
||||||
@am__EXEEXT_TRUE@ $(am__set_b); \
|
|
||||||
@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
|
|
||||||
@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
|
|
||||||
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
|
|
||||||
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
@ -942,7 +584,6 @@ distdir: $(DISTFILES)
|
|||||||
done
|
done
|
||||||
check-am: all-am
|
check-am: all-am
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
|
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
|
||||||
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
|
|
||||||
check: check-recursive
|
check: check-recursive
|
||||||
all-am: Makefile
|
all-am: Makefile
|
||||||
installdirs: installdirs-recursive
|
installdirs: installdirs-recursive
|
||||||
@ -967,9 +608,6 @@ install-strip:
|
|||||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||||
fi
|
fi
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
|
|
||||||
-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
|
|
||||||
-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
|
||||||
|
|
||||||
clean-generic:
|
clean-generic:
|
||||||
|
|
||||||
@ -1050,18 +688,17 @@ uninstall-am:
|
|||||||
.MAKE: $(am__recursive_targets) check-am install-am install-strip
|
.MAKE: $(am__recursive_targets) check-am install-am install-strip
|
||||||
|
|
||||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
|
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
|
||||||
check-TESTS check-am clean clean-checkPROGRAMS clean-generic \
|
check-am clean clean-checkPROGRAMS clean-generic cscopelist-am \
|
||||||
cscopelist-am ctags ctags-am distclean distclean-compile \
|
ctags ctags-am distclean distclean-compile distclean-generic \
|
||||||
distclean-generic distclean-tags distdir dvi dvi-am html \
|
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||||
html-am info info-am install install-am install-data \
|
install install-am install-data install-data-am install-dvi \
|
||||||
install-data-am install-dvi install-dvi-am install-exec \
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
install-exec-am install-html install-html-am install-info \
|
install-html-am install-info install-info-am install-man \
|
||||||
install-info-am install-man install-pdf install-pdf-am \
|
install-pdf install-pdf-am install-ps install-ps-am \
|
||||||
install-ps install-ps-am install-strip installcheck \
|
install-strip installcheck installcheck-am installdirs \
|
||||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
|
||||||
mostlyclean-generic pdf pdf-am ps ps-am recheck tags tags-am \
|
ps ps-am tags tags-am uninstall uninstall-am
|
||||||
uninstall uninstall-am
|
|
||||||
|
|
||||||
|
|
||||||
# for autotools debugging only
|
# for autotools debugging only
|
||||||
@ -1071,7 +708,7 @@ info:
|
|||||||
@echo "ATF_LIBS=$(ATF_LIBS)"
|
@echo "ATF_LIBS=$(ATF_LIBS)"
|
||||||
|
|
||||||
@HAVE_ATF_TRUE@check: $(ATF_TESTS)
|
@HAVE_ATF_TRUE@check: $(ATF_TESTS)
|
||||||
@HAVE_ATF_TRUE@ atf-run | atf-report
|
@HAVE_ATF_TRUE@ sh ${top_srcdir}/tests/unittest.sh
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
@ -239,6 +239,7 @@ am__relativize = \
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -35,7 +35,7 @@ ns_name_unittest_LDADD += ../libdhcp.a \
|
|||||||
../../bind/lib/libdns.a ../../bind/lib/libisccfg.a ../../bind/lib/libisc.a
|
../../bind/lib/libdns.a ../../bind/lib/libisccfg.a ../../bind/lib/libisc.a
|
||||||
|
|
||||||
check: $(ATF_TESTS)
|
check: $(ATF_TESTS)
|
||||||
atf-run | atf-report
|
sh ${top_srcdir}/tests/unittest.sh
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -243,6 +243,7 @@ am__relativize = \
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -740,7 +741,7 @@ uninstall-am:
|
|||||||
|
|
||||||
|
|
||||||
@HAVE_ATF_TRUE@check: $(ATF_TESTS)
|
@HAVE_ATF_TRUE@check: $(ATF_TESTS)
|
||||||
@HAVE_ATF_TRUE@ atf-run | atf-report
|
@HAVE_ATF_TRUE@ sh ${top_srcdir}/tests/unittest.sh
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
30
configure
vendored
30
configure
vendored
@ -629,6 +629,7 @@ LDAP_CFLAGS
|
|||||||
ac_prefix_program
|
ac_prefix_program
|
||||||
HAVE_ATF_FALSE
|
HAVE_ATF_FALSE
|
||||||
HAVE_ATF_TRUE
|
HAVE_ATF_TRUE
|
||||||
|
ATF_BIN
|
||||||
ATF_LDFLAGS
|
ATF_LDFLAGS
|
||||||
ATF_CFLAGS
|
ATF_CFLAGS
|
||||||
byte_order
|
byte_order
|
||||||
@ -5243,7 +5244,7 @@ if test "${enable_debug+set}" = set; then :
|
|||||||
|
|
||||||
$as_echo "#define DEBUG 1" >>confdefs.h
|
$as_echo "#define DEBUG 1" >>confdefs.h
|
||||||
|
|
||||||
# Just override CFLAGS to totally to remove optimization.
|
# Just override CFLAGS totally to remove optimization.
|
||||||
CFLAGS="-g";;
|
CFLAGS="-g";;
|
||||||
no) enable_debug=no ;;
|
no) enable_debug=no ;;
|
||||||
*) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;;
|
*) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;;
|
||||||
@ -5443,16 +5444,32 @@ if test "$atf_path" != "no" ; then
|
|||||||
do
|
do
|
||||||
if test -f $d/lib/pkgconfig/atf-c.pc ; then
|
if test -f $d/lib/pkgconfig/atf-c.pc ; then
|
||||||
atf_pcp=$d/lib/pkgconfig
|
atf_pcp=$d/lib/pkgconfig
|
||||||
|
atf_path=$d
|
||||||
elif test -f $d/lib64/pkgconfig/atf-c.pc ; then
|
elif test -f $d/lib64/pkgconfig/atf-c.pc ; then
|
||||||
atf_pcp=$d/lib64/pkgconfig
|
atf_pcp=$d/lib64/pkgconfig
|
||||||
|
atf_path=$d
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$atf_pcp" = "" ; then
|
if test "$atf_pcp" = "" ; then
|
||||||
as_fn_error $? "Unable to find atf files in location specified" "$LINENO" 5
|
as_fn_error $? "Unable to find atf files in location specified" "$LINENO" 5
|
||||||
else
|
else
|
||||||
ATF_CFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --cflags atf-c` -DUNIT_TEST"
|
ATF_CFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --cflags atf-c` -DUNIT_TEST"
|
||||||
ATF_LDFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --libs atf-c`"
|
ATF_LDFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --libs atf-c`"
|
||||||
|
if test -f $atf_pcp/atf-sh.pc ; then
|
||||||
|
ATF_BIN="`PKG_CONFIG_PATH=$atf_pcp pkg-config --variable=exec_prefix atf-sh`/bin"
|
||||||
|
else
|
||||||
|
# older versions don't have atf-sh, try usual place
|
||||||
|
ATF_BIN=$atf_path/bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test ! -x $ATF_BIN/atf-run -o ! -x $ATF_BIN/atf-report ; then
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: atf-run,atf-report not found, assuming they are in your path" >&5
|
||||||
|
$as_echo "$as_me: WARNING: atf-run,atf-report not found, assuming they are in your path" >&2;}
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
@ -5466,8 +5483,11 @@ else
|
|||||||
HAVE_ATF_FALSE=
|
HAVE_ATF_FALSE=
|
||||||
fi
|
fi
|
||||||
|
|
||||||
### Uncomment this once docs.lab.isc.org upgrades to automake 1.11
|
if test -z "$HAVE_ATF_TRUE"; then :
|
||||||
### AM_COND_IF([HAVE_ATF], [AC_DEFINE([HAVE_ATF], [1], [ATF framework specified?])])
|
|
||||||
|
$as_echo "#define HAVE_ATF 1" >>confdefs.h
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
###
|
###
|
||||||
### Path fun. Older versions of DHCP were installed in /usr/sbin, so we
|
### Path fun. Older versions of DHCP were installed in /usr/sbin, so we
|
||||||
@ -6782,7 +6802,7 @@ $as_echo "#define FLEXIBLE_ARRAY_MEMBER /**/" >>confdefs.h
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
ac_config_files="$ac_config_files Makefile client/Makefile client/tests/Makefile common/Makefile common/tests/Makefile dhcpctl/Makefile dst/Makefile includes/Makefile omapip/Makefile relay/Makefile server/Makefile tests/Makefile server/tests/Makefile doc/devel/doxyfile"
|
ac_config_files="$ac_config_files Makefile client/Makefile client/tests/Makefile common/Makefile common/tests/Makefile dhcpctl/Makefile dst/Makefile includes/Makefile omapip/Makefile relay/Makefile server/Makefile tests/Makefile tests/unittest.sh server/tests/Makefile doc/devel/doxyfile"
|
||||||
|
|
||||||
cat >confcache <<\_ACEOF
|
cat >confcache <<\_ACEOF
|
||||||
# This file is a shell script that caches the results of configure
|
# This file is a shell script that caches the results of configure
|
||||||
@ -7532,6 +7552,7 @@ do
|
|||||||
"relay/Makefile") CONFIG_FILES="$CONFIG_FILES relay/Makefile" ;;
|
"relay/Makefile") CONFIG_FILES="$CONFIG_FILES relay/Makefile" ;;
|
||||||
"server/Makefile") CONFIG_FILES="$CONFIG_FILES server/Makefile" ;;
|
"server/Makefile") CONFIG_FILES="$CONFIG_FILES server/Makefile" ;;
|
||||||
"tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
|
"tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
|
||||||
|
"tests/unittest.sh") CONFIG_FILES="$CONFIG_FILES tests/unittest.sh" ;;
|
||||||
"server/tests/Makefile") CONFIG_FILES="$CONFIG_FILES server/tests/Makefile" ;;
|
"server/tests/Makefile") CONFIG_FILES="$CONFIG_FILES server/tests/Makefile" ;;
|
||||||
"doc/devel/doxyfile") CONFIG_FILES="$CONFIG_FILES doc/devel/doxyfile" ;;
|
"doc/devel/doxyfile") CONFIG_FILES="$CONFIG_FILES doc/devel/doxyfile" ;;
|
||||||
|
|
||||||
@ -8254,6 +8275,7 @@ if test "$atf_path" != "no"
|
|||||||
then
|
then
|
||||||
echo "ATF_CFLAGS : $ATF_CFLAGS" >> config.report
|
echo "ATF_CFLAGS : $ATF_CFLAGS" >> config.report
|
||||||
echo "ATF_LDFLAGS : $ATF_LDFLAGS" >> config.report
|
echo "ATF_LDFLAGS : $ATF_LDFLAGS" >> config.report
|
||||||
|
echo "ATF_BIN : $ATF_BIN" >> config.report
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
20
configure.ac
20
configure.ac
@ -205,24 +205,38 @@ if test "$atf_path" != "no" ; then
|
|||||||
do
|
do
|
||||||
if test -f $d/lib/pkgconfig/atf-c.pc ; then
|
if test -f $d/lib/pkgconfig/atf-c.pc ; then
|
||||||
atf_pcp=$d/lib/pkgconfig
|
atf_pcp=$d/lib/pkgconfig
|
||||||
|
atf_path=$d
|
||||||
elif test -f $d/lib64/pkgconfig/atf-c.pc ; then
|
elif test -f $d/lib64/pkgconfig/atf-c.pc ; then
|
||||||
atf_pcp=$d/lib64/pkgconfig
|
atf_pcp=$d/lib64/pkgconfig
|
||||||
|
atf_path=$d
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$atf_pcp" = "" ; then
|
if test "$atf_pcp" = "" ; then
|
||||||
AC_MSG_ERROR([Unable to find atf files in location specified])
|
AC_MSG_ERROR([Unable to find atf files in location specified])
|
||||||
else
|
else
|
||||||
ATF_CFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --cflags atf-c` -DUNIT_TEST"
|
ATF_CFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --cflags atf-c` -DUNIT_TEST"
|
||||||
ATF_LDFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --libs atf-c`"
|
ATF_LDFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --libs atf-c`"
|
||||||
|
if test -f $atf_pcp/atf-sh.pc ; then
|
||||||
|
ATF_BIN="`PKG_CONFIG_PATH=$atf_pcp pkg-config --variable=exec_prefix atf-sh`/bin"
|
||||||
|
else
|
||||||
|
# older versions don't have atf-sh, try usual place
|
||||||
|
ATF_BIN=$atf_path/bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test ! -x $ATF_BIN/atf-run -o ! -x $ATF_BIN/atf-report ; then
|
||||||
|
AC_MSG_WARN([atf-run,atf-report not found, assuming they are in your path])
|
||||||
|
fi
|
||||||
|
|
||||||
AC_SUBST(ATF_CFLAGS)
|
AC_SUBST(ATF_CFLAGS)
|
||||||
AC_SUBST(ATF_LDFLAGS)
|
AC_SUBST(ATF_LDFLAGS)
|
||||||
|
AC_SUBST(ATF_BIN)
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AM_CONDITIONAL(HAVE_ATF, test "$atf_pcp" != "")
|
AM_CONDITIONAL(HAVE_ATF, test "$atf_pcp" != "")
|
||||||
### Uncomment this once docs.lab.isc.org upgrades to automake 1.11
|
AM_COND_IF([HAVE_ATF], [AC_DEFINE([HAVE_ATF], [1], [ATF framework specified?])])
|
||||||
### AM_COND_IF([HAVE_ATF], [AC_DEFINE([HAVE_ATF], [1], [ATF framework specified?])])
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Path fun. Older versions of DHCP were installed in /usr/sbin, so we
|
### Path fun. Older versions of DHCP were installed in /usr/sbin, so we
|
||||||
@ -634,6 +648,7 @@ AC_CONFIG_FILES([
|
|||||||
relay/Makefile
|
relay/Makefile
|
||||||
server/Makefile
|
server/Makefile
|
||||||
tests/Makefile
|
tests/Makefile
|
||||||
|
tests/unittest.sh
|
||||||
server/tests/Makefile
|
server/tests/Makefile
|
||||||
doc/devel/doxyfile
|
doc/devel/doxyfile
|
||||||
])
|
])
|
||||||
@ -671,6 +686,7 @@ if test "$atf_path" != "no"
|
|||||||
then
|
then
|
||||||
echo "ATF_CFLAGS : $ATF_CFLAGS" >> config.report
|
echo "ATF_CFLAGS : $ATF_CFLAGS" >> config.report
|
||||||
echo "ATF_LDFLAGS : $ATF_LDFLAGS" >> config.report
|
echo "ATF_LDFLAGS : $ATF_LDFLAGS" >> config.report
|
||||||
|
echo "ATF_BIN : $ATF_BIN" >> config.report
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -207,6 +207,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -30,18 +30,28 @@ Test Framework)</a> as a framework to run our unittests.
|
|||||||
|
|
||||||
ATF stands for Automated Test Framework, and is the framework used for unit
|
ATF stands for Automated Test Framework, and is the framework used for unit
|
||||||
tests in ISC DHCP and BIND9. ATF sources can be downloaded from
|
tests in ISC DHCP and BIND9. ATF sources can be downloaded from
|
||||||
http://code.google.com/p/kyua/wiki/ATF . ATF itself must be configured, compiled
|
https://github.com/jmmv/kyua . ATF itself must be configured, compiled
|
||||||
and then installed to be available during the DHCP configure procedure. Please
|
and then installed to be available during the DHCP configure procedure. Please
|
||||||
follow INSTALL file supplied with ATF sources (it's essentially the typical
|
follow INSTALL file supplied with ATF sources (it's essentially the typical
|
||||||
./configure && make && make install procedure).
|
./configure && make && make install procedure).
|
||||||
|
|
||||||
|
Beginning with ATF version 0.16, it is necessary to include the following
|
||||||
|
options --enable-tools and --disable-shared when configuring ATF:
|
||||||
|
|
||||||
|
@verbatim
|
||||||
|
configure --prefix=<prefix> --enable-tools --disable-shared
|
||||||
|
@endverbatim
|
||||||
|
|
||||||
|
ISC DHCP unittests will run with ATF releases upto 0.19. Beginning with
|
||||||
|
ATF 0.20, the tools, atf-run and atf-report required by ISC DHCP, were
|
||||||
|
deprecated and are no longer included with ATF.
|
||||||
|
|
||||||
The ATF successor, called Kyua, is being developed. As of August 2012, the
|
The ATF successor, called Kyua, is being developed. As of August 2012, the
|
||||||
latest available release of Kyua is 0.5. It claims to offer feature parity with
|
latest available release of Kyua is 0.5. It claims to offer feature parity with
|
||||||
ATF. Migration to Kyua may be planned some time in the future, but DHCP uses ATF
|
ATF. Migration to Kyua may be planned some time in the future, but DHCP uses ATF
|
||||||
for now. Such an upgrade should be done in coordination with BIND. The latest
|
for now. Such an upgrade should be done in coordination with BIND.
|
||||||
tested version of ATF that DHCP's unittests were run against is 0.15.
|
|
||||||
|
|
||||||
To build the unit-tests, use the following:
|
To build and run the unit-tests, use the following:
|
||||||
|
|
||||||
@verbatim
|
@verbatim
|
||||||
$ ./configure --with-atf
|
$ ./configure --with-atf
|
||||||
@ -49,6 +59,11 @@ $ make
|
|||||||
$ make check
|
$ make check
|
||||||
@endverbatim
|
@endverbatim
|
||||||
|
|
||||||
|
This will traverse the source tree running the unit tests in each unit test
|
||||||
|
subdirectory. Note that if one or more tests in a unit test subdirectory fail
|
||||||
|
the make process will stop. To run all of the tests regardless of outcome,
|
||||||
|
use "make -k check"
|
||||||
|
|
||||||
The following syntax is supported as well:
|
The following syntax is supported as well:
|
||||||
@verbatim
|
@verbatim
|
||||||
$ ./configure --with-atf=/path/to/your/atf/install
|
$ ./configure --with-atf=/path/to/your/atf/install
|
||||||
@ -66,6 +81,9 @@ executable. The typical way to run tests is:
|
|||||||
|
|
||||||
@verbatim
|
@verbatim
|
||||||
$ atf-run | atf-report
|
$ atf-run | atf-report
|
||||||
|
(This assumes atf-run and atf-report are in your path)
|
||||||
|
or
|
||||||
|
$ sh ../../tests/unittests.sh
|
||||||
@endverbatim
|
@endverbatim
|
||||||
|
|
||||||
atf-run will read the Atffile in the current directory and execute all the tests
|
atf-run will read the Atffile in the current directory and execute all the tests
|
||||||
|
@ -188,6 +188,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -161,6 +161,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -34,6 +34,9 @@
|
|||||||
MSVC and with C++ compilers. */
|
MSVC and with C++ compilers. */
|
||||||
#undef FLEXIBLE_ARRAY_MEMBER
|
#undef FLEXIBLE_ARRAY_MEMBER
|
||||||
|
|
||||||
|
/* ATF framework specified? */
|
||||||
|
#undef HAVE_ATF
|
||||||
|
|
||||||
/* Define to 1 to use the Berkeley Packet Filter interface code. */
|
/* Define to 1 to use the Berkeley Packet Filter interface code. */
|
||||||
#undef HAVE_BPF
|
#undef HAVE_BPF
|
||||||
|
|
||||||
|
@ -204,6 +204,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -185,6 +185,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -246,6 +246,7 @@ am__relativize = \
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -23,12 +23,8 @@ DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.a
|
|||||||
$(top_builddir)/bind/lib/libisc.a
|
$(top_builddir)/bind/lib/libisc.a
|
||||||
|
|
||||||
ATF_TESTS =
|
ATF_TESTS =
|
||||||
TESTS =
|
|
||||||
if HAVE_ATF
|
if HAVE_ATF
|
||||||
|
|
||||||
check: $(ATF_TESTS)
|
|
||||||
atf-run | atf-report
|
|
||||||
|
|
||||||
ATF_TESTS += dhcpd_unittests legacy_unittests hash_unittests load_bal_unittests
|
ATF_TESTS += dhcpd_unittests legacy_unittests hash_unittests load_bal_unittests
|
||||||
|
|
||||||
dhcpd_unittests_SOURCES = $(DHCPSRC)
|
dhcpd_unittests_SOURCES = $(DHCPSRC)
|
||||||
@ -42,7 +38,6 @@ dhcpd_unittests_LDFLAGS = $(AM_LDFLAGS) $(ATF_LDFLAGS)
|
|||||||
hash_unittests_SOURCES = $(DHCPSRC) hash_unittest.c
|
hash_unittests_SOURCES = $(DHCPSRC) hash_unittest.c
|
||||||
hash_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
hash_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
||||||
|
|
||||||
|
|
||||||
# This is a legacy unittest. It replaces main() with something that was in mdb6.c
|
# This is a legacy unittest. It replaces main() with something that was in mdb6.c
|
||||||
legacy_unittests_SOURCES = $(DHCPSRC) mdb6_unittest.c
|
legacy_unittests_SOURCES = $(DHCPSRC) mdb6_unittest.c
|
||||||
legacy_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
legacy_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
||||||
@ -50,6 +45,9 @@ legacy_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
|||||||
load_bal_unittests_SOURCES = $(DHCPSRC) load_bal_unittest.c
|
load_bal_unittests_SOURCES = $(DHCPSRC) load_bal_unittest.c
|
||||||
load_bal_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
load_bal_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
||||||
|
|
||||||
|
check: $(ATF_TESTS)
|
||||||
|
sh ${top_srcdir}/tests/unittest.sh
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
check_PROGRAMS = $(ATF_TESTS) $(TESTS)
|
check_PROGRAMS = $(ATF_TESTS)
|
||||||
|
@ -77,12 +77,11 @@ PRE_UNINSTALL = :
|
|||||||
POST_UNINSTALL = :
|
POST_UNINSTALL = :
|
||||||
build_triplet = @build@
|
build_triplet = @build@
|
||||||
host_triplet = @host@
|
host_triplet = @host@
|
||||||
TESTS =
|
|
||||||
@HAVE_ATF_TRUE@am__append_1 = dhcpd_unittests legacy_unittests hash_unittests load_bal_unittests
|
@HAVE_ATF_TRUE@am__append_1 = dhcpd_unittests legacy_unittests hash_unittests load_bal_unittests
|
||||||
check_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_3)
|
check_PROGRAMS = $(am__EXEEXT_2)
|
||||||
subdir = server/tests
|
subdir = server/tests
|
||||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||||
$(top_srcdir)/depcomp $(top_srcdir)/test-driver
|
$(top_srcdir)/depcomp
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
@ -96,7 +95,6 @@ CONFIG_CLEAN_VPATH_FILES =
|
|||||||
@HAVE_ATF_TRUE@ hash_unittests$(EXEEXT) \
|
@HAVE_ATF_TRUE@ hash_unittests$(EXEEXT) \
|
||||||
@HAVE_ATF_TRUE@ load_bal_unittests$(EXEEXT)
|
@HAVE_ATF_TRUE@ load_bal_unittests$(EXEEXT)
|
||||||
am__EXEEXT_2 = $(am__EXEEXT_1)
|
am__EXEEXT_2 = $(am__EXEEXT_1)
|
||||||
am__EXEEXT_3 =
|
|
||||||
am__dhcpd_unittests_SOURCES_DIST = ../dhcp.c ../bootp.c ../confpars.c \
|
am__dhcpd_unittests_SOURCES_DIST = ../dhcp.c ../bootp.c ../confpars.c \
|
||||||
../db.c ../class.c ../failover.c ../omapi.c ../mdb.c \
|
../db.c ../class.c ../failover.c ../omapi.c ../mdb.c \
|
||||||
../stables.c ../salloc.c ../ddns.c ../dhcpleasequery.c \
|
../stables.c ../salloc.c ../ddns.c ../dhcpleasequery.c \
|
||||||
@ -204,7 +202,7 @@ am__recursive_targets = \
|
|||||||
$(RECURSIVE_CLEAN_TARGETS) \
|
$(RECURSIVE_CLEAN_TARGETS) \
|
||||||
$(am__extra_recursive_targets)
|
$(am__extra_recursive_targets)
|
||||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||||
check recheck distdir
|
distdir
|
||||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||||
# Read a list of newline-separated strings from the standard input,
|
# Read a list of newline-separated strings from the standard input,
|
||||||
# and print each of them once, without duplicates. Input order is
|
# and print each of them once, without duplicates. Input order is
|
||||||
@ -224,207 +222,6 @@ am__define_uniq_tagged_files = \
|
|||||||
done | $(am__uniquify_input)`
|
done | $(am__uniquify_input)`
|
||||||
ETAGS = etags
|
ETAGS = etags
|
||||||
CTAGS = ctags
|
CTAGS = ctags
|
||||||
am__tty_colors_dummy = \
|
|
||||||
mgn= red= grn= lgn= blu= brg= std=; \
|
|
||||||
am__color_tests=no
|
|
||||||
am__tty_colors = { \
|
|
||||||
$(am__tty_colors_dummy); \
|
|
||||||
if test "X$(AM_COLOR_TESTS)" = Xno; then \
|
|
||||||
am__color_tests=no; \
|
|
||||||
elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
|
|
||||||
am__color_tests=yes; \
|
|
||||||
elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
|
|
||||||
am__color_tests=yes; \
|
|
||||||
fi; \
|
|
||||||
if test $$am__color_tests = yes; then \
|
|
||||||
red='[0;31m'; \
|
|
||||||
grn='[0;32m'; \
|
|
||||||
lgn='[1;32m'; \
|
|
||||||
blu='[1;34m'; \
|
|
||||||
mgn='[0;35m'; \
|
|
||||||
brg='[1m'; \
|
|
||||||
std='[m'; \
|
|
||||||
fi; \
|
|
||||||
}
|
|
||||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
|
||||||
am__vpath_adj = case $$p in \
|
|
||||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
|
||||||
*) f=$$p;; \
|
|
||||||
esac;
|
|
||||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
|
||||||
am__install_max = 40
|
|
||||||
am__nobase_strip_setup = \
|
|
||||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
|
||||||
am__nobase_strip = \
|
|
||||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
|
||||||
am__nobase_list = $(am__nobase_strip_setup); \
|
|
||||||
for p in $$list; do echo "$$p $$p"; done | \
|
|
||||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
|
||||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
|
||||||
if (++n[$$2] == $(am__install_max)) \
|
|
||||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
|
||||||
END { for (dir in files) print dir, files[dir] }'
|
|
||||||
am__base_list = \
|
|
||||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
|
||||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
|
||||||
am__uninstall_files_from_dir = { \
|
|
||||||
test -z "$$files" \
|
|
||||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
|
||||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
|
||||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
|
||||||
}
|
|
||||||
am__recheck_rx = ^[ ]*:recheck:[ ]*
|
|
||||||
am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
|
|
||||||
am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
|
|
||||||
# A command that, given a newline-separated list of test names on the
|
|
||||||
# standard input, print the name of the tests that are to be re-run
|
|
||||||
# upon "make recheck".
|
|
||||||
am__list_recheck_tests = $(AWK) '{ \
|
|
||||||
recheck = 1; \
|
|
||||||
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
|
|
||||||
{ \
|
|
||||||
if (rc < 0) \
|
|
||||||
{ \
|
|
||||||
if ((getline line2 < ($$0 ".log")) < 0) \
|
|
||||||
recheck = 0; \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
|
|
||||||
{ \
|
|
||||||
recheck = 0; \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
|
|
||||||
{ \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
}; \
|
|
||||||
if (recheck) \
|
|
||||||
print $$0; \
|
|
||||||
close ($$0 ".trs"); \
|
|
||||||
close ($$0 ".log"); \
|
|
||||||
}'
|
|
||||||
# A command that, given a newline-separated list of test names on the
|
|
||||||
# standard input, create the global log from their .trs and .log files.
|
|
||||||
am__create_global_log = $(AWK) ' \
|
|
||||||
function fatal(msg) \
|
|
||||||
{ \
|
|
||||||
print "fatal: making $@: " msg | "cat >&2"; \
|
|
||||||
exit 1; \
|
|
||||||
} \
|
|
||||||
function rst_section(header) \
|
|
||||||
{ \
|
|
||||||
print header; \
|
|
||||||
len = length(header); \
|
|
||||||
for (i = 1; i <= len; i = i + 1) \
|
|
||||||
printf "="; \
|
|
||||||
printf "\n\n"; \
|
|
||||||
} \
|
|
||||||
{ \
|
|
||||||
copy_in_global_log = 1; \
|
|
||||||
global_test_result = "RUN"; \
|
|
||||||
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
|
|
||||||
{ \
|
|
||||||
if (rc < 0) \
|
|
||||||
fatal("failed to read from " $$0 ".trs"); \
|
|
||||||
if (line ~ /$(am__global_test_result_rx)/) \
|
|
||||||
{ \
|
|
||||||
sub("$(am__global_test_result_rx)", "", line); \
|
|
||||||
sub("[ ]*$$", "", line); \
|
|
||||||
global_test_result = line; \
|
|
||||||
} \
|
|
||||||
else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
|
|
||||||
copy_in_global_log = 0; \
|
|
||||||
}; \
|
|
||||||
if (copy_in_global_log) \
|
|
||||||
{ \
|
|
||||||
rst_section(global_test_result ": " $$0); \
|
|
||||||
while ((rc = (getline line < ($$0 ".log"))) != 0) \
|
|
||||||
{ \
|
|
||||||
if (rc < 0) \
|
|
||||||
fatal("failed to read from " $$0 ".log"); \
|
|
||||||
print line; \
|
|
||||||
}; \
|
|
||||||
printf "\n"; \
|
|
||||||
}; \
|
|
||||||
close ($$0 ".trs"); \
|
|
||||||
close ($$0 ".log"); \
|
|
||||||
}'
|
|
||||||
# Restructured Text title.
|
|
||||||
am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
|
|
||||||
# Solaris 10 'make', and several other traditional 'make' implementations,
|
|
||||||
# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
|
|
||||||
# by disabling -e (using the XSI extension "set +e") if it's set.
|
|
||||||
am__sh_e_setup = case $$- in *e*) set +e;; esac
|
|
||||||
# Default flags passed to test drivers.
|
|
||||||
am__common_driver_flags = \
|
|
||||||
--color-tests "$$am__color_tests" \
|
|
||||||
--enable-hard-errors "$$am__enable_hard_errors" \
|
|
||||||
--expect-failure "$$am__expect_failure"
|
|
||||||
# To be inserted before the command running the test. Creates the
|
|
||||||
# directory for the log if needed. Stores in $dir the directory
|
|
||||||
# containing $f, in $tst the test, in $log the log. Executes the
|
|
||||||
# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
|
|
||||||
# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
|
|
||||||
# will run the test scripts (or their associated LOG_COMPILER, if
|
|
||||||
# thy have one).
|
|
||||||
am__check_pre = \
|
|
||||||
$(am__sh_e_setup); \
|
|
||||||
$(am__vpath_adj_setup) $(am__vpath_adj) \
|
|
||||||
$(am__tty_colors); \
|
|
||||||
srcdir=$(srcdir); export srcdir; \
|
|
||||||
case "$@" in \
|
|
||||||
*/*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
|
|
||||||
*) am__odir=.;; \
|
|
||||||
esac; \
|
|
||||||
test "x$$am__odir" = x"." || test -d "$$am__odir" \
|
|
||||||
|| $(MKDIR_P) "$$am__odir" || exit $$?; \
|
|
||||||
if test -f "./$$f"; then dir=./; \
|
|
||||||
elif test -f "$$f"; then dir=; \
|
|
||||||
else dir="$(srcdir)/"; fi; \
|
|
||||||
tst=$$dir$$f; log='$@'; \
|
|
||||||
if test -n '$(DISABLE_HARD_ERRORS)'; then \
|
|
||||||
am__enable_hard_errors=no; \
|
|
||||||
else \
|
|
||||||
am__enable_hard_errors=yes; \
|
|
||||||
fi; \
|
|
||||||
case " $(XFAIL_TESTS) " in \
|
|
||||||
*[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
|
|
||||||
am__expect_failure=yes;; \
|
|
||||||
*) \
|
|
||||||
am__expect_failure=no;; \
|
|
||||||
esac; \
|
|
||||||
$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
|
|
||||||
# A shell command to get the names of the tests scripts with any registered
|
|
||||||
# extension removed (i.e., equivalently, the names of the test logs, with
|
|
||||||
# the '.log' extension removed). The result is saved in the shell variable
|
|
||||||
# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
|
|
||||||
# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
|
|
||||||
# since that might cause problem with VPATH rewrites for suffix-less tests.
|
|
||||||
# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
|
|
||||||
am__set_TESTS_bases = \
|
|
||||||
bases='$(TEST_LOGS)'; \
|
|
||||||
bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
|
|
||||||
bases=`echo $$bases`
|
|
||||||
RECHECK_LOGS = $(TEST_LOGS)
|
|
||||||
TEST_SUITE_LOG = test-suite.log
|
|
||||||
TEST_EXTENSIONS = @EXEEXT@ .test
|
|
||||||
am__test_logs1 = $(TESTS:=.log)
|
|
||||||
am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
|
|
||||||
TEST_LOGS = $(am__test_logs2:.test.log=.log)
|
|
||||||
TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
|
|
||||||
TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
|
|
||||||
$(TEST_LOG_FLAGS)
|
|
||||||
am__set_b = \
|
|
||||||
case '$@' in \
|
|
||||||
*/*) \
|
|
||||||
case '$*' in \
|
|
||||||
*/*) b='$*';; \
|
|
||||||
*) b=`echo '$@' | sed 's/\.log$$//'`; \
|
|
||||||
esac;; \
|
|
||||||
*) \
|
|
||||||
b='$*';; \
|
|
||||||
esac
|
|
||||||
DIST_SUBDIRS = $(SUBDIRS)
|
DIST_SUBDIRS = $(SUBDIRS)
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
am__relativize = \
|
am__relativize = \
|
||||||
@ -455,6 +252,7 @@ am__relativize = \
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -584,7 +382,7 @@ ATF_TESTS = $(am__append_1)
|
|||||||
all: all-recursive
|
all: all-recursive
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs
|
.SUFFIXES: .c .o .obj
|
||||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
@for dep in $?; do \
|
@for dep in $?; do \
|
||||||
case '$(am__configure_deps)' in \
|
case '$(am__configure_deps)' in \
|
||||||
@ -1014,162 +812,6 @@ cscopelist-am: $(am__tagged_files)
|
|||||||
distclean-tags:
|
distclean-tags:
|
||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
# Recover from deleted '.trs' file; this should ensure that
|
|
||||||
# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
|
|
||||||
# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
|
|
||||||
# to avoid problems with "make -n".
|
|
||||||
.log.trs:
|
|
||||||
rm -f $< $@
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $<
|
|
||||||
|
|
||||||
# Leading 'am--fnord' is there to ensure the list of targets does not
|
|
||||||
# expand to empty, as could happen e.g. with make check TESTS=''.
|
|
||||||
am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
|
|
||||||
am--force-recheck:
|
|
||||||
@:
|
|
||||||
|
|
||||||
$(TEST_SUITE_LOG): $(TEST_LOGS)
|
|
||||||
@$(am__set_TESTS_bases); \
|
|
||||||
am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
|
|
||||||
redo_bases=`for i in $$bases; do \
|
|
||||||
am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
|
|
||||||
done`; \
|
|
||||||
if test -n "$$redo_bases"; then \
|
|
||||||
redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
|
|
||||||
redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
|
|
||||||
if $(am__make_dryrun); then :; else \
|
|
||||||
rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
if test -n "$$am__remaking_logs"; then \
|
|
||||||
echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
|
|
||||||
"recursion detected" >&2; \
|
|
||||||
else \
|
|
||||||
am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
|
|
||||||
fi; \
|
|
||||||
if $(am__make_dryrun); then :; else \
|
|
||||||
st=0; \
|
|
||||||
errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
|
|
||||||
for i in $$redo_bases; do \
|
|
||||||
test -f $$i.trs && test -r $$i.trs \
|
|
||||||
|| { echo "$$errmsg $$i.trs" >&2; st=1; }; \
|
|
||||||
test -f $$i.log && test -r $$i.log \
|
|
||||||
|| { echo "$$errmsg $$i.log" >&2; st=1; }; \
|
|
||||||
done; \
|
|
||||||
test $$st -eq 0 || exit 1; \
|
|
||||||
fi
|
|
||||||
@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
|
|
||||||
ws='[ ]'; \
|
|
||||||
results=`for b in $$bases; do echo $$b.trs; done`; \
|
|
||||||
test -n "$$results" || results=/dev/null; \
|
|
||||||
all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
|
|
||||||
pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
|
|
||||||
fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
|
|
||||||
skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
|
|
||||||
xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
|
|
||||||
xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
|
|
||||||
error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
|
|
||||||
if test `expr $$fail + $$xpass + $$error` -eq 0; then \
|
|
||||||
success=true; \
|
|
||||||
else \
|
|
||||||
success=false; \
|
|
||||||
fi; \
|
|
||||||
br='==================='; br=$$br$$br$$br$$br; \
|
|
||||||
result_count () \
|
|
||||||
{ \
|
|
||||||
if test x"$$1" = x"--maybe-color"; then \
|
|
||||||
maybe_colorize=yes; \
|
|
||||||
elif test x"$$1" = x"--no-color"; then \
|
|
||||||
maybe_colorize=no; \
|
|
||||||
else \
|
|
||||||
echo "$@: invalid 'result_count' usage" >&2; exit 4; \
|
|
||||||
fi; \
|
|
||||||
shift; \
|
|
||||||
desc=$$1 count=$$2; \
|
|
||||||
if test $$maybe_colorize = yes && test $$count -gt 0; then \
|
|
||||||
color_start=$$3 color_end=$$std; \
|
|
||||||
else \
|
|
||||||
color_start= color_end=; \
|
|
||||||
fi; \
|
|
||||||
echo "$${color_start}# $$desc $$count$${color_end}"; \
|
|
||||||
}; \
|
|
||||||
create_testsuite_report () \
|
|
||||||
{ \
|
|
||||||
result_count $$1 "TOTAL:" $$all "$$brg"; \
|
|
||||||
result_count $$1 "PASS: " $$pass "$$grn"; \
|
|
||||||
result_count $$1 "SKIP: " $$skip "$$blu"; \
|
|
||||||
result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
|
|
||||||
result_count $$1 "FAIL: " $$fail "$$red"; \
|
|
||||||
result_count $$1 "XPASS:" $$xpass "$$red"; \
|
|
||||||
result_count $$1 "ERROR:" $$error "$$mgn"; \
|
|
||||||
}; \
|
|
||||||
{ \
|
|
||||||
echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
|
|
||||||
$(am__rst_title); \
|
|
||||||
create_testsuite_report --no-color; \
|
|
||||||
echo; \
|
|
||||||
echo ".. contents:: :depth: 2"; \
|
|
||||||
echo; \
|
|
||||||
for b in $$bases; do echo $$b; done \
|
|
||||||
| $(am__create_global_log); \
|
|
||||||
} >$(TEST_SUITE_LOG).tmp || exit 1; \
|
|
||||||
mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
|
|
||||||
if $$success; then \
|
|
||||||
col="$$grn"; \
|
|
||||||
else \
|
|
||||||
col="$$red"; \
|
|
||||||
test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
|
|
||||||
fi; \
|
|
||||||
echo "$${col}$$br$${std}"; \
|
|
||||||
echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
|
|
||||||
echo "$${col}$$br$${std}"; \
|
|
||||||
create_testsuite_report --maybe-color; \
|
|
||||||
echo "$$col$$br$$std"; \
|
|
||||||
if $$success; then :; else \
|
|
||||||
echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
|
|
||||||
if test -n "$(PACKAGE_BUGREPORT)"; then \
|
|
||||||
echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
|
|
||||||
fi; \
|
|
||||||
echo "$$col$$br$$std"; \
|
|
||||||
fi; \
|
|
||||||
$$success || exit 1
|
|
||||||
|
|
||||||
check-TESTS:
|
|
||||||
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
|
|
||||||
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
|
|
||||||
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
|
||||||
@set +e; $(am__set_TESTS_bases); \
|
|
||||||
log_list=`for i in $$bases; do echo $$i.log; done`; \
|
|
||||||
trs_list=`for i in $$bases; do echo $$i.trs; done`; \
|
|
||||||
log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
|
|
||||||
exit $$?;
|
|
||||||
recheck: all $(check_PROGRAMS)
|
|
||||||
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
|
||||||
@set +e; $(am__set_TESTS_bases); \
|
|
||||||
bases=`for i in $$bases; do echo $$i; done \
|
|
||||||
| $(am__list_recheck_tests)` || exit 1; \
|
|
||||||
log_list=`for i in $$bases; do echo $$i.log; done`; \
|
|
||||||
log_list=`echo $$log_list`; \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
|
|
||||||
am__force_recheck=am--force-recheck \
|
|
||||||
TEST_LOGS="$$log_list"; \
|
|
||||||
exit $$?
|
|
||||||
.test.log:
|
|
||||||
@p='$<'; \
|
|
||||||
$(am__set_b); \
|
|
||||||
$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
|
|
||||||
--log-file $$b.log --trs-file $$b.trs \
|
|
||||||
$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
|
|
||||||
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
|
||||||
@am__EXEEXT_TRUE@.test$(EXEEXT).log:
|
|
||||||
@am__EXEEXT_TRUE@ @p='$<'; \
|
|
||||||
@am__EXEEXT_TRUE@ $(am__set_b); \
|
|
||||||
@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
|
|
||||||
@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
|
|
||||||
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
|
|
||||||
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
@ -1227,7 +869,6 @@ distdir: $(DISTFILES)
|
|||||||
done
|
done
|
||||||
check-am: all-am
|
check-am: all-am
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
|
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
|
||||||
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
|
|
||||||
check: check-recursive
|
check: check-recursive
|
||||||
all-am: Makefile
|
all-am: Makefile
|
||||||
installdirs: installdirs-recursive
|
installdirs: installdirs-recursive
|
||||||
@ -1252,9 +893,6 @@ install-strip:
|
|||||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||||
fi
|
fi
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
|
|
||||||
-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
|
|
||||||
-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
|
||||||
|
|
||||||
clean-generic:
|
clean-generic:
|
||||||
|
|
||||||
@ -1335,18 +973,17 @@ uninstall-am:
|
|||||||
.MAKE: $(am__recursive_targets) check-am install-am install-strip
|
.MAKE: $(am__recursive_targets) check-am install-am install-strip
|
||||||
|
|
||||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
|
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
|
||||||
check-TESTS check-am clean clean-checkPROGRAMS clean-generic \
|
check-am clean clean-checkPROGRAMS clean-generic cscopelist-am \
|
||||||
cscopelist-am ctags ctags-am distclean distclean-compile \
|
ctags ctags-am distclean distclean-compile distclean-generic \
|
||||||
distclean-generic distclean-tags distdir dvi dvi-am html \
|
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||||
html-am info info-am install install-am install-data \
|
install install-am install-data install-data-am install-dvi \
|
||||||
install-data-am install-dvi install-dvi-am install-exec \
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
install-exec-am install-html install-html-am install-info \
|
install-html-am install-info install-info-am install-man \
|
||||||
install-info-am install-man install-pdf install-pdf-am \
|
install-pdf install-pdf-am install-ps install-ps-am \
|
||||||
install-ps install-ps-am install-strip installcheck \
|
install-strip installcheck installcheck-am installdirs \
|
||||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
|
||||||
mostlyclean-generic pdf pdf-am ps ps-am recheck tags tags-am \
|
ps ps-am tags tags-am uninstall uninstall-am
|
||||||
uninstall uninstall-am
|
|
||||||
|
|
||||||
|
|
||||||
# for autotools debugging only
|
# for autotools debugging only
|
||||||
@ -1356,7 +993,7 @@ info:
|
|||||||
@echo "ATF_LIBS=$(ATF_LIBS)"
|
@echo "ATF_LIBS=$(ATF_LIBS)"
|
||||||
|
|
||||||
@HAVE_ATF_TRUE@check: $(ATF_TESTS)
|
@HAVE_ATF_TRUE@check: $(ATF_TESTS)
|
||||||
@HAVE_ATF_TRUE@ atf-run | atf-report
|
@HAVE_ATF_TRUE@ sh ${top_srcdir}/tests/unittest.sh
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
@ -26,31 +26,57 @@ So, we (will eventually) have:
|
|||||||
And so on.
|
And so on.
|
||||||
|
|
||||||
We are using ATF (Automated Test Framework) as a framework to run our
|
We are using ATF (Automated Test Framework) as a framework to run our
|
||||||
unittests. See ISC DHCP Developer's Guide for much more thorough
|
unit tests. See ISC DHCP Developer's Guide for much more thorough
|
||||||
description of unit-test and ATF framework in general.
|
description of unit-test and ATF framework in general.
|
||||||
|
|
||||||
|
Installing ATF
|
||||||
|
--------------
|
||||||
|
ATF sources can be downloaded from https://github.com/jmmv/kyua. ATF
|
||||||
|
must be configured, compiled and then installed to be available during
|
||||||
|
the DHCP configure procedure. Please follow INSTALL file supplied with
|
||||||
|
ATF sources (it's essentially the typical ./configure && make &&
|
||||||
|
make install procedure).
|
||||||
|
|
||||||
|
Beginning with ATF version 0.16, it is necessary to include the following
|
||||||
|
options --enable-tools and --disable-shared when configuring ATF:
|
||||||
|
|
||||||
|
configure --prefix=<prefix> --enable-tools --disable-shared
|
||||||
|
|
||||||
|
ISC DHCP unittests will run with ATF releases upto 0.19. Beginning with
|
||||||
|
ATF 0.20, the tools, atf-run and atf-report required by ISC DHCP, were
|
||||||
|
deprecated and are no longer included with ATF.
|
||||||
|
|
||||||
Running Unit Tests
|
Running Unit Tests
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
In order to run the unit tests for DHCP, enable ATF support during configure:
|
In order to run the unit tests for DHCP, enable ATF support during configure:
|
||||||
|
|
||||||
$ ./configure --with-atf
|
$ ./configure --with-atf{=<atf-path>}
|
||||||
|
|
||||||
And then use:
|
where <atf-path> is the path into which ATF was installed. This would
|
||||||
|
be same value used for --prefix when ATF was configured (default is
|
||||||
|
/usr/local).
|
||||||
|
|
||||||
|
And then build ISC_DHCP with:
|
||||||
|
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Finally build and run unit tests with:
|
||||||
|
|
||||||
$ make check
|
$ make check
|
||||||
|
|
||||||
This will run all of the unit tests. Make sure that ATF is actually
|
This will traverse the source tree running the unit tests in each unit test
|
||||||
installed and that you have atf-run and atf-report tool in your PATH.
|
subdirectory. Note that if one or more tests in a unit test subdirectory fail
|
||||||
|
the make process will stop. To run all of the tests regardless of outcome,
|
||||||
|
use:
|
||||||
|
|
||||||
|
$ make -k check
|
||||||
|
|
||||||
You can run a single test by going to the appropriate test directory
|
You can run a single test by going to the appropriate test directory
|
||||||
and invoking the test directly:
|
and invoking the test directly:
|
||||||
|
|
||||||
$ cd server/tests
|
$ cd server/tests
|
||||||
$ atf-run | atf-report
|
$ make check
|
||||||
|
|
||||||
There are also a number of options that you can use when running a
|
|
||||||
test. See atf-run and atf-report documentation.
|
|
||||||
|
|
||||||
Adding a New Unit Test
|
Adding a New Unit Test
|
||||||
----------------------
|
----------------------
|
||||||
|
@ -79,14 +79,14 @@ build_triplet = @build@
|
|||||||
host_triplet = @host@
|
host_triplet = @host@
|
||||||
subdir = tests
|
subdir = tests
|
||||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||||
$(top_srcdir)/depcomp
|
$(srcdir)/unittest.sh.in $(top_srcdir)/depcomp
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(install_sh) -d
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = $(top_builddir)/includes/config.h
|
CONFIG_HEADER = $(top_builddir)/includes/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES = unittest.sh
|
||||||
CONFIG_CLEAN_VPATH_FILES =
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
AR = ar
|
AR = ar
|
||||||
ARFLAGS = cru
|
ARFLAGS = cru
|
||||||
@ -156,6 +156,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -320,6 +321,8 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
|||||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
$(am__aclocal_m4_deps):
|
$(am__aclocal_m4_deps):
|
||||||
|
unittest.sh: $(top_builddir)/config.status $(srcdir)/unittest.sh.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
|
||||||
clean-checkLIBRARIES:
|
clean-checkLIBRARIES:
|
||||||
-test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES)
|
-test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES)
|
||||||
|
79
tests/unittest.sh.in
Executable file
79
tests/unittest.sh.in
Executable file
@ -0,0 +1,79 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
#
|
||||||
|
# Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
# purpose with or without fee is hereby granted, provided that the above
|
||||||
|
# copyright notice and this permission notice appear in all copies.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# Script used to execute unit tests described by the Atffile in the current
|
||||||
|
# directory. It exits with return value of atf-run, which will be 0 if all
|
||||||
|
# tests passed, non-zero otherwise.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Add configured path to ATF tools, atf-run and atf-report
|
||||||
|
PATH="@ATF_BIN@:${PATH}"
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
# colors if not outputting to a dumb terminal and stdout is a tty
|
||||||
|
if test "$TERM" != dumb && { test -t 1; } 2>/dev/null; then \
|
||||||
|
red='\033[0;31m'
|
||||||
|
green='\033[0;32m'
|
||||||
|
noclr='\033[0m'
|
||||||
|
|
||||||
|
# if echo supports -e, we must use it to set colors
|
||||||
|
# (output will be "" if its supported)
|
||||||
|
if [ -z "`echo -e`" ]
|
||||||
|
then
|
||||||
|
dash_e="-e"
|
||||||
|
fi
|
||||||
|
fi;
|
||||||
|
|
||||||
|
header="===================================================="
|
||||||
|
|
||||||
|
status=0
|
||||||
|
if [ -n "@ATF_BIN@" -a -f Atffile ]
|
||||||
|
then
|
||||||
|
# run the tests
|
||||||
|
echo "Running unit tests..."
|
||||||
|
atf-run > atf.out
|
||||||
|
status=$?
|
||||||
|
|
||||||
|
# set color based on success/failure
|
||||||
|
if [ $status -eq 0 ]
|
||||||
|
then
|
||||||
|
color=$green
|
||||||
|
else
|
||||||
|
color=$red
|
||||||
|
fi
|
||||||
|
|
||||||
|
# spit out the test report
|
||||||
|
# We print everything upto the summary in
|
||||||
|
# "no color". Print the summary in our
|
||||||
|
# result color.
|
||||||
|
cat atf.out | atf-report | while read line
|
||||||
|
do
|
||||||
|
cnt=`echo $line | grep -c "Summary"`
|
||||||
|
if [ $cnt -eq 1 ]
|
||||||
|
then
|
||||||
|
echo $dash_e $color$header
|
||||||
|
fi
|
||||||
|
echo $line;
|
||||||
|
done
|
||||||
|
echo $dash_e $header$noclr
|
||||||
|
|
||||||
|
# clean up unless there were test failures
|
||||||
|
if [ $status -eq 0 ]
|
||||||
|
then
|
||||||
|
rm -f atf.out
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
exit $status
|
Loading…
x
Reference in New Issue
Block a user