case $context in
bind)
cat > pdns-bind.conf << __EOF__
-module-dir=./modules
+module-dir=$PDNS_MESON_PATH/./modules
launch=bind
bind-config=./named.conf
bind-ignore-broken-records=yes
__EOF__
- $RUNWRAPPER $PDNS --daemon=no --local-address=$address --local-port=$port --config-dir=. \
+ $RUNWRAPPER $PDNS --loglevel=7 --daemon=no --local-address=$address --local-port=$port --config-dir=. \
--config-name=bind --socket-dir=./ --no-shuffle \
--cache-ttl=$cachettl --dname-processing \
--disable-axfr-rectify=yes &
bind-dnssec | bind-dnssec-nsec3 | bind-hybrid-nsec3 | bind-dnssec-nsec3-optout | bind-dnssec-nsec3-narrow)
rm -f dnssec.sqlite3
cat > pdns-bind.conf << __EOF__
-module-dir=./modules
+module-dir=$PDNS_MESON_PATH/./modules
launch=bind
bind-config=./named.conf
bind-ignore-broken-records=yes
skipreasons="nodyndns noalias nsec"
fi
- $RUNWRAPPER $PDNS --daemon=no --local-address=$address --local-port=$port --config-dir=. \
+ $RUNWRAPPER $PDNS --loglevel=7 --daemon=no --local-address=$address --local-port=$port --config-dir=. \
--config-name=bind --socket-dir=./ --no-shuffle \
--cache-ttl=$cachettl --dname-processing \
--disable-axfr-rectify=yes $lua_prequery &
geoipdatabase=${geoipdatabase:-$testsdir/GeoLiteCity.dat}
- $RUNWRAPPER $PDNS --daemon=no --local-address=$address --local-port=$port --socket-dir=./ \
+ $RUNWRAPPER $PDNS --loglevel=7 --daemon=no --local-address=$address --local-port=$port --socket-dir=./ \
--no-shuffle --launch=geoip \
--cache-ttl=$cachettl --dname-processing --no-config \
--distributor-threads=1 \
--geoip-zones-file=$testsdir/geo.yaml --geoip-database-files="$geoipdatabase" \
- --module-dir=./modules --edns-subnet-processing=yes \
+ --module-dir="$PDNS_MESON_PATH/./modules" --edns-subnet-processing=yes \
$geoipkeydir &
;;
"$GMYSQLDB"
cat > pdns-gmysql.conf << __EOF__
-module-dir=./modules
+module-dir=$PDNS_MESON_PATH/./modules
launch=gmysql
gmysql-dbname=$GMYSQLDB
gmysql-user=$GMYSQLUSER
# actually terminates
tosql gsqlite | grep -v -E '(COMMIT|TRANSACTION)' | awk '1;!(NR%98){print "go"}' | cat - <(echo go) /dev/null | $BSQLODBC
cat > pdns-godbc_mssql.conf << __EOF__
-module-dir=./modules
+module-dir=$PDNS_MESON_PATH/./modules
launch=godbc
godbc-datasource=$GODBC_MSSQL_DSN
godbc-username=$GODBC_MSSQL_USERNAME
echo 'ANALYZE; PRAGMA journal_mode=WAL;' | sqlite3 pdns.sqlite3
cat > pdns-godbc_sqlite3.conf << __EOF__
-module-dir=./modules
+module-dir=$PDNS_MESON_PATH/./modules
launch=godbc
godbc-datasource=$GODBC_SQLITE3_DSN
psql --user="$GPGSQLUSER" -c "ANALYZE" "$GPGSQLDB"
cat > pdns-gpgsql.conf << __EOF__
-module-dir=./modules
+module-dir=$PDNS_MESON_PATH/./modules
launch=gpgsql
gpgsql-dbname=$GPGSQLDB
gpgsql-user=$GPGSQLUSER
done
- $RUNWRAPPER $PDNS --daemon=no --local-address=$address --local-port=$port --config-dir=. \
+ $RUNWRAPPER $PDNS --loglevel=7 --daemon=no --local-address=$address --local-port=$port --config-dir=. \
--config-name=$backend --socket-dir=./ --no-shuffle \
--dnsupdate=yes --resolver=$RESOLVERIP --outgoing-axfr-expand-alias=yes \
--expand-alias=yes \
echo ANALYZE\; | sqlite3 pdns.sqlite3
cat > pdns-gsqlite3.conf << __EOF__
-module-dir=./modules
+module-dir=$PDNS_MESON_PATH/./modules
launch=gsqlite3
gsqlite3-database=pdns.sqlite3
consistent-backends
$ZONE2LDAP --dnsttl=yes --basedn=$LDAPBASEDN --layout=$layout --named-conf=named.conf | ldapmodify -D $LDAPUSER -w $LDAPPASSWD -H $LDAPHOST -c > /dev/null || true
cat > pdns-ldap.conf << __EOF__
-module-dir=./modules
+module-dir=$PDNS_MESON_PATH/./modules
launch=ldap
ldap-basedn=$LDAPBASEDN
ldap-binddn=$LDAPUSER
ldap-host=$LDAPHOST
__EOF__
- $RUNWRAPPER $PDNS --daemon=no --local-address=$address --local-port=$port --config-dir=. \
+ $RUNWRAPPER $PDNS --loglevel=7 --daemon=no --local-address=$address --local-port=$port --config-dir=. \
--config-name=ldap --socket-dir=./ --no-shuffle \
--query-logging --dnsupdate=yes \
--expand-alias=yes --outgoing-axfr-expand-alias=yes \
case $context in
lmdb | lmdb-nodnssec | lmdb-nsec3 | lmdb-nsec3-optout | lmdb-nsec3-narrow)
cat > pdns-lmdb.conf << __EOF__
-module-dir=./modules
+module-dir=$PDNS_MESON_PATH/./modules
launch=lmdb
lmdb-filename=./pdns.lmdb
lmdb-random-ids=yes
$PDNSUTIL --config-dir=. --config-name=lmdb set-options-json tsig.com '{"producer":{"group":["pdns-group-x","pdns-group-y"]}}'
fi
- $RUNWRAPPER $PDNS --daemon=no --local-address=$address --local-port=$port --config-dir=. \
+ $RUNWRAPPER $PDNS --loglevel=7 --daemon=no --local-address=$address --local-port=$port --config-dir=. \
--config-name=lmdb --socket-dir=./ --no-shuffle \
--dnsupdate=no \
--expand-alias=yes --resolver=$RESOLVERIP \
# generate pdns.conf for pdnsutil
cat > pdns-lua2.conf <<EOF
-module-dir=./modules
+module-dir=$PDNS_MESON_PATH/./modules
launch=lua2
lua2-filename=$testsdir/$luascript
lua2-api=2
allow-axfr-ips=0.0.0.0/0,::/0
EOF
- $RUNWRAPPER $PDNS --daemon=no --local-address=$address --local-port=$port --socket-dir=./ \
+ $RUNWRAPPER $PDNS --loglevel=7 --daemon=no --local-address=$address --local-port=$port --socket-dir=./ \
--no-shuffle --launch=lua2 \
--cache-ttl=$cachettl --dname-processing --no-config \
--distributor-threads=1 --zone-cache-refresh-interval=$interval \
extracontexts="dnssec nsec3"
skipreasons="nsec3 nodyndns"
fi
-
+
remote_add_param="--remote-dnssec=yes"
elif [ "$remotesec" = "dnssec" ]
then
# generate pdns.conf for pdnsutil
cat > pdns-remote.conf <<EOF
-module-dir=./modules
+module-dir=$PDNS_MESON_PATH/./modules
launch=remote
remote-connection-string=$connstr,timeout=10000
EOF
# add DS records into list-all-records
$PDNSUTIL --config-dir=. --config-name=remote show-zone -v up.example.com | gawk '{ if ($1=="DS") { printf "up.example.com. 120 IN DS " $6 " " $7 " " $8 " " substr(toupper($9),0,56); if (length($9)>56) { print " " substr(toupper($9),57) } else { print "" } } }' > $testsdir/list-all-records/expected_dnssec_part2
- cat $testsdir/list-all-records/expected_dnssec_part1 $testsdir/list-all-records/expected_dnssec_part2 $testsdir/list-all-records/expected_dnssec_part3 > $testsdir/list-all-records/expected_result.dnssec
+ cat $testsdir/list-all-records/expected_dnssec_part1 $testsdir/list-all-records/expected_dnssec_part2 $testsdir/list-all-records/expected_dnssec_part3 > $testsdir/list-all-records/expected_result.dnssec
cp -f $testsdir/list-all-records/expected_result.dnssec $testsdir/list-all-records/expected_result.nsec3
fi
- $RUNWRAPPER $PDNS --daemon=no --local-address=$address --local-port=$port --socket-dir=./ \
+ $RUNWRAPPER $PDNS --loglevel=7 --daemon=no --local-address=$address --local-port=$port --socket-dir=./ \
--no-shuffle --launch=remote \
--cache-ttl=$cachettl --dname-processing --no-config \
--distributor-threads=1 \
--dnsupdate=yes --zone-cache-refresh-interval=0 \
- --remote-connection-string="$connstr" $remote_add_param --module-dir=./modules &
+ --remote-connection-string="$connstr" $remote_add_param --module-dir="$PDNS_MESON_PATH/./modules" &
;;
*)
case $context in
tinydns)
- $RUNWRAPPER $PDNS --daemon=no --local-address=$address --local-port=$port --socket-dir=./ \
+ $RUNWRAPPER $PDNS --loglevel=7 --daemon=no --local-address=$address --local-port=$port --socket-dir=./ \
--no-shuffle --launch=tinydns \
--cache-ttl=$cachettl --dname-processing --no-config \
--dnsupdate=yes \
- --tinydns-dbfile=../modules/tinydnsbackend/data.cdb --module-dir=./modules &
+ --tinydns-dbfile=../modules/tinydnsbackend/data.cdb --module-dir="$PDNS_MESON_PATH/./modules" &
skipreasons="nodnssec noent nodyndns nometa noaxfr noalias"
;;
PATH=.:$PATH:/usr/sbin
MAKE=${MAKE:-make}
-export PDNS=${PDNS:-${PWD}/../pdns/pdns_server}
-export PDNS2=${PDNS2:-${PWD}/../pdns/pdns_server}
-export PDNSRECURSOR=${PDNSRECURSOR:-${PWD}/../pdns/recursordist/pdns_recursor}
-export RECCONTROL=${RECCONTROL:-${PWD}/../pdns/recursordist/rec_control}
-export SDIG=${SDIG:-${PWD}/../pdns/sdig}
-export NOTIFY=${NOTIFY:-${PWD}/../pdns/pdns_notify}
-export NSEC3DIG=${NSEC3DIG:-${PWD}/../pdns/nsec3dig}
-export SAXFR=${SAXFR:-${PWD}/../pdns/saxfr}
-export ZONE2SQL=${ZONE2SQL:-${PWD}/../pdns/zone2sql}
-export ZONE2JSON=${ZONE2JSON:-${PWD}/../pdns/zone2json}
-export ZONE2LDAP=${ZONE2LDAP:-${PWD}/../pdns/zone2ldap}
-export PDNSUTIL=${PDNSUTIL:-${PWD}/../pdns/pdnsutil}
-export PDNSCONTROL=${PDNSCONTROL:-${PWD}/../pdns/pdns_control}
+if [ -z "$PDNS_MESON_PATH" ]; then
+ # PDNS_MESON_PATH is unset or empty. Assume an autotools build.
+
+ export PDNS=${PDNS:-${PWD}/../pdns/pdns_server}
+ export PDNS2=${PDNS2:-${PWD}/../pdns/pdns_server}
+ export PDNSRECURSOR=${PDNSRECURSOR:-${PWD}/../pdns/recursordist/pdns_recursor}
+ export RECCONTROL=${RECCONTROL:-${PWD}/../pdns/recursordist/rec_control}
+ export SDIG=${SDIG:-${PWD}/../pdns/sdig}
+ export NOTIFY=${NOTIFY:-${PWD}/../pdns/pdns_notify}
+ export NSEC3DIG=${NSEC3DIG:-${PWD}/../pdns/nsec3dig}
+ export SAXFR=${SAXFR:-${PWD}/../pdns/saxfr}
+ export ZONE2SQL=${ZONE2SQL:-${PWD}/../pdns/zone2sql}
+ export ZONE2JSON=${ZONE2JSON:-${PWD}/../pdns/zone2json}
+ export ZONE2LDAP=${ZONE2LDAP:-${PWD}/../pdns/zone2ldap}
+ export PDNSUTIL=${PDNSUTIL:-${PWD}/../pdns/pdnsutil}
+ export PDNSCONTROL=${PDNSCONTROL:-${PWD}/../pdns/pdns_control}
+else
+ export PDNS=${PDNS:-$PDNS_MESON_PATH/pdns-auth}
+ export PDNS2=${PDNS2:-$PDNS_MESON_PATH/pdns-auth}
+ export PDNSRECURSOR=${PDNSRECURSOR:-$PDNS_MESON_PATH/pdns/recursordist/pdns_recursor}
+ export RECCONTROL=${RECCONTROL:-$PDNS_MESON_PATH/pdns/recursordist/rec_control}
+ export SDIG=${SDIG:-$PDNS_MESON_PATH/sdig}
+ export NOTIFY=${NOTIFY:-$PDNS_MESON_PATH/pdns-auth-notify}
+ export NSEC3DIG=${NSEC3DIG:-$PDNS_MESON_PATH/nsec3dig}
+ export SAXFR=${SAXFR:-$PDNS_MESON_PATH/saxfr}
+ export ZONE2SQL=${ZONE2SQL:-$PDNS_MESON_PATH/pdns-zone2sql}
+ export ZONE2JSON=${ZONE2JSON:-$PDNS_MESON_PATH/pdns-zone2json}
+ export ZONE2LDAP=${ZONE2LDAP:-$PDNS_MESON_PATH/pdns-zone2ldap}
+ export PDNSUTIL=${PDNSUTIL:-$PDNS_MESON_PATH/pdns-auth-util}
+ export PDNSCONTROL=${PDNSCONTROL:-$PDNS_MESON_PATH/pdns-auth-control}
+fi
unset _JAVA_OPTIONS
touch passed_tests failed_tests skipped_tests
-for a in $(find $testsdir -type d | grep -v ^.$ | grep -v .svn | grep -v ^confdir | LC_ALL=C sort)
+for a in $(find $testsdir -type d | grep -v ^.$ | grep -v .svn | grep -v ^confdir | LC_ALL=C sort)
do
if [ ! -x $a/command ]
then
echo "$testname: " >> test-results
cat $a/description >> test-results
-
+
SKIPIT=0
- if [ -e $a/skip ]
+ if [ -e $a/skip ]
then
SKIPIT=1
result=" Skipped test $a"
result=" Skipped test $a because it's not the specified single test"
fi
-
+
if [ $SKIPIT = 1 ]
then
echo $testname >> skipped_tests
done
[ -n "$context" ] && [ -e "$a/expected_result.$context" ] && expected=$a/expected_result.$context
diff ${diffopts} $expected $a/real_result > $a/diff 2>&1
- if [ -s $a/diff ]
+ if [ -s $a/diff ]
then
if [ $FAIL = 0 ]
then
failed=$[$failed+1]
fi
fi
- fi
+ fi
echo "$result"
echo
echo "$result" >> test-results
set -x
fi
-export PDNS=${PDNS:-${PWD}/../pdns/pdns_server}
-export PDNS2=${PDNS2:-${PWD}/../pdns/pdns_server}
-export PDNSRECURSOR=${PDNSRECURSOR:-${PWD}/../pdns/recursordist/pdns_recursor}
-export RECCONTROL=${RECCONTROL:-${PWD}/../pdns/recursordist/rec_control}
-export SDIG=${SDIG:-${PWD}/../pdns/sdig}
-export NOTIFY=${NOTIFY:-${PWD}/../pdns/pdns_notify}
-export NSEC3DIG=${NSEC3DIG:-${PWD}/../pdns/nsec3dig}
-export SAXFR=${SAXFR:-${PWD}/../pdns/saxfr}
-export ZONE2SQL=${ZONE2SQL:-${PWD}/../pdns/zone2sql}
-export ZONE2LDAP=${ZONE2LDAP:-${PWD}/../pdns/zone2ldap}
-export PDNSUTIL=${PDNSUTIL:-${PWD}/../pdns/pdnsutil}
-export PDNSCONTROL=${PDNSCONTROL:-${PWD}/../pdns/pdns_control}
+if [ -z "$PDNS_MESON_PATH" ]; then
+ # PDNS_MESON_PATH is unset or empty. Assume an autotools build.
+
+ export PDNS=${PDNS:-${PWD}/../pdns/pdns_server}
+ export PDNS2=${PDNS2:-${PWD}/../pdns/pdns_server}
+ export PDNSRECURSOR=${PDNSRECURSOR:-${PWD}/../pdns/recursordist/pdns_recursor}
+ export RECCONTROL=${RECCONTROL:-${PWD}/../pdns/recursordist/rec_control}
+ export SDIG=${SDIG:-${PWD}/../pdns/sdig}
+ export NOTIFY=${NOTIFY:-${PWD}/../pdns/pdns_notify}
+ export NSEC3DIG=${NSEC3DIG:-${PWD}/../pdns/nsec3dig}
+ export SAXFR=${SAXFR:-${PWD}/../pdns/saxfr}
+ export ZONE2SQL=${ZONE2SQL:-${PWD}/../pdns/zone2sql}
+ export ZONE2LDAP=${ZONE2LDAP:-${PWD}/../pdns/zone2ldap}
+ export ZONE2JSON=${ZONE2JSON:-${PWD}/../pdns/zone2json}
+ export PDNSUTIL=${PDNSUTIL:-${PWD}/../pdns/pdnsutil}
+ export PDNSCONTROL=${PDNSCONTROL:-${PWD}/../pdns/pdns_control}
+else
+ export PDNS=${PDNS:-$PDNS_MESON_PATH/pdns-auth}
+ export PDNS2=${PDNS2:-$PDNS_MESON_PATH/pdns-auth}
+ export PDNSRECURSOR=${PDNSRECURSOR:-$PDNS_MESON_PATH/pdns/recursordist/pdns_recursor}
+ export RECCONTROL=${RECCONTROL:-$PDNS_MESON_PATH/pdns/recursordist/rec_control}
+ export SDIG=${SDIG:-$PDNS_MESON_PATH/sdig}
+ export NOTIFY=${NOTIFY:-$PDNS_MESON_PATH/pdns-auth-notify}
+ export NSEC3DIG=${NSEC3DIG:-$PDNS_MESON_PATH/nsec3dig}
+ export SAXFR=${SAXFR:-$PDNS_MESON_PATH/saxfr}
+ export ZONE2SQL=${ZONE2SQL:-$PDNS_MESON_PATH/pdns-zone2sql}
+ export ZONE2JSON=${ZONE2JSON:-$PDNS_MESON_PATH/pdns-zone2json}
+ export ZONE2LDAP=${ZONE2LDAP:-$PDNS_MESON_PATH/pdns-zone2ldap}
+ export PDNSUTIL=${PDNSUTIL:-$PDNS_MESON_PATH/pdns-auth-util}
+ export PDNSCONTROL=${PDNSCONTROL:-$PDNS_MESON_PATH/pdns-auth-control}
+fi
+
export RESOLVERIP=${RESOLVERIP:-8.8.8.8}
export FIX_TESTS=${FIX_TESTS:-NO}
-
ALGORITHM=${ALGORITHM:="hmac-md5"}
KEY=${KEY:="kp4/24gyYsEzbuTVJRUMoqGFmN3LYgVDzJ/3oRSP7ys="}