mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-10 16:59:59 -04:00
Merge branch 'tkrizek/system-tests-prereqs' into 'main'
Unify system test feature detection and add missing prerequisites See merge request isc-projects/bind9!7151
This commit is contained in:
commit
fc991fa79d
12 changed files with 122 additions and 44 deletions
|
|
@ -45,7 +45,7 @@ n=`expr $n + 1`
|
|||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
if [ -n "$NZD" ]; then
|
||||
if $FEATURETEST --with-lmdb; then
|
||||
echo_i "checking that existing NZF file was renamed after migration ($n)"
|
||||
[ -e ns2/3bf305731dd26307.nzf~ ] || ret=1
|
||||
n=`expr $n + 1`
|
||||
|
|
@ -124,7 +124,7 @@ n=`expr $n + 1`
|
|||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
if [ -z "$NZD" ]; then
|
||||
if ! $FEATURETEST --with-lmdb; then
|
||||
echo_i "verifying no comments in NZF file ($n)"
|
||||
ret=0
|
||||
hcount=`grep "^# New zone file for view: _default" ns2/3bf305731dd26307.nzf | wc -l`
|
||||
|
|
@ -143,7 +143,7 @@ n=`expr $n + 1`
|
|||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
if [ -n "$NZD" ]; then
|
||||
if $FEATURETEST --with-lmdb; then
|
||||
echo_i "checking zone is present in NZD ($n)"
|
||||
ret=0
|
||||
$NZD2NZF ns2/_default.nzd | grep previous.example > /dev/null || ret=1
|
||||
|
|
@ -169,14 +169,14 @@ check_nzd2nzf() (
|
|||
! grep previous.example nzd2nzf.out.$n > /dev/null
|
||||
)
|
||||
|
||||
if [ -n "$NZD" ]; then
|
||||
if $FEATURETEST --with-lmdb; then
|
||||
echo_i "checking zone was deleted from NZD ($n)"
|
||||
retry_quiet 10 check_nzd2nzf || ret=1
|
||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
fi
|
||||
|
||||
if [ -z "$NZD" ]; then
|
||||
if ! $FEATURETEST --with-lmdb; then
|
||||
echo_i "checking NZF file now has comment ($n)"
|
||||
ret=0
|
||||
hcount=`grep "^# New zone file for view: _default" ns2/3bf305731dd26307.nzf | wc -l`
|
||||
|
|
@ -512,7 +512,7 @@ n=`expr $n + 1`
|
|||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
if [ -z "$NZD" ]; then
|
||||
if ! $FEATURETEST --with-lmdb; then
|
||||
echo_i "checking new NZF file has comment ($n)"
|
||||
ret=0
|
||||
hcount=`grep "^# New zone file for view: external" ns2/external.nzf | wc -l`
|
||||
|
|
@ -522,7 +522,7 @@ if [ -z "$NZD" ]; then
|
|||
status=`expr $status + $ret`
|
||||
fi
|
||||
|
||||
if [ -n "$NZD" ]; then
|
||||
if $FEATURETEST --with-lmdb; then
|
||||
echo_i "verifying added.example in external view created an external.nzd DB ($n)"
|
||||
ret=0
|
||||
[ -e ns2/external.nzd ] || ret=1
|
||||
|
|
@ -548,7 +548,7 @@ status=`expr $status + $ret`
|
|||
|
||||
echo_i "checking rndc showzone with newly added zone ($n)"
|
||||
_check_rndc_showzone_newly_added() (
|
||||
if [ -z "$NZD" ]; then
|
||||
if ! $FEATURETEST --with-lmdb; then
|
||||
expected='zone "added.example" in external { type primary; file "added.db"; };'
|
||||
else
|
||||
expected='zone "added.example" { type primary; file "added.db"; };'
|
||||
|
|
@ -655,7 +655,7 @@ n=`expr $n + 1`
|
|||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
if [ -n "$NZD" ]; then
|
||||
if $FEATURETEST --with-lmdb; then
|
||||
echo_i "checking NZD file was created in new-zones-directory ($n)"
|
||||
expect=ns2/new-zones/directory.nzd
|
||||
else
|
||||
|
|
|
|||
|
|
@ -113,18 +113,3 @@ export PERL=$(command -v "@PERL@")
|
|||
|
||||
export PYTHON=$(command -v "@PYTHON@" || true)
|
||||
export PYTEST=@PYTEST@
|
||||
|
||||
#
|
||||
# Determine if we support various optional features.
|
||||
#
|
||||
export LIBXML2_LIBS="@LIBXML2_LIBS@"
|
||||
export HAVEXMLSTATS=${LIBXML2_LIBS:+1}
|
||||
export JSON_C_LIBS="@JSON_C_LIBS@"
|
||||
export HAVEJSONSTATS=${JSON_C_LIBS:+1}
|
||||
export MAXMINDDB_LIBS="@MAXMINDDB_LIBS@"
|
||||
export HAVEGEOIP2=${MAXMINDDB_LIBS:+1}
|
||||
export ZLIB_LIBS="@ZLIB_LIBS@"
|
||||
export HAVEZLIB=${ZLIB_LIBS:+1}
|
||||
export LMDB_LIBS="@LMDB_LIBS@"
|
||||
export NZD=${LMDB_LIBS:+1}
|
||||
export CRYPTO=@CRYPTO@
|
||||
|
|
|
|||
20
bin/tests/system/dnstap/prereq.sh
Normal file
20
bin/tests/system/dnstap/prereq.sh
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
. ../conf.sh
|
||||
|
||||
$FEATURETEST --enable-dnstap || {
|
||||
echo_i "This test requires dnstap support." >&2
|
||||
exit 255
|
||||
}
|
||||
exit 0
|
||||
20
bin/tests/system/doth/prereq.sh
Normal file
20
bin/tests/system/doth/prereq.sh
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
. ../conf.sh
|
||||
|
||||
$FEATURETEST --with-libnghttp2 || {
|
||||
echo_i "This test requires libnghttp2 support." >&2
|
||||
exit 255
|
||||
}
|
||||
exit 0
|
||||
|
|
@ -34,6 +34,7 @@ usage(void) {
|
|||
fprintf(stderr, "\t--gethostname\n");
|
||||
fprintf(stderr, "\t--gssapi\n");
|
||||
fprintf(stderr, "\t--have-geoip2\n");
|
||||
fprintf(stderr, "\t--have-json-c\n");
|
||||
fprintf(stderr, "\t--have-libxml2\n");
|
||||
fprintf(stderr, "\t--ipv6only=no\n");
|
||||
fprintf(stderr, "\t--tsan\n");
|
||||
|
|
@ -41,6 +42,7 @@ usage(void) {
|
|||
fprintf(stderr, "\t--with-libidn2\n");
|
||||
fprintf(stderr, "\t--with-lmdb\n");
|
||||
fprintf(stderr, "\t--with-libnghttp2\n");
|
||||
fprintf(stderr, "\t--with-zlib\n");
|
||||
}
|
||||
|
||||
int
|
||||
|
|
@ -112,6 +114,14 @@ main(int argc, char **argv) {
|
|||
#endif /* ifdef HAVE_GEOIP2 */
|
||||
}
|
||||
|
||||
if (strcmp(argv[1], "--have-json-c") == 0) {
|
||||
#ifdef HAVE_JSON_C
|
||||
return (0);
|
||||
#else /* ifdef HAVE_JSON_C */
|
||||
return (1);
|
||||
#endif /* ifdef HAVE_JSON_C */
|
||||
}
|
||||
|
||||
if (strcmp(argv[1], "--have-libxml2") == 0) {
|
||||
#ifdef HAVE_LIBXML2
|
||||
return (0);
|
||||
|
|
@ -179,9 +189,17 @@ main(int argc, char **argv) {
|
|||
if (strcmp(argv[1], "--with-libnghttp2") == 0) {
|
||||
#ifdef HAVE_LIBNGHTTP2
|
||||
return (0);
|
||||
#else /* ifdef HAVE_LMDB */
|
||||
#else /* ifdef HAVE_LIBNGHTTP2 */
|
||||
return (1);
|
||||
#endif /* ifdef HAVE_LMDB */
|
||||
#endif /* ifdef HAVE_LIBNGHTTP2 */
|
||||
}
|
||||
|
||||
if (strcmp(argv[1], "--with-zlib") == 0) {
|
||||
#ifdef HAVE_ZLIB
|
||||
return (0);
|
||||
#else /* ifdef HAVE_ZLIB */
|
||||
return (1);
|
||||
#endif /* ifdef HAVE_ZLIB */
|
||||
}
|
||||
|
||||
fprintf(stderr, "unknown arg: %s\n", argv[1]);
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@
|
|||
|
||||
. ../conf.sh
|
||||
|
||||
if [ -n "${SOFTHSM2_MODULE}" ] && command -v softhsm2-util >/dev/null; then
|
||||
if [ -n "${SOFTHSM2_MODULE}" ] && command -v pkcs11-tool >/dev/null && command -v softhsm2-util >/dev/null; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo_i "skip: softhsm2-util not available"
|
||||
echo_i "skip: softhsm2-util or pkcs11-tool not available"
|
||||
exit 255
|
||||
|
|
|
|||
20
bin/tests/system/nzd2nzf/prereq.sh
Normal file
20
bin/tests/system/nzd2nzf/prereq.sh
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
. ../conf.sh
|
||||
|
||||
$FEATURETEST --with-lmdb || {
|
||||
echo_i "This test requires LMDB support." >&2
|
||||
exit 255
|
||||
}
|
||||
exit 0
|
||||
|
|
@ -12,6 +12,7 @@
|
|||
# information regarding copyright ownership.
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
import pytest
|
||||
|
||||
|
|
@ -19,3 +20,23 @@ import pytest
|
|||
long_test = pytest.mark.skipif(
|
||||
not os.environ.get("CI_ENABLE_ALL_TESTS"), reason="CI_ENABLE_ALL_TESTS not set"
|
||||
)
|
||||
|
||||
|
||||
def feature_test(feature):
|
||||
feature_test_bin = os.environ["FEATURETEST"]
|
||||
try:
|
||||
subprocess.run([feature_test_bin, feature], check=True)
|
||||
except subprocess.CalledProcessError as exc:
|
||||
if exc.returncode != 1:
|
||||
raise
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
have_libxml2 = pytest.mark.skipif(
|
||||
feature_test("--have-libxml2"), reason="libxml2 support disabled in the build"
|
||||
)
|
||||
|
||||
have_json_c = pytest.mark.skipif(
|
||||
feature_test("--have-json-c"), reason="json-c support disabled in the build"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -13,15 +13,12 @@
|
|||
|
||||
from datetime import datetime
|
||||
|
||||
import os
|
||||
|
||||
import pytest
|
||||
|
||||
import generic
|
||||
import pytest_custom_markers
|
||||
|
||||
pytestmark = pytest.mark.skipif(
|
||||
not os.environ.get("HAVEJSONSTATS"), reason="json-c support disabled in the build"
|
||||
)
|
||||
pytestmark = pytest_custom_markers.have_json_c
|
||||
requests = pytest.importorskip("requests")
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -11,18 +11,15 @@
|
|||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
import xml.etree.ElementTree as ET
|
||||
from datetime import datetime
|
||||
|
||||
import os
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
import pytest
|
||||
|
||||
import generic
|
||||
import pytest_custom_markers
|
||||
|
||||
pytestmark = pytest.mark.skipif(
|
||||
not os.environ.get("HAVEXMLSTATS"), reason="libxml2 support disabled in the build"
|
||||
)
|
||||
pytestmark = pytest_custom_markers.have_libxml2
|
||||
requests = pytest.importorskip("requests")
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
DIGCMD="$DIG @10.53.0.2 -p ${PORT}"
|
||||
RNDCCMD="$RNDC -c ../common/rndc.conf -p ${CONTROLPORT} -s"
|
||||
|
||||
if [ ! "$HAVEJSONSTATS" ]
|
||||
if ! $FEATURETEST --have-json-c
|
||||
then
|
||||
unset PERL_JSON
|
||||
echo_i "JSON was not configured; skipping" >&2
|
||||
|
|
@ -29,7 +29,7 @@ else
|
|||
echo_i "JSON tests require JSON library; skipping" >&2
|
||||
fi
|
||||
|
||||
if [ ! "$HAVEXMLSTATS" ]
|
||||
if ! $FEATURETEST --have-libxml2
|
||||
then
|
||||
unset PERL_XML
|
||||
echo_i "XML was not configured; skipping" >&2
|
||||
|
|
@ -139,7 +139,7 @@ ret=0
|
|||
if [ -x "${CURL}" ] ; then
|
||||
for i in 1 2 3 4 5; do
|
||||
ret=0
|
||||
if [ "$HAVEXMLSTATS" ];
|
||||
if $FEATURETEST --have-libxml2;
|
||||
then
|
||||
URL="http://10.53.0.2:${EXTRAPORT1}/xml/v3/server"
|
||||
filter_str='s#<current-time>.*</current-time>##g'
|
||||
|
|
@ -167,7 +167,7 @@ n=$((n + 1))
|
|||
|
||||
ret=0
|
||||
echo_i "checking if compressed output is really compressed ($n)"
|
||||
if [ "$HAVEZLIB" ];
|
||||
if $FEATURETEST --with-zlib;
|
||||
then
|
||||
REGSIZE=`cat regular.headers | \
|
||||
grep -i Content-Length | sed -e "s/.*: \([0-9]*\).*/\1/"`
|
||||
|
|
|
|||
|
|
@ -751,7 +751,7 @@ do
|
|||
echo_i "Skipping XML statistics checks"
|
||||
fi
|
||||
|
||||
if [ ${HAVEJSONSTATS} ] && [ -x "${CURL}" ] ; then
|
||||
if $FEATURETEST --have-json-c && [ -x "${CURL}" ] ; then
|
||||
echo_i "getting JSON statisistcs for (synth-from-dnssec ${description};) ($n)"
|
||||
ret=0
|
||||
json=json.out$n
|
||||
|
|
|
|||
Loading…
Reference in a new issue