]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
tests: Expected failures in reparse point tests should not be errors
authorVolker Lendecke <vl@samba.org>
Sun, 5 May 2024 10:16:39 +0000 (12:16 +0200)
committerJeremy Allison <jra@samba.org>
Mon, 6 May 2024 20:55:37 +0000 (20:55 +0000)
We need to put them into knownfail.d individually

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
python/samba/tests/reparsepoints.py

index 3da6aedf97426e31b46ab04f753ced221589bfc8..a7f3296e6140fee660bc65156de831e6aaa4022f 100644 (file)
@@ -162,8 +162,20 @@ class ReparsePoints(samba.tests.libsmb.LibsmbTests):
             sec.SEC_STD_DELETE,
             CreateDisposition=libsmb.FILE_CREATE,
             CreateOptions=libsmb.FILE_DIRECTORY_FILE)
+
         b = reparse_symlink.put(0x80000025, 0, b'asdfasdfasdfasdfasdfasdf')
-        conn.fsctl(dir_fd, libsmb.FSCTL_SET_REPARSE_POINT, b, 0)
+
+        try:
+            conn.fsctl(dir_fd, libsmb.FSCTL_SET_REPARSE_POINT, b, 0)
+        except NTSTATUSError as e:
+            err = e.args[0]
+            if (err != ntstatus.NT_STATUS_ACCESS_DENIED):
+                raise
+
+        if (err == ntstatus.NT_STATUS_ACCESS_DENIED):
+            self.fail("Could not set reparse point on directory")
+            conn.delete_on_close(fd, 1)
+            return
 
         with self.assertRaises(NTSTATUSError) as e:
             fd = conn.create(
@@ -199,20 +211,22 @@ class ReparsePoints(samba.tests.libsmb.LibsmbTests):
             sec.SEC_STD_DELETE,
             CreateDisposition=libsmb.FILE_CREATE)
 
+
         b = reparse_symlink.put(0x80000025, 0, b'asdf')
         try:
             conn.fsctl(dir_fd, libsmb.FSCTL_SET_REPARSE_POINT, b, 0)
         except NTSTATUSError as e:
             err = e.args[0]
-            ok = (err == ntstatus.NT_STATUS_DIRECTORY_NOT_EMPTY)
-            if not ok:
-                raise
 
         conn.delete_on_close(fd, 1)
         conn.close(fd)
         conn.delete_on_close(dir_fd, 1)
         conn.close(dir_fd)
 
+        ok = (err == ntstatus.NT_STATUS_DIRECTORY_NOT_EMPTY)
+        if not ok:
+            self.fail(f'set_reparse on nonempty directory returned {err}')
+
     # Show that reparse point opens respect share modes
 
     def test_reparse_share_modes(self):