]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
tests: expand SMB3 POSIX test for Windows illegal characters behaviour
authorRalph Boehme <slow@samba.org>
Sun, 25 May 2025 13:15:27 +0000 (15:15 +0200)
committerJeremy Allison <jra@samba.org>
Mon, 7 Jul 2025 16:47:35 +0000 (16:47 +0000)
The test was testing file creation, but not FIND behaviour.

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

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
python/samba/tests/smb3unix.py
selftest/knownfail.d/samba.tests.smb3unix [new file with mode: 0644]

index 5c8ab182061147263f826f6315fa30ca034b2090..289bc5ac5b4f6f117b6d98439ab6774f581d2ee2 100644 (file)
@@ -182,13 +182,30 @@ class Smb3UnixTests(samba.tests.libsmb.LibsmbTests):
                 wire_mode = libsmb.unix_mode_to_wire(0o744)
                 f,_,cc_out = c.create_ex('\\%s' % fname,
                                 CreateDisposition=libsmb.FILE_CREATE,
-                                DesiredAccess=security.SEC_STD_DELETE,
+                                DesiredAccess=security.SEC_FILE_READ_ATTRIBUTE,
                                 CreateContexts=[posix_context(wire_mode)])
             except NTSTATUSError as e:
                 self.fail(e)
-            c.delete_on_close(f, True)
             c.close(f)
 
+        try:
+            res = c.list('', info_level=libsmb.SMB2_FIND_POSIX_INFORMATION)
+            found_files = {get_string(i['name']): i for i in res}
+            for fname in test_files:
+                self.assertTrue(fname in found_files)
+        except NTSTATUSError as e:
+            self.fail(e)
+        finally:
+            wire_mode = libsmb.unix_mode_to_wire(0o600)
+            for fname in test_files:
+                f,_,_ = c.create_ex('\\%s' % fname,
+                                CreateDisposition=libsmb.FILE_OPEN,
+                                DesiredAccess=security.SEC_STD_DELETE,
+                                CreateContexts=[posix_context(wire_mode)])
+                c.delete_on_close(f, True)
+                c.close(f)
+
+
     def test_posix_delete_on_close(self):
         c = libsmb.Conn(
             self.server_ip,
diff --git a/selftest/knownfail.d/samba.tests.smb3unix b/selftest/knownfail.d/samba.tests.smb3unix
new file mode 100644 (file)
index 0000000..4e3f64a
--- /dev/null
@@ -0,0 +1 @@
+^samba.tests.smb3unix.*test_posix_reserved_char\(fileserver_smb1\)