From 450ac189c88bfa43e0a15ac4d81a5192e59c5ec4 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 23 Nov 2018 14:36:56 +0100 Subject: s3:selftest: add a VSS test reading a stream Bug: https://bugzilla.samba.org/show_bug.cgi?id=13455 Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison (cherry picked from commit cfffa2e2428b42db65a4ece00602e0cef8ceb5a3) --- selftest/knownfail.d/samba3.blackbox | 1 + selftest/target/Samba3.pm | 2 +- source3/script/tests/test_shadow_copy_torture.sh | 38 +++++++++++ source4/torture/smb2/create.c | 87 ++++++++++++++++++++++++ 4 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 selftest/knownfail.d/samba3.blackbox diff --git a/selftest/knownfail.d/samba3.blackbox b/selftest/knownfail.d/samba3.blackbox new file mode 100644 index 00000000000..a15359e6420 --- /dev/null +++ b/selftest/knownfail.d/samba3.blackbox @@ -0,0 +1 @@ +^samba3.blackbox.shadow_copy_torture.reading stream of a shadow copy of a file\(fileserver\) diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 02060f1e0f6..e30d1a4c7c8 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -2162,7 +2162,7 @@ sub provision($$$$$$$$$) [shadow_write] path = $shadow_tstdir comment = previous versions snapshots under mount point - vfs objects = shadow_copy2 error_inject + vfs objects = shadow_copy2 streams_xattr error_inject aio write size = 0 error_inject:pwrite = EBADF shadow:mountpoint = $shadow_tstdir diff --git a/source3/script/tests/test_shadow_copy_torture.sh b/source3/script/tests/test_shadow_copy_torture.sh index d47cd512a20..3b05fc50f72 100755 --- a/source3/script/tests/test_shadow_copy_torture.sh +++ b/source3/script/tests/test_shadow_copy_torture.sh @@ -48,6 +48,13 @@ build_snapshots() build_files $snapdir/$SNAPSHOT } +build_stream_on_snapshot() +{ + file=$WORKDIR/.snapshots/$SNAPSHOT/foo + + setfattr -n 'user.DosStream.bar:$DATA' -v baz $file || return 1 +} + test_shadow_copy_write() { local msg @@ -68,9 +75,40 @@ test_shadow_copy_write() failed=`expr $failed + 1` } +test_shadow_copy_stream() +{ + local msg + + msg=$1 + + #delete snapshots from previous tests + find $WORKDIR -name ".snapshots" -exec rm -rf {} \; 1>/dev/null 2>&1 + build_snapshots + build_stream_on_snapshot || { + subunit_start_test msg + subunit_skip_test msg <description = talloc_strdup(suite, "SMB2-TWRP tests"); -- cgit v1.2.1