summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2019-06-27 09:38:57 +0200
committerJeremy Allison <jra@samba.org>2019-07-01 23:21:07 +0000
commit6e65c283120e3e627f0d8570601263f904529996 (patch)
treedbfc54ff18c3022838f71f48ab5409e63772bc9d /source3
parent03690ec2180d10c6d0c01ed2d7392aa9f8d30c0b (diff)
downloadsamba-6e65c283120e3e627f0d8570601263f904529996.tar.gz
selftest: add a test that itime is not set when setting DOS attrs
Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Mon Jul 1 23:21:07 UTC 2019 on sn-devel-184
Diffstat (limited to 'source3')
-rwxr-xr-xsource3/script/tests/test_itime.sh39
-rwxr-xr-xsource3/selftest/tests.py2
2 files changed, 41 insertions, 0 deletions
diff --git a/source3/script/tests/test_itime.sh b/source3/script/tests/test_itime.sh
new file mode 100755
index 00000000000..c457da9906b
--- /dev/null
+++ b/source3/script/tests/test_itime.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# this tests immutable birthtime
+
+if [ $# != 6 ]; then
+cat <<EOF
+Usage: $0 SERVER USERNAME PASSWORD LOCAL_PATH SMBCLIENT SHARE
+EOF
+exit 1
+fi
+
+SERVER="$1"
+USERNAME="$2"
+PASSWORD="$3"
+LOCAL_PATH="$4"
+SMBCLIENT="$5"
+SHARE="$6"
+SAMBATOOL="$BINDIR/samba-tool"
+
+incdir=`dirname $0`/../../../testprogs/blackbox
+. $incdir/subunit.sh
+
+# Show that setting DOS attributes on a locally created file, therefore lacking
+# a DOS xattr and an itime, doesn't set an itime
+no_itime_on_local_file() {
+ fname="tmp.$$"
+ local_fname="$LOCAL_PATH/$fname"
+ touch $local_fname || return 1
+
+ $SMBCLIENT //$SERVER/$SHARE -U $USERNAME%$PASSWORD -c "setmode $fname +h" || return 1
+
+ dosinfo=$($SAMBATOOL ntacl getdosinfo $local_fname) || return 1
+ echo $dosinfo | grep -q "xattr_DosInfo4" || return 1
+ echo $dosinfo | grep -q "1: XATTR_DOSINFO_ATTRIB" || return 1
+ echo $dosinfo | grep -q "1: XATTR_DOSINFO_CREATE_TIME" || return 1
+ echo $dosinfo | grep -q "0: XATTR_DOSINFO_ITIME" || return 1
+}
+
+testit "no_itime_on_local_file" no_itime_on_local_file
diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py
index 5ef227732be..1394dc456b2 100755
--- a/source3/selftest/tests.py
+++ b/source3/selftest/tests.py
@@ -832,3 +832,5 @@ for env in ["ad_member_idmap_rid:local", "maptoguest:local"]:
plantestsuite("samba3.blackbox.guest (%s)" % env , env,
[os.path.join(samba3srcdir, "script/tests/test_guest_auth.sh"),
'$SERVER', smbclient3, smbcontrol, net, configuration])
+
+plantestsuite("samba3.blackbox.itime", "ad_dc", [os.path.join(samba3srcdir, "script/tests/test_itime.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, 'xattr'])