From: Ralph Boehme Date: Mon, 11 Nov 2024 09:39:15 +0000 (+0100) Subject: tests: add a test for copy-chunk on a POSIX handle X-Git-Tag: tdb-1.4.13~228 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c36cd2b9e6e2df7b9bedef71a9ba32820d89449;p=thirdparty%2Fsamba.git tests: add a test for copy-chunk on a POSIX handle BUG: https://bugzilla.samba.org/show_bug.cgi?id=15751 Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison --- diff --git a/python/samba/tests/smb3unix.py b/python/samba/tests/smb3unix.py index 04cfd82fb8d..cbd280956e9 100644 --- a/python/samba/tests/smb3unix.py +++ b/python/samba/tests/smb3unix.py @@ -510,3 +510,36 @@ class Smb3UnixTests(samba.tests.libsmb.LibsmbTests): winconn.get_posix_fs_info() e = cm.exception self.assertEqual(e.args[0], ntstatus.NT_STATUS_INVALID_INFO_CLASS) + + def test_copy_chunk_posix(self): + """ + Test copy-chunk works with a destination handle opened in POSIX mode + """ + (_, c) = self.connections() + + self.clean_file(c, '\\test_copy_chunk_posix_src') + self.clean_file(c, '\\test_copy_chunk_posix_dst') + + wire_mode = libsmb.unix_mode_to_wire(0o644) + + sh,*_ = c.create_ex('\\test_copy_chunk_posix_src', + DesiredAccess=security.SEC_GENERIC_ALL, + CreateDisposition=libsmb.FILE_CREATE, + CreateContexts=[posix_context(wire_mode)]) + + dh,*_ = c.create_ex('\\test_copy_chunk_posix_dst', + DesiredAccess=security.SEC_GENERIC_WRITE, + CreateDisposition=libsmb.FILE_CREATE, + CreateContexts=[posix_context(wire_mode)]) + + c.write(sh, buffer=b"data", offset=0) + + try: + written = c.copy_chunk(sh, dh, 4, 0, 0) + except Exception as e: + self.fail(str(e)) + finally: + c.close(sh) + c.close(dh) + self.clean_file(c, '\\test_copy_chunk_posix_src') + self.clean_file(c, '\\test_copy_chunk_posix_dst') diff --git a/selftest/knownfail.d/samba.tests.smb3unix b/selftest/knownfail.d/samba.tests.smb3unix new file mode 100644 index 00000000000..2882296cba1 --- /dev/null +++ b/selftest/knownfail.d/samba.tests.smb3unix @@ -0,0 +1 @@ +^samba.tests.smb3unix.samba.tests.smb3unix.Smb3UnixTests.test_copy_chunk_posix\(fileserver_smb1\)