.deps/
.dirstamp
.libs/
-unit/atf-src/atf-c++/atf-c++.pc
-unit/atf-src/atf-c/atf-c.pc
-unit/atf-src/atf-c/defs.h
-unit/atf-src/atf-c/detail/process_helpers
-unit/atf-src/atf-config/atf-config
-unit/atf-src/atf-report/atf-report
-unit/atf-src/atf-report/fail_helper
-unit/atf-src/atf-report/misc_helpers
-unit/atf-src/atf-report/pass_helper
-unit/atf-src/atf-run/atf-run
-unit/atf-src/atf-run/bad_metadata_helper
-unit/atf-src/atf-run/expect_helpers
-unit/atf-src/atf-run/misc_helpers
-unit/atf-src/atf-run/pass_helper
-unit/atf-src/atf-run/several_tcs_helper
-unit/atf-src/atf-run/zero_tcs_helper
-unit/atf-src/atf-sh/atf-check
-unit/atf-src/atf-sh/atf-sh
-unit/atf-src/atf-sh/misc_helpers
-unit/atf-src/atf-version/atf-version
-unit/atf-src/atf-version/revision.h
-unit/atf-src/atf-version/revision.h.stamp
-unit/atf-src/bconfig.h
-unit/atf-src/bootstrap/atconfig
-unit/atf-src/doc/atf.7
-unit/atf-src/stamp-h1
-unit/atf-src/test-programs/c_helpers
-unit/atf-src/test-programs/cpp_helpers
-unit/atf-src/test-programs/sh_helpers
# ccc-analyzer store its results in .plist directories
*.plist/
*~
/* Use AES for Client Cookie generation */
#undef AES_CC
-/* define if ATF unit tests are to be built. */
-#undef ATF_TEST
-
/* Define if you cannot bind() before connect() for TCP sockets. */
#undef BROKEN_TCP_BIND_BEFORE_CONNECT
BIND9_ISC_BUILDINCLUDE
BIND9_TOP_BUILDDIR
LD_WRAP_TESTS
+KYUA
UNITTESTS
CMOCKA_LIBS
CMOCKA_CFLAGS
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
LIBIDN2_CFLAGS
LIBIDN2_LIBS
CMOCKA_CFLAGS
-CMOCKA_LIBS'
+CMOCKA_LIBS
+KYUA'
# Initialize some variables set by options.
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
+ libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
CMOCKA_CFLAGS
C compiler flags for CMOCKA, overriding pkg-config
CMOCKA_LIBS linker flags for CMOCKA, overriding pkg-config
+ KYUA path to kyua execution engine
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
STD_CDEFINES="$STD_CDEFINES -DISC_MEM_DEFAULTFILL=1 -DISC_LIST_CHECKINIT=1 -DNS_HOOKS_ENABLE=1"
test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes
test "${enable_querytrace+set}" = set || enable_querytrace=yes
- test "${with_atf+set}" = set || with_atf=yes
test "${with_cmocka+set}" = set || with_cmocka=yes
test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes
test "${enable_symtable+set}" = set || enable_symtable=all
+#
+# Check for kyua execution engine if ATF was requested
+# and bail out if execution engine was not found
+#
+
+if test "$with_cmocka" != "no"; then :
+ for ac_prog in kyua
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_KYUA+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $KYUA in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_KYUA="$KYUA" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_KYUA="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+KYUA=$ac_cv_path_KYUA
+if test -n "$KYUA"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $KYUA" >&5
+$as_echo "$KYUA" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$KYUA" && break
+done
+
+ if test -z "$KYUA"; then :
+ as_fn_error $? "kyua test execution engine not found" "$LINENO" 5
+fi
+fi
+
+
+
#
# Check for -Wl,--wrap= support
#
LDFLAGS=$save_LDFLAGS
+#
+# Check for i18n
+#
for ac_header in locale.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default"
STD_CDEFINES="$STD_CDEFINES -DISC_MEM_DEFAULTFILL=1 -DISC_LIST_CHECKINIT=1 -DNS_HOOKS_ENABLE=1"
test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes
test "${enable_querytrace+set}" = set || enable_querytrace=yes
- test "${with_atf+set}" = set || with_atf=yes
test "${with_cmocka+set}" = set || with_cmocka=yes
test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes
test "${enable_symtable+set}" = set || enable_symtable=all
AC_SUBST([CMOCKA_LIBS])
AC_SUBST(UNITTESTS)
+#
+# Check for kyua execution engine if ATF was requested
+# and bail out if execution engine was not found
+#
+AC_ARG_VAR([KYUA], [path to kyua execution engine])
+AS_IF([test "$with_cmocka" != "no"],
+ [AC_PATH_PROGS([KYUA], [kyua], [])
+ AS_IF([test -z "$KYUA"],
+ [AC_MSG_ERROR([kyua test execution engine not found])])])
+
+AC_SUBST([KYUA])
+
#
# Check for -Wl,--wrap= support
#
LDFLAGS=$save_LDFLAGS
+#
+# Check for i18n
+#
AC_CHECK_HEADERS(locale.h)
AC_CHECK_FUNCS(setlocale)
#include <stdarg.h>
#include <stddef.h>
+#include <stdlib.h>
#include <setjmp.h>
-#include <stdlib.h>
+#include <isc/util.h>
+
+#ifdef NS_HOOKS_ENABLE
+
#include <stdio.h>
#include <string.h>
#include <unistd.h>
return (cmocka_run_group_tests(tests, NULL, NULL));
}
+#else
+
+#include <stdio.h>
+
+int
+main(void) {
+ printf("1..0 # Skipped: libns hooks not enabled\n");
+ return (0);
+}
+
+#endif /* NS_HOOKS_ENABLE */
#else /* HAVE_CMOCKA */
return (0);
}
-#endif
+#endif /* HAVE_CMOCKA */
#include <stdarg.h>
#include <stddef.h>
+#include <stdlib.h>
#include <setjmp.h>
-#include <stdlib.h>
+#include <isc/util.h>
+
+#ifdef NS_HOOKS_ENABLE
+
#include <stdio.h>
#include <string.h>
#include <unistd.h>
return (cmocka_run_group_tests(tests, NULL, NULL));
}
+#else
+
+#include <stdio.h>
+
+int
+main(void) {
+ printf("1..0 # Skipped: libns hooks not enabled\n");
+ return (0);
+}
+
+#endif /* NS_HOOKS_ENABLE */
#else /* HAVE_CMOCKA */
#include <config.h>
+#ifdef NS_HOOKS_ENABLE
+
#include <inttypes.h>
#include <stdbool.h>
#include <stdlib.h>
isc_stdio_close(f);
return (result);
}
+#endif
#include <stddef.h>
#include <setjmp.h>
+#include <isc/util.h>
+
+#ifdef NS_HOOKS_ENABLE
+
#include <inttypes.h>
#include <stdbool.h>
#include <stdlib.h>
#include <dns/badcache.h>
#include <dns/view.h>
-#include <isc/util.h>
#include <ns/client.h>
#include <ns/query.h>
#include <isc/util.h>
return (cmocka_run_group_tests(tests, NULL, NULL));
}
+#else
+
+#include <stdio.h>
+
+int
+main(void) {
+ printf("1..0 # Skipped: libns hooks not enabled\n");
+ return (0);
+}
+
+#endif /* NS_HOOKS_ENABLE */
#else /* HAVE_CMOCKA */
return (0);
}
-#endif
+#endif /* HAVE_CMOCKA */
-These unit tests for BIND 9 are based on the NetBSD Automated Test Framework
-release 0.17.
+Unit tests for BIND 9 are based on NetBSD Automated Test Framework, cmocka and
+test execution engine Kyua.
-To build an external copy of ATF for use by BIND 9:
+If your distribution of choice doesn't include packages for atf, kyua and
+cmocka, the sources can be found here:
- $ cd atf-src
- $ configure --prefix=<prefix> --enable-tools --disable-shared
- $ make
- $ make install
-
-Subsequently, specify the ATF prefix when building BIND 9:
-
- $ configure --with-atf=<prefix>
-
-ATF can also be built automatically during the BIND 9 build,
-by specifying --with-atf without an argument:
-
- $ configure --with-atf
-
-This causes BIND 9 to build ATF in the atf-src directory and
-link to it directly.
+ * ATF 0.20 - https://github.com/jmmv/atf/releases
+ * Kyua 0.13 - https://github.com/jmmv/kyua/releases
+ * CMocka 1.0 - https://cmocka.org/files/
#!/bin/sh
-
-PATH="@ATFBIN@:${PATH}"
-export PATH
-KYUA=`command -v kyua 2>/dev/null`
+KYUA=@KYUA@
+UNITTESTS=@UNITTESTS@
CMOCKA_MESSAGE_OUTPUT=TAP
export CMOCKA_MESSAGE_OUTPUT
status=0
-if [ -n "@UNITTESTS@" -a -x "$KYUA" -a -f Kyuafile ]
+if [ -n "${UNITTESTS}" ] && [ -f Kyuafile ]
then
- echo "S:unit:`date`"
+ echo "S:unit:$(date)"
echo "T:unit:1:A"
echo "I: unit tests (using kyua)"
- $KYUA -v parallelism=${TEST_PARALLEL_JOBS:-1} --logfile kyua.log --loglevel debug test --results-file ${KYUA_RESULT:-NEW}
+ ${KYUA} -v parallelism="${TEST_PARALLEL_JOBS:-1}" --logfile kyua.log --loglevel debug test --results-file "${KYUA_RESULT:-NEW}"
status=$?
- $KYUA report --results-file ${KYUA_RESULT:-LATEST}
+ ${KYUA} report --results-file "${KYUA_RESULT:-LATEST}"
- if [ $status -eq 0 ]
+ if [ "${status}" -eq "0" ]
then
rm -f kyua.log
- echo R:PASS
+ echo "R:PASS"
else
- echo R:FAIL
+ echo "R:FAIL"
fi
- echo "E:unit:`date`"
+ echo "E:unit:$(date)"
fi
-exit $status
+exit ${status}
# Contributed code should maintain its own copyright.
if ($base =~ /\.\/contrib\//) {
$file_types{$_} = "X";
- } elsif ($base =~ /\.\/unit\/atf-src\//) {
- $file_types{$_} = "X";
} elsif ($base =~ /\/openssl-[a-z0-9.]*-patch$/) {
$file_types{$_} = "X";
} elsif ($base =~ /\.(c|h|css)$/) {
$file_types{$_} = "CONF-SH";
} elsif ($base =~ /\.md$/) {
$file_types{$_} = "MKD";
- } elsif ($base =~ /(\/\.(gitignore|gitattributes)|Atffile|Kyuafile|\.(gif|jpg))$/i) {
+ } elsif ($base =~ /(\/\.(gitignore|gitattributes)|Kyuafile|\.(gif|jpg))$/i) {
$file_types{$_} = "X";
} elsif ($base =~ /\.(def|dep|dsp|dsw|mak|sln)$/i) {
$file_types{$_} = "X";