from samba import (ntstatus,NTSTATUSError)
from samba.dcerpc import security as sec
import samba.tests.libsmb
+import stat
class Smb1PosixTests(samba.tests.libsmb.LibsmbTests):
conn.rmdir("lower/second")
conn.rmdir("lower")
+ def test_mknod(self):
+ """Test SMB1 posix mknod"""
+ conn = libsmb.Conn(
+ self.server_ip,
+ "posix_share",
+ self.lp,
+ self.creds,
+ force_smb1=True)
+ conn.smb1_posix()
+
+ def do_test(name, filetype):
+ conn.mknod(name, filetype | 0o755)
+ st = conn.smb1_stat(name)
+ self.assertEqual(st["mode"], filetype | 0o755)
+ conn.unlink(name)
+
+ do_test("fifo", stat.S_IFIFO)
+ do_test("sock", stat.S_IFSOCK)
+
if __name__ == '__main__':
import unittest
unittest.main()
# These fail because become_root() doesn't work in make test
^samba3.blackbox.dropbox.*
^samba3.raw.samba3hide.*
+
+# samba.tests.smb1posix.samba.tests.smb1posix.Smb1PosixTests.test_mknod
+# creates a socket and posix stat() gives an error because opening the
+# socket from filename_covert_dirfsp() returns ENXIO. With O_PATH
+# available this works fine. So for now restrict testing posix
+# extensions to environments where we have O_PATH around
+^samba.tests.smb1posix