From 7836c2d101944edfcc2ccc2ff0d7403ca625aed1 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 16 Apr 2007 10:44:26 +0000 Subject: r22260: Use single script for creating Samba 4 test environments. Add first test that uses the member environment. (This used to be commit 9e3142a1bb3f3b3e06ea1a54215474d88de4d44d) --- source4/script/tests/Samba4.pm | 7 +- source4/script/tests/mksamba4server.sh | 301 +++++++++++++++++++++++++++++++++ source4/script/tests/mktestdc.sh | 298 -------------------------------- source4/script/tests/mktestmember.sh | 85 ---------- source4/script/tests/test_member.sh | 6 +- source4/script/tests/tests_all.sh | 1 + 6 files changed, 308 insertions(+), 390 deletions(-) create mode 100755 source4/script/tests/mksamba4server.sh delete mode 100755 source4/script/tests/mktestdc.sh delete mode 100644 source4/script/tests/mktestmember.sh diff --git a/source4/script/tests/Samba4.pm b/source4/script/tests/Samba4.pm index b891b4dc7b..cabc952fc3 100644 --- a/source4/script/tests/Samba4.pm +++ b/source4/script/tests/Samba4.pm @@ -140,15 +140,18 @@ sub provision_member($$$) my ($self, $prefix, $dcvars) = @_; my %ret = (); print "PROVISIONING..."; - open(IN, "$RealBin/mktestmember.sh $prefix $dcvars->{DOMAIN} $dcvars->{USERNAME} $dcvars->{PASSWORD}|") or die("Unable to setup"); + open(IN, "SERVER_ROLE=\"member server\" $RealBin/mksamba4server.sh $prefix|") or die("Unable to setup"); while () { die ("Error parsing `$_'") unless (/^([A-Z0-9a-z_]+)=(.*)$/); $ret{$1} = $2; } close(IN); + system("$self->{bindir}/net join $ret{CONFIGURATION} $dcvars->{DOMAIN} member -U$dcvars->{USERNAME}\%$dcvars->{PASSWORD}") or die("Join failed"); + $ret{SMBD_TEST_FIFO} = "$prefix/smbd_test.fifo"; $ret{SMBD_TEST_LOG} = "$prefix/smbd_test.log"; + print "$ret{DOMAIN}\n"; return \%ret; } @@ -157,7 +160,7 @@ sub provision_dc($$) my ($self, $prefix) = @_; my %ret = (); print "PROVISIONING..."; - open(IN, "$RealBin/mktestdc.sh $prefix|") or die("Unable to setup"); + open(IN, "$RealBin/mksamba4server.sh $prefix|") or die("Unable to setup"); while () { die ("Error parsing `$_'") unless (/^([A-Z0-9a-z_]+)=(.*)$/); $ret{$1} = $2; diff --git a/source4/script/tests/mksamba4server.sh b/source4/script/tests/mksamba4server.sh new file mode 100755 index 0000000000..f59d8c216c --- /dev/null +++ b/source4/script/tests/mksamba4server.sh @@ -0,0 +1,301 @@ +#!/bin/sh +# Build a test environment for running Samba + +if [ $# -lt 1 ] +then + echo "$0 PREFIX" + exit 1 +fi + +PREFIX=$1 + +if test -z "$SHARE_BACKEND"; then + SHARE_BACKEND=classic +fi + +if test -z "$SMBD_LOGLEVEL"; then + SMBD_LOGLEVEL=1 +fi + +if test -z "$SERVER_ROLE"; then + SERVER_ROLE="domain controller" +fi + +DOMAIN=SAMBADOMAIN +USERNAME=administrator +REALM=SAMBA.EXAMPLE.COM +DNSNAME="samba.example.com" +BASEDN="dc=samba,dc=example,dc=com" +PASSWORD=penguin +SRCDIR=`pwd` +ROOT=$USER +SERVER=localhost +NETBIOSNAME=localtest +if test -z "$ROOT"; then + ROOT=$LOGNAME +fi +if test -z "$ROOT"; then + ROOT=`whoami` +fi + +oldpwd=`pwd` +srcdir=`dirname $0`/../.. +mkdir -p $PREFIX || exit $? +cd $PREFIX +PREFIX_ABS=`pwd` +cd $oldpwd + +TMPDIR=$PREFIX_ABS/tmp +ETCDIR=$PREFIX_ABS/etc +PIDDIR=$PREFIX_ABS/pid +CONFFILE=$ETCDIR/smb.conf +KRB5_CONFIG=$ETCDIR/krb5.conf +PRIVATEDIR=$PREFIX_ABS/private +NCALRPCDIR=$PREFIX_ABS/ncalrpc +LOCKDIR=$PREFIX_ABS/lockdir + +WINBINDD_SOCKET_DIR=$PREFIX_ABS/winbind_socket +CONFIGURATION="--configfile=$CONFFILE" +LDAPDIR=$PREFIX_ABS/ldap + +rm -rf $PREFIX/* +mkdir -p $PRIVATEDIR $ETCDIR $PIDDIR $NCALRPCDIR $LOCKDIR $TMPDIR $LDAPDIR/db $LDAPDIR/db/bdb-logs $LDAPDIR/db/tmp + +cat >$CONFFILE<$PRIVATEDIR/share.ldif</dev/null || exit 1 + +. `dirname $0`/mk-keyblobs.sh + +cat >$KRB5_CONFIG</dev/null 2>&1 || { + echo "">&2 + echo "Failed to create configuration!" >&2 + $srcdir/bin/testparm $CONFIGURATION >&2 + exit 1 +} + +( $srcdir/bin/testparm $CONFIGURATION -v --suppress-prompt --parameter-name="netbios name" --section-name=global 2> /dev/null | grep -i ^$NETBIOSNAME ) >/dev/null 2>&1 || { + echo "$?" >&2 + $srcdir/bin/testparm $CONFIGURATION -v --suppress-prompt --parameter-name="netbios name" --section-name=global --suppress-prompt 2> /dev/null | grep -i ^$NETBIOSNAME >&2 + echo "Failed to create configuration!" >&2 + exit 1 +} + +PROVISION_OPTIONS="$CONFIGURATION --host-name=$NETBIOSNAME --host-ip=127.0.0.1" +PROVISION_OPTIONS="$PROVISION_OPTIONS --quiet --domain $DOMAIN --realm $REALM" +PROVISION_OPTIONS="$PROVISION_OPTIONS --adminpass $PASSWORD --root=$ROOT" +PROVISION_OPTIONS="$PROVISION_OPTIONS --simple-bind-dn=cn=Manager,$BASEDN --password=$PASSWORD --root=$ROOT" +$srcdir/bin/smbscript $srcdir/setup/provision $PROVISION_OPTIONS >&2 + +LDAP_URI="ldapi://"`echo $LDAPDIR/ldapi | sed 's|/|%2F|g'` + +. `dirname $0`/mk-openldap.sh + +test -z "$FEDORA_DS_PREFIX" || { + . `dirname $0`/mk-fedora-ds.sh +} + +cat >$PRIVATEDIR/wins_config.ldif</dev/null || exit 1 + +echo "KRB5_CONFIG=$KRB5_CONFIG" +echo "PREFIX_ABS=$PREFIX_ABS" +echo "SLAPD_CONF=$SLAPD_CONF" +echo "PIDDIR=$PIDDIR" +echo "SERVER=$SERVER" +echo "NETBIOSNAME=$NETBIOSNAME" +echo "LDAP_URI=$LDAP_URI" +echo "DOMAIN=$DOMAIN" +echo "USERNAME=$USERNAME" +echo "REALM=$REALM" +echo "DNSNAME=$DNSNAME" +echo "BASEDN=$BASEDN" +echo "PASSWORD=$PASSWORD" +echo "SRCDIR=$SRCDIR" +echo "PREFIX=$PREFIX" +echo "LDAPDIR=$LDAPDIR" +echo "CONFFILE=$CONFFILE" +echo "PROVISION_OPTIONS=$PROVISION_OPTIONS" +echo "PROVISION_ACI=$PROVISION_ACI" +echo "WINBINDD_SOCKET_DIR=$WINBINDD_SOCKET_DIR" +echo "NCALRPCDIR=$NCALRPCDIR" +echo "CONFIGURATION=$CONFIGURATION" diff --git a/source4/script/tests/mktestdc.sh b/source4/script/tests/mktestdc.sh deleted file mode 100755 index 4b92fe3a3c..0000000000 --- a/source4/script/tests/mktestdc.sh +++ /dev/null @@ -1,298 +0,0 @@ -#!/bin/sh -# Build a test environment for running Samba - -if [ $# -lt 1 ] -then - echo "$0 PREFIX" - exit 1 -fi - -PREFIX=$1 - -if test -z "$SHARE_BACKEND"; then - SHARE_BACKEND=classic -fi - -if test -z "$SMBD_LOGLEVEL"; then - SMBD_LOGLEVEL=1 -fi - -SERVER_ROLE="domain controller" -DOMAIN=SAMBADOMAIN -USERNAME=administrator -REALM=SAMBA.EXAMPLE.COM -DNSNAME="samba.example.com" -BASEDN="dc=samba,dc=example,dc=com" -PASSWORD=penguin -SRCDIR=`pwd` -ROOT=$USER -SERVER=localhost -NETBIOSNAME=localtest -if test -z "$ROOT"; then - ROOT=$LOGNAME -fi -if test -z "$ROOT"; then - ROOT=`whoami` -fi - -oldpwd=`pwd` -srcdir=`dirname $0`/../.. -mkdir -p $PREFIX || exit $? -cd $PREFIX -PREFIX_ABS=`pwd` -cd $oldpwd - -TMPDIR=$PREFIX_ABS/tmp -ETCDIR=$PREFIX_ABS/etc -PIDDIR=$PREFIX_ABS/pid -CONFFILE=$ETCDIR/smb.conf -KRB5_CONFIG=$ETCDIR/krb5.conf -PRIVATEDIR=$PREFIX_ABS/private -NCALRPCDIR=$PREFIX_ABS/ncalrpc -LOCKDIR=$PREFIX_ABS/lockdir - -WINBINDD_SOCKET_DIR=$PREFIX_ABS/winbind_socket -CONFIGURATION="--configfile=$CONFFILE" -LDAPDIR=$PREFIX_ABS/ldap - -rm -rf $PREFIX/* -mkdir -p $PRIVATEDIR $ETCDIR $PIDDIR $NCALRPCDIR $LOCKDIR $TMPDIR $LDAPDIR/db $LDAPDIR/db/bdb-logs $LDAPDIR/db/tmp - -cat >$CONFFILE<$PRIVATEDIR/share.ldif</dev/null || exit 1 - -. `dirname $0`/mk-keyblobs.sh - -cat >$KRB5_CONFIG</dev/null 2>&1 || { - echo "">&2 - echo "Failed to create configuration!" >&2 - $srcdir/bin/testparm $CONFIGURATION >&2 - exit 1 -} - -( $srcdir/bin/testparm $CONFIGURATION -v --suppress-prompt --parameter-name="netbios name" --section-name=global 2> /dev/null | grep -i ^$NETBIOSNAME ) >/dev/null 2>&1 || { - echo "$?" >&2 - $srcdir/bin/testparm $CONFIGURATION -v --suppress-prompt --parameter-name="netbios name" --section-name=global --suppress-prompt 2> /dev/null | grep -i ^$NETBIOSNAME >&2 - echo "Failed to create configuration!" >&2 - exit 1 -} - -PROVISION_OPTIONS="$CONFIGURATION --host-name=$NETBIOSNAME --host-ip=127.0.0.1" -PROVISION_OPTIONS="$PROVISION_OPTIONS --quiet --domain $DOMAIN --realm $REALM" -PROVISION_OPTIONS="$PROVISION_OPTIONS --adminpass $PASSWORD --root=$ROOT" -PROVISION_OPTIONS="$PROVISION_OPTIONS --simple-bind-dn=cn=Manager,$BASEDN --password=$PASSWORD --root=$ROOT" -$srcdir/bin/smbscript $srcdir/setup/provision $PROVISION_OPTIONS >&2 - -LDAP_URI="ldapi://"`echo $LDAPDIR/ldapi | sed 's|/|%2F|g'` - -. `dirname $0`/mk-openldap.sh - -test -z "$FEDORA_DS_PREFIX" || { - . `dirname $0`/mk-fedora-ds.sh -} - -cat >$PRIVATEDIR/wins_config.ldif</dev/null || exit 1 - -echo "KRB5_CONFIG=$KRB5_CONFIG" -echo "PREFIX_ABS=$PREFIX_ABS" -echo "SLAPD_CONF=$SLAPD_CONF" -echo "PIDDIR=$PIDDIR" -echo "SERVER=$SERVER" -echo "NETBIOSNAME=$NETBIOSNAME" -echo "LDAP_URI=$LDAP_URI" -echo "DOMAIN=$DOMAIN" -echo "USERNAME=$USERNAME" -echo "REALM=$REALM" -echo "DNSNAME=$DNSNAME" -echo "BASEDN=$BASEDN" -echo "PASSWORD=$PASSWORD" -echo "SRCDIR=$SRCDIR" -echo "PREFIX=$PREFIX" -echo "LDAPDIR=$LDAPDIR" -echo "CONFFILE=$CONFFILE" -echo "PROVISION_OPTIONS=$PROVISION_OPTIONS" -echo "PROVISION_ACI=$PROVISION_ACI" -echo "WINBINDD_SOCKET_DIR=$WINBINDD_SOCKET_DIR" -echo "NCALRPCDIR=$NCALRPCDIR" -echo "CONFIGURATION=$CONFIGURATION" diff --git a/source4/script/tests/mktestmember.sh b/source4/script/tests/mktestmember.sh deleted file mode 100644 index b2d35d7204..0000000000 --- a/source4/script/tests/mktestmember.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/sh - -if [ $# -lt 4 ] -then - echo "$0 PREFIX DOMAIN USERNAME PASSWORD" - exit 1 -fi - -PREFIX=$1 -DOMAIN=$2 -DC_USERNAME=$3 -DC_PASSWORD=$4 -shift 4 -USERNAME=administrator -PASSWORD=humbolt - -SRCDIR=`pwd` -oldpwd=`dirname $0`/../.. -mkdir -p $PREFIX -cd $PREFIX -PREFIX_ABS=`pwd` -ETCDIR=$PREFIX_ABS/etc -NCALRPCDIR=$PREFIX_ABS/ncalrpc -PIDDIR=$PREFIX_ABS/pid -PRIVATEDIR=$PREFIX_ABS/private -LOCKDIR=$PREFIX_ABS/lockdir -WINBINDD_SOCKET_DIR=$PREFIX_ABS/winbind_socket -CONFFILE=$ETCDIR/smb.conf -TMPDIR=$PREFIX_ABS/tmp -NETBIOSNAME=localmember -SMBD_LOGLEVEL=1 - -mkdir -p $PRIVATEDIR $ETCDIR $PIDDIR $NCALRPCDIR $LOCKDIR $TMPDIR - -cat >$CONFFILE<&2 - -$srcdir/bin/net join member $DOMAIN -U$DC_USERNAME%$DC_PASSWORD >&2 || { - echo "Join failed" - exit $? -} - -echo "PREFIX_ABS=$PREFIX_ABS" -echo "PIDDIR=$PIDDIR" -echo "SERVER=$SERVER" -echo "NETBIOSNAME=$NETBIOSNAME" -echo "DOMAIN=$DOMAIN" -echo "USERNAME=$USERNAME" -echo "REALM=$REALM" -echo "PASSWORD=$PASSWORD" -echo "SRCDIR=$SRCDIR" -echo "PREFIX=$PREFIX" -echo "CONFFILE=$CONFFILE" -echo "WINBINDD_SOCKET_DIR=$WINBINDD_SOCKET_DIR" -echo "NCALRPCDIR=$NCALRPCDIR" -echo "CONFIGURATION=$CONFIGURATION" diff --git a/source4/script/tests/test_member.sh b/source4/script/tests/test_member.sh index 798da60929..b1bb0c7b09 100755 --- a/source4/script/tests/test_member.sh +++ b/source4/script/tests/test_member.sh @@ -1,10 +1,6 @@ #!/bin/sh -# add tests to this list as they start passing, so we test -# that they stay passing -ncacn_np_tests="RPC-ECHO" - incdir=`dirname $0` . $incdir/test_functions.sh -plantest "RPC-ECHO against member server" member $VALGRIND bin/smbtorture $TORTURE_OPTIONS ncacn_np:"\$SERVER" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*" +plantest "RPC-ECHO against member server" member $VALGRIND bin/smbtorture $TORTURE_OPTIONS ncacn_np:"\$SERVER" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN RPC-ECHO "$*" diff --git a/source4/script/tests/tests_all.sh b/source4/script/tests/tests_all.sh index 68ec5ba224..45366186b5 100755 --- a/source4/script/tests/tests_all.sh +++ b/source4/script/tests/tests_all.sh @@ -14,3 +14,4 @@ $SRCDIR/script/tests/test_blackbox.sh $PREFIX $SRCDIR/script/tests/test_simple.sh $SRCDIR/script/tests/test_s3upgrade.sh $PREFIX/upgrade + $SRCDIR/script/tests/test_member.sh -- cgit