]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3: tests: Add test that shows smbd crashes using vfs_fruit with fruit:resource ...
authorJeremy Allison <jra@samba.org>
Sat, 18 Jun 2022 00:49:43 +0000 (17:49 -0700)
committerNoel Power <npower@samba.org>
Mon, 20 Jun 2022 13:25:31 +0000 (13:25 +0000)
Add knownfail.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15099

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
selftest/knownfail.d/fruit_resource_stream [new file with mode: 0644]
selftest/target/Samba3.pm
source3/script/tests/test_fruit_resource_stream.sh [new file with mode: 0755]
source3/selftest/tests.py

diff --git a/selftest/knownfail.d/fruit_resource_stream b/selftest/knownfail.d/fruit_resource_stream
new file mode 100644 (file)
index 0000000..081edb9
--- /dev/null
@@ -0,0 +1 @@
+^samba3.blackbox.fruit.resource_stream.resource_stream\(fileserver\)
index 798796bc21fc01c0c4d42d7e6e7cfb1ce4ee83af..db8c55602da4074f465d3075f07c5b60a42c492c 100755 (executable)
@@ -2567,6 +2567,9 @@ sub provision($$)
        my $local_symlinks_shrdir="$shrdir/local_symlinks";
        push(@dirs,$local_symlinks_shrdir);
 
+       my $fruit_resource_stream_shrdir="$shrdir/fruit_resource_stream";
+       push(@dirs,$fruit_resource_stream_shrdir);
+
        # this gets autocreated by winbindd
        my $wbsockdir="$prefix_abs/wbsock";
 
@@ -3127,6 +3130,12 @@ sub provision($$)
        fruit:metadata = stream
        fruit:zero_file_id=yes
 
+[fruit_resource_stream]
+       path = $fruit_resource_stream_shrdir
+       vfs objects = fruit streams_xattr acl_xattr xattr_tdb
+       fruit:resource = stream
+       fruit:metadata = stream
+
 [badname-tmp]
        path = $badnames_shrdir
        guest ok = yes
diff --git a/source3/script/tests/test_fruit_resource_stream.sh b/source3/script/tests/test_fruit_resource_stream.sh
new file mode 100755 (executable)
index 0000000..7e99ea3
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+# this tests copying a file and then deleting it
+# to a share using fruit:resource = stream
+# BUG: https://bugzilla.samba.org/show_bug.cgi?id=15099
+
+if [ $# -lt 6 ]; then
+       cat <<EOF
+Usage: $0 SERVER SHARE USERNAME PASSWORD LOCAL_PATH SMBCLIENT
+EOF
+       exit 1
+fi
+
+SERVER="${1}"
+SHARE="${2}"
+USERNAME="${3}"
+PASSWORD="${4}"
+LOCAL_PATH="${5}"
+SMBCLIENT="${6}"
+SMBCLIENT="$VALGRIND ${SMBCLIENT}"
+
+incdir=$(dirname "$0")/../../../testprogs/blackbox
+. "$incdir/subunit.sh"
+
+failed=0
+
+put_then_delete_file()
+{
+       $SMBCLIENT //"$SERVER"/"$SHARE" -U"$USERNAME"%"$PASSWORD" -c "lcd $LOCAL_PATH; put src dst; rm dst" >/dev/null 2>&1
+}
+
+rm -f "$LOCAL_PATH/src"
+rm -f "$LOCAL_PATH/dst"
+touch "$LOCAL_PATH/src"
+
+testit "resource_stream" put_then_delete_file || failed=$((failed + 1))
+
+rm -f "$LOCAL_PATH/src"
+rm -f "$LOCAL_PATH/dst"
+
+testok "$0" "$failed"
index 2e62696cb82397c046f89d10f63408884378a80b..c53be8b471b33a8773ba67f9d1ac088fe6a09994 100755 (executable)
@@ -676,6 +676,10 @@ for env in ["fileserver"]:
     plantestsuite("samba3.blackbox.test_full_audit_fail_badname", env,
                   [os.path.join(samba3srcdir, "script/tests/test_bad_auditnames.sh"),
                   '$SERVER', 'full_audit_fail_bad_name', '$USERNAME', '$PASSWORD', smbclient3])
+    plantestsuite("samba3.blackbox.fruit.resource_stream", env,
+                  [os.path.join(samba3srcdir, "script/tests/test_fruit_resource_stream.sh"),
+                  '$SERVER', 'fruit_resource_stream', '$USERNAME', '$PASSWORD',
+                  '$LOCAL_PATH/fruit_resource_stream', smbclient3])
 
 for env in ["fileserver:local"]:
     plantestsuite("samba3.blackbox.net_usershare", env, [os.path.join(samba3srcdir, "script/tests/test_net_usershare.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient3])