-case $context in
+plusvariant=''
+plusrootvariant=''
+_context=${context%-variant}
+if [ $context != $_context ]
+then
+ plusvariant='..variant'
+ plusrootvariant='.variant'
+ skipreasons="$skipreasons variant"
+fi
+
+case $_context in
lmdb | lmdb-nodnssec | lmdb-nsec3 | lmdb-nsec3-optout | lmdb-nsec3-narrow)
backend=lmdb
cat > pdns-lmdb.conf << __EOF__
for zone in $(grep 'zone ' named.conf | cut -f2 -d\" | grep -v '^nztest.com$')
do
if [ "$zone" = "." ]; then
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb load-zone $zone zones/ROOT
+ zonewithvariant=$zone$plusrootvariant # prevent extra dot!
+ zonefile=zones/ROOT
else
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb load-zone $zone zones/$zone
+ zonewithvariant=$zone$plusvariant
+ zonefile=zones/$zone
fi
- if [ $context != lmdb-nodnssec ]
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb load-zone $zonewithvariant $zonefile
+
+ [ -n "$plusvariant" ] && $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb view-add-zone variant-view $zonewithvariant
+
+ if [ $_context != lmdb-nodnssec ]
then
if [ $zone != insecure.dnssec-parent.com ]
then
- if [ $context = lmdb-nsec3 ]
+ if [ $_context = lmdb-nsec3 ]
then
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-nsec3 $zone "1 0 1 abcd" 2>&1
- elif [ $context = lmdb-nsec3-optout ]
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-nsec3 $zonewithvariant "1 0 1 abcd" 2>&1
+ elif [ $_context = lmdb-nsec3-optout ]
then
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-nsec3 $zone "1 1 1 abcd" 2>&1
- elif [ $context = lmdb-nsec3-narrow ]
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-nsec3 $zonewithvariant "1 1 1 abcd" 2>&1
+ elif [ $_context = lmdb-nsec3-narrow ]
then
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-nsec3 $zone '1 1 1 abcd' narrow 2>&1
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-nsec3 $zonewithvariant '1 1 1 abcd' narrow 2>&1
fi
- securezone $zone lmdb
+ securezone $zonewithvariant lmdb
if [ $zone = hiddencryptokeys.org ]
then
- keyid=$($RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb list-keys $zone | grep hiddencryptokeys.org | awk '{ print $7 }')
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb unpublish-zone-key $zone $keyid
+ keyid=$($RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb list-keys $zonewithvariant | grep hiddencryptokeys.org | awk '{ print $7 }')
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb unpublish-zone-key $zonewithvariant $keyid
fi
if [ $zone = cryptokeys.org ]
then
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb add-zone-key $zone zsk 384 active unpublished ecdsa384
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb add-zone-key $zone zsk 2048 inactive published rsasha512
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb add-zone-key $zone zsk 2048 inactive unpublished rsasha256
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb add-zone-key $zonewithvariant zsk 384 active unpublished ecdsa384
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb add-zone-key $zonewithvariant zsk 2048 inactive published rsasha512
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb add-zone-key $zonewithvariant zsk 2048 inactive unpublished rsasha256
fi
fi
else
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb rectify-zone $zone 2>&1
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb rectify-zone $zonewithvariant 2>&1
fi
if [ "$zone" = "tsig.com" ]; then
$RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb import-tsig-key test $ALGORITHM $KEY
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb activate-tsig-key tsig.com test primary
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb activate-tsig-key tsig.com$plusvariant test primary
fi
done
# setup catalog zone
- if ! $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb list-all-zones | grep '^.$' # detect root tests
+ if ! $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb list-all-zones | grep '^\.' # detect root tests
then
for zone in $(grep 'zone ' named.conf | cut -f2 -d\" | grep -v '^nztest.com$')
do
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-kind $zone master
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-catalog $zone catalog.invalid
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-kind $zone$plusvariant master
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-catalog $zone$plusvariant catalog.invalid$plusvariant
done
$RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb load-zone catalog.invalid zones/catalog.invalid
$RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-kind catalog.invalid producer
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-options-json test.com '{"producer":{"coo":"other-catalog.invalid","unique":"123"}}'
- $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-options-json tsig.com '{"producer":{"group":["pdns-group-x","pdns-group-y"]}}'
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-options-json test.com$plusvariant '{"producer":{"coo":"other-catalog.invalid","unique":"123"}}'
+ $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb set-options-json tsig.com$plusvariant '{"producer":{"group":["pdns-group-x","pdns-group-y"]}}'
fi
+ [ -n "$plusvariant" ] && $RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb network-set 0.0.0.0/0 variant-view
+
for variant in foo bar
do
$RUNWRAPPER_PDNSUTIL $PDNSUTIL --config-dir=. --config-name=lmdb create-zone example.com..$variant
--cache-ttl=$cachettl --dname-processing $lua_prequery &
extracontexts="lmdb"
- skipreasons="lmdb nodyndns"
+ skipreasons="$skipreasons lmdb nodyndns"
- if [ $context = lmdb-nsec3 ]
+ if [ $_context = lmdb-nsec3 ]
then
extracontexts="$extracontexts dnssec nsec3"
skipreasons="$skipreasons nsec3"
- elif [ $context = lmdb-nsec3-optout ]
+ elif [ $_context = lmdb-nsec3-optout ]
then
extracontexts="$extracontexts dnssec nsec3 nsec3-optout"
skipreasons="$skipreasons optout"
- elif [ $context = lmdb-nsec3-narrow ]
+ elif [ $_context = lmdb-nsec3-narrow ]
then
extracontexts="$extracontexts dnssec narrow"
skipreasons="$skipreasons narrow"
- elif [ $context = lmdb-nodnssec ]
+ elif [ $_context = lmdb-nodnssec ]
then
skipreasons="$skipreasons nodnssec"
else
Usage: ./start-test-stop <port> [<context>] [wait|nowait] [<cachettl>] [<specifictest>]
context is one of:
-bind bind-dnssec bind-dnssec-nsec3 bind-dnssec-nsec3-optout bind-dnssec-nsec3-narrow
+bind bind-dnssec bind-dnssec-nsec3 bind-dnssec-nsec3-optout bind-dnssec-nsec3-narrow bind-dnssec-pkcs11
geoip geoip-nsec3-narrow
gmysql-nodnssec gmysql gmysql-nsec3 gmysql-nsec3-optout gmysql-nsec3-narrow gmysql_sp
godbc_mssql-nodnssec godbc_mssql godbc_mssql-nsec3 godbc_mssql-nsec3-optout godbc_mssql-nsec3-narrow
godbc_sqlite3-nodnssec godbc_sqlite3 godbc_sqlite3-nsec3 godbc_sqlite3-nsec3-optout godbc_sqlite3-narrow
gpgsql-nodnssec gpgsql gpgsql-nsec3 gpgsql-nsec3-optout gpgsql-nsec3-narrow gpgsql_sp
gsqlite3-nodnssec gsqlite3 gsqlite3-nsec3 gsqlite3-nsec3-optout gsqlite3-nsec3-narrow
-lmdb-nodnssec lmdb
+lmdb-nodnssec lmdb lmdb-nsec3 lmdb-nsec3-optout lmdb-nsec3-narrow
+lmdb-nodnssec-variant lmdb-variant lmdb-nsec3-variant lmdb-nsec3-optout-variant lmdb-nsec3-narrow-variant
remotebackend-pipe remotebackend-unix remotebackend-http remotebackend-zeromq
remotebackend-pipe-dnssec remotebackend-unix-dnssec remotebackend-http-dnssec remotebackend-zeromq-dnssec
#remotebackend-pipe-nsec3 remotebackend-unix-nsec3 remotebackend-http-nsec3
fi
if [ "${zone: 0:16}" = "secure-delegated" ]
then
- $PDNSUTIL --config-dir=. $configname import-zone-key $zone $zone.private ksk 2>&1
+ $PDNSUTIL --config-dir=. $configname import-zone-key $zone ${zone%..*}.private ksk 2>&1
$PDNSUTIL --config-dir=. $configname add-zone-key $zone rsasha256 1024 zsk active 2>&1
$PDNSUTIL --config-dir=. $configname rectify-zone $zone 2>&1
$PDNSUTIL --config-dir=. $configname set-publish-cds $zone 2>&1
$PDNSUTIL --config-dir=. $configname set-publish-cds $zone 2>&1
$PDNSUTIL --config-dir=. $configname set-publish-cdnskey $zone 2>&1
fi
- if [ "$zone" = "dnssec-parent.com" ]; then
+ if [ "${zone%..*}" = "dnssec-parent.com" ]; then
$PDNSUTIL --config-dir=. $configname set-publish-cds $zone 0 2>&1
$PDNSUTIL --config-dir=. $configname set-publish-cdnskey $zone delete 2>&1
fi
sleep 1
done
- kill -9 $pids
+ if [ $done -eq 0 ]
+ then
+ kill -9 $pids
+ fi
fi
rm pdns*.pid