From: Ralph Boehme Date: Wed, 27 Nov 2024 14:14:32 +0000 (+0100) Subject: tests: test POSIX file type on reparse point X-Git-Tag: tdb-1.4.13~460 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=21ef00d0f00fa2852e41019a796005c1a06ae418;p=thirdparty%2Fsamba.git tests: test POSIX file type on reparse point Create a symlink reparse point over SMB2. Then query file info over SMB2 and check the POSIX file type is correctly assigned in the POSIX info levels. Signed-off-by: Ralph Boehme Reviewed-by: Volker Lendecke --- diff --git a/python/samba/tests/reparsepoints.py b/python/samba/tests/reparsepoints.py index 50e1fb59182..a5568616021 100644 --- a/python/samba/tests/reparsepoints.py +++ b/python/samba/tests/reparsepoints.py @@ -441,6 +441,34 @@ class ReparsePoints(samba.tests.libsmb.LibsmbTests): """Test SOCK reparse tag""" self.do_test_nfs_reparse('sock', stat.S_IFSOCK, 'NFS_SPECFILE_SOCK') + def test_reparsepoint_posix_type(self): + conn = self.connection(posix=True) + filename = 'reparse' + self.clean_file(conn, filename) + + fd,_,_ = conn.create_ex( + filename, + DesiredAccess=sec.SEC_FILE_WRITE_ATTRIBUTE, + CreateDisposition=libsmb.FILE_CREATE, + CreateContexts=[posix_context(0o600)]) + b = reparse_symlink.symlink_put("y", "y", 0, 0) + conn.fsctl(fd, libsmb.FSCTL_SET_REPARSE_POINT, b, 0) + conn.close(fd) + + dirents = conn.list("", filename,info_level=libsmb.SMB2_FIND_POSIX_INFORMATION) + self.assertEqual( + dirents[0]["attrib"], + libsmb.FILE_ATTRIBUTE_REPARSE_POINT| + libsmb.FILE_ATTRIBUTE_ARCHIVE) + self.assertEqual( + dirents[0]["reparse_tag"], + libsmb.IO_REPARSE_TAG_SYMLINK) + + type, perms = self.wire_mode_to_unix(dirents[0]['perms']) + self.assertEqual(type, stat.S_IFLNK) + + self.clean_file(conn, filename) + if __name__ == '__main__': import unittest unittest.main() diff --git a/selftest/knownfail.d/samba.tests.reparsepoints b/selftest/knownfail.d/samba.tests.reparsepoints index fb7205e14b3..357149c9b55 100644 --- a/selftest/knownfail.d/samba.tests.reparsepoints +++ b/selftest/knownfail.d/samba.tests.reparsepoints @@ -1,2 +1,3 @@ ^samba.tests.reparsepoints.samba.tests.reparsepoints.ReparsePoints.test_fifo_reparse\(fileserver_smb1\) ^samba.tests.reparsepoints.samba.tests.reparsepoints.ReparsePoints.test_sock_reparse\(fileserver_smb1\) +^samba.tests.reparsepoints.samba.tests.reparsepoints.ReparsePoints.test_reparsepoint_posix_type\(fileserver_smb1\)