summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2012-01-27 15:20:17 +1100
committerJeremy Allison <jra@samba.org>2012-01-28 00:13:56 +0100
commit965b83158d12dc9fabe96471162c51529206d8e1 (patch)
tree8dcfa8880feb1f7f93b3363a590caf4de994c519
parent7d14f89e29ac96227aca9af5f3deba38182618ce (diff)
downloadsamba-965b83158d12dc9fabe96471162c51529206d8e1.tar.gz
samba-965b83158d12dc9fabe96471162c51529206d8e1.tar.bz2
samba-965b83158d12dc9fabe96471162c51529206d8e1.zip
s3-selftest: Add test for posix large reads and writes
This includes encrypted reads and writes, both NTLM and kerberos. Andrew Bartlett Signed-off-by: Jeremy Allison <jra@samba.org> Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Sat Jan 28 00:13:57 CET 2012 on sn-devel-104
-rwxr-xr-xselftest/target/Samba3.pm5
-rwxr-xr-xsource3/script/tests/test_smbclient_posix_large.sh62
-rwxr-xr-xsource3/selftest/tests.py25
3 files changed, 87 insertions, 5 deletions
diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm
index 211bbb6a89..10f673ffcf 100755
--- a/selftest/target/Samba3.pm
+++ b/selftest/target/Samba3.pm
@@ -485,6 +485,11 @@ $ret->{USERNAME} = KTEST\\Administrator
system("cp $self->{srcdir}/source3/selftest/ktest-krb5_ccache-3 $prefix/krb5_ccache-3");
chmod 0600, "$prefix/krb5_ccache-3";
+ # We need world access to this share, as otherwise the domain
+ # administrator from the AD domain provided by ktest can't
+ # access the share for tests.
+ chmod 0777, "$prefix/share";
+
$self->check_or_start($ret, "yes", "no", "yes");
if (not $self->wait_for_start($ret)) {
diff --git a/source3/script/tests/test_smbclient_posix_large.sh b/source3/script/tests/test_smbclient_posix_large.sh
new file mode 100755
index 0000000000..a5fdbba3ac
--- /dev/null
+++ b/source3/script/tests/test_smbclient_posix_large.sh
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+if [ $# -lt 1 ]; then
+cat <<EOF
+Usage: test_smbclient_posix_large.sh ccache smbclient3 server prefix <smbclient args>
+EOF
+exit 1;
+fi
+
+KRB5CCNAME=$1
+export KRB5CCNAME
+SMBCLIENT3=$2
+SERVER=$3
+PREFIX=$4
+shift 4
+ADDARGS="$*"
+
+# Test that a noninteractive smbclient does not prompt
+test_large_write_read()
+{
+
+ cat > $PREFIX/largefile-script <<EOF
+posix
+put $PREFIX/largefile largefile
+get largefile $PREFIX/largefile2
+rm largefile
+quit
+EOF
+
+ cmd='$SMBCLIENT3 //$SERVER/xcopy_share $ADDARGS < $PREFIX/largefile-script 2>&1'
+ eval echo "$cmd"
+ out=`eval $cmd`
+
+ if [ $? != 0 ] ; then
+ echo "$out"
+ echo "command failed"
+ false
+ return
+ fi
+
+ echo "$out" | grep "getting file" >/dev/null 2>&1
+
+ if [ $? = 0 ] ; then
+ true
+ else
+ echo did not get success message
+ false
+ fi
+}
+
+rm -f $PREFIX/largefile
+dd if=/dev/zero of=$PREFIX/largefile skip=20M count=1 bs=1
+
+incdir=`dirname $0`/../../../testprogs/blackbox
+. $incdir/subunit.sh
+
+testit "smbclient large posix write read" test_large_write_read || failed=`expr $failed + 1`
+
+testit "cmp of read and written files" cmp $PREFIX/largefile $PREFIX/largefile2 || failed=`expr $failed + 1`
+rm -f $PREFIX/largefile2
+
+testok $0 $failed
diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py
index 5d5f366019..6a3ccb9877 100755
--- a/source3/selftest/tests.py
+++ b/source3/selftest/tests.py
@@ -302,19 +302,34 @@ for s in signseal_options:
"$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
-if have_ads_support:
- options_list = ["", "-e"]
- for options in options_list:
+options_list = ["", "-e"]
+for options in options_list:
+ if have_ads_support:
plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
[os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
"$PREFIX/ktest/krb5_ccache-2",
binpath('smbclient3'), "$SERVER", options, configuration])
- plantestsuite("samba3.blackbox.smbclient_krb5 %s" % options, "ktest:local",
+ plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
[os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
- "$PREFIX/ktest/krb5_ccache-3",
+ "$PREFIX/ktest/krb5_ccache-2",
binpath('smbclient3'), "$SERVER", options, configuration])
+ plantestsuite("samba3.blackbox.smbclient_large_file %s" % options, "ktest:local",
+ [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
+ "$PREFIX/ktest/krb5_ccache-3",
+ binpath('smbclient3'), "$SERVER", "$PREFIX", options, "-k " + configuration])
+
+ plantestsuite("samba3.blackbox.smbclient_posix_large %s krb5" % options, "ktest:local",
+ [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
+ "$PREFIX/ktest/krb5_ccache-3",
+ binpath('smbclient3'), "$SERVER", "$PREFIX", options, "-k " + configuration])
+
+ plantestsuite("samba3.blackbox.smbclient_posix_large %s NTLM" % options, "s3dc:local",
+ [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
+ "none",
+ binpath('smbclient3'), "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
+
for e in endianness_options:
for a in auth_options:
for s in signseal_options: