From 4fa6cffcfae68d816ddecb58003775b58b38cfd7 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 5 May 2024 12:16:39 +0200 Subject: [PATCH] tests: Expected failures in reparse point tests should not be errors We need to put them into knownfail.d individually Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- python/samba/tests/reparsepoints.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/python/samba/tests/reparsepoints.py b/python/samba/tests/reparsepoints.py index 3da6aedf974..a7f3296e614 100644 --- a/python/samba/tests/reparsepoints.py +++ b/python/samba/tests/reparsepoints.py @@ -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): -- 2.47.3