diff options
author | Richard Sharpe <rsharpe@samba.org> | 2016-06-18 21:51:26 -0700 |
---|---|---|
committer | Ralph Boehme <slow@samba.org> | 2016-06-28 22:35:35 +0200 |
commit | ed4af82a4f1018884b534232ccfbe3fff8b7bdef (patch) | |
tree | 3e7d8885d2eccacee1db77a6ceebe473093d3699 /testprogs | |
parent | 4e20d2448e2d43f2bb36ea8a131c7677befed242 (diff) | |
download | samba-ed4af82a4f1018884b534232ccfbe3fff8b7bdef.tar.gz |
s4/selftests: test net ads dns register/unregister.
Add a new test for the net ads dns commands and the needed self test
setup. Currently tests that we can register a name and that it
turns up. Also, tests that we can register with -P.
Signed-off-by: Richard Sharpe <rsharpe@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Autobuild-User(master): Ralph Böhme <slow@samba.org>
Autobuild-Date(master): Tue Jun 28 22:35:35 CEST 2016 on sn-devel-144
Diffstat (limited to 'testprogs')
-rwxr-xr-x | testprogs/blackbox/test_net_ads_dns.sh | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/testprogs/blackbox/test_net_ads_dns.sh b/testprogs/blackbox/test_net_ads_dns.sh new file mode 100755 index 00000000000..41bc63da617 --- /dev/null +++ b/testprogs/blackbox/test_net_ads_dns.sh @@ -0,0 +1,81 @@ +#!/bin/sh +# Blackbox tests for net ads dns register etc. +# Copyright (C) 2006-2007 Jelmer Vernooij <jelmer@samba.org> +# Copyright (C) 2006-2008 Andrew Bartlett <abartlet@samba.org> + +if [ $# -lt 4 ]; then +cat <<EOF +Usage: test_net_ads_dns.sh SERVER DC_USERNAME DC_PASSWORD REALM USER PASS +EOF +exit 1; +fi + +SERVER=$1 +DC_USERNAME=$2 +DC_PASSWORD=$3 +REALM=$4 +USERNAME=$5 +PASSWORD=$6 +shift 6 +failed=0 + +samba4bindir="$BINDIR" +samba4kinit=kinit +if test -x $BINDIR/samba4kinit; then + samba4kinit=$BINDIR/samba4kinit +fi + +samba_tool="$samba4bindir/samba-tool" +net_tool="$samba4bindir/net" +smbpasswd="$samba4bindir/smbpasswd" +texpect="$samba4bindir/texpect" +samba4kpasswd=kpasswd +if test -x $BINDIR/samba4kpasswd; then + samba4kpasswd=$BINDIR/samba4kpasswd +fi + +newuser="$samba_tool user create" +groupaddmem="$samba_tool group addmembers" + +. `dirname $0`/subunit.sh + +UID_WRAPPER_ROOT=1 +export UID_WRAPPER_ROOT + +IPADDRESS=10.1.4.111 +IPADDRMAC=10.1.4.124 +NAME=testname + +# These tests check that privileged users can add DNS names and that +# unprivileged users cannot do so. +echo "Starting ..." + +testit "admin user should be able to add a DNS entry $NAME.$REALM $IPADDRESS" $VALGRIND $net_tool ads dns register $NAME.$REALM $IPADDRESS -U$DC_USERNAME%$DC_PASSWORD || failed=`expr $failed + 1` + +# The complicated pipeline is to ensure that we remove exclamation points +# and spaces from the output. Thew will screw up the comparison syntax. +testit "We should be able to see the new name $NAME.$REALM" [ X"`$VALGRIND $net_tool ads dns gethostbyname $SERVER $NAME.$REALM -U$DC_USERNAME%$DC_PASSWORD | tr \! N | tr " " B`" = X"$IPADDRESS" ] || failed=`expr $failed + 1` + +testit "We should be able to unregister the name $NAME.$REALM $IPADDRESS" $VALGRIND $net_tool ads dns unregister $NAME.$REALM -U$DC_USERNAME%$DC_PASSWORD || failed=`expr $failed + 1` + +# The complicated pipeline is to ensure that we remove exclamation points +# and spaces from the output. Thew will screw up the comparison syntax. +testit "The name $NAME.$REALM should not be there any longer" test X"`$net_tool ads dns gethostbyname $SERVER $NAME.$REALM -U$DC_USERNAME%$DC_PASSWORD | tr " " B | tr \! N`" != X"$IPADDRESS" || failed=`expr $failed + 1` + +# This should be an expect_failure test ... +# testit "unprivileged users should not be able to add a DNS entry" $VALGRIND $net_tool ads dns register funnyname2.$REALM 10.1.4.112 -U$USERNAME%$PASSWORD && failed=`expr $failed + 1` + +# This should work as well +testit "machine account should be able to add a DNS entry net ads dns register membername.$REALM $IPADDRMAC -P " $net_tool ads dns register membername.$REALM $IPADDRMAC -P || failed=`expr $failed + 1` + +# The complicated pipeline is to ensure that we remove exclamation points +# and spaces from the output. Thew will screw up the comparison syntax. +testit "We should be able to see the new name membername.$REALM using -P" [ X"`$VALGRIND $net_tool ads dns gethostbyname $SERVER membername.$REALM -P | tr \! N | tr " " B`" = X"$IPADDRMAC" ] || failed=`expr $failed + 1` + +testit "We should be able to unregister the name $NAME.$REALM $IPADDRESS" $VALGRIND $net_tool ads dns unregister $NAME.$REALM -P || failed=`expr $failed + 1` + +# The complicated pipeline is to ensure that we remove exclamation points +# and spaces from the output. Thew will screw up the comparison syntax. +testit "The name $NAME.$REALM should not be there any longer" test X"`$net_tool ads dns gethostbyname $SERVER $NAME.$REALM -P | tr " " B | tr \! N`" != X"$IPADDRESS" || failed=`expr $failed + 1` + +exit $failed |