]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
tests: Test basic handling of SMB2_CREATE_TAG_POSIX
authorVolker Lendecke <vl@samba.org>
Wed, 31 Aug 2022 10:38:23 +0000 (12:38 +0200)
committerRalph Boehme <slow@samba.org>
Fri, 2 Sep 2022 14:31:25 +0000 (14:31 +0000)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Autobuild-User(master): Ralph Böhme <slow@samba.org>
Autobuild-Date(master): Fri Sep  2 14:31:25 UTC 2022 on sn-devel-184

python/samba/tests/smb3unix.py

index 04c451b251d266fb09e56c76e58ee8139bcff12e..a825100d5b2e24e2bd790b85736292e3be6eb88d 100644 (file)
@@ -101,3 +101,62 @@ class Smb3UnixTests(samba.tests.TestCase):
 
         finally:
             self.disable_smb3unix()
+
+    def test_posix_create_context(self):
+        try:
+            self.enable_smb3unix()
+
+            c = libsmb.Conn(
+                os.getenv("SERVER_IP"),
+                "tmp",
+                self.lp,
+                self.creds,
+                posix=True)
+            self.assertTrue(c.have_posix())
+
+            cc_in=[(libsmb.SMB2_CREATE_TAG_POSIX,b'0000')]
+            fnum,_,cc_out = c.create_ex("",CreateContexts=cc_in)
+            self.assertEqual(cc_in[0][0],cc_out[0][0])
+
+            c.close(fnum)
+
+        finally:
+            self.disable_smb3unix()
+
+    def test_posix_create_context_noposix(self):
+        c = libsmb.Conn(
+            os.getenv("SERVER_IP"),
+            "tmp",
+            self.lp,
+            self.creds,
+            posix=True)
+        self.assertFalse(c.have_posix())
+
+        cc_in=[(libsmb.SMB2_CREATE_TAG_POSIX,b'0000')]
+        fnum,_,cc_out = c.create_ex("",CreateContexts=cc_in)
+        self.assertEqual(len(cc_out), 0)
+
+        c.close(fnum)
+
+    def test_posix_create_invalid_context_length(self):
+        try:
+            self.enable_smb3unix()
+
+            c = libsmb.Conn(
+                os.getenv("SERVER_IP"),
+                "tmp",
+                self.lp,
+                self.creds,
+                posix=True)
+            self.assertTrue(c.have_posix())
+
+            cc_in=[(libsmb.SMB2_CREATE_TAG_POSIX,b'00000')]
+
+            with self.assertRaises(NTSTATUSError) as cm:
+                fnum,_,cc_out = c.create_ex("",CreateContexts=cc_in)
+
+            e = cm.exception
+            self.assertEqual(e.args[0], ntstatus.NT_STATUS_INVALID_PARAMETER)
+
+        finally:
+            self.disable_smb3unix()