1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-16 00:23:52 +03:00

tests: add a Python test for case insensitive access

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>

Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue Dec 20 01:32:07 UTC 2022 on sn-devel-184
This commit is contained in:
Ralph Boehme
2022-12-16 10:43:11 +01:00
committed by Jeremy Allison
parent 44a44005a6
commit 5c25e262e7

View File

@@ -141,6 +141,58 @@ class LibsmbTestCase(samba.tests.libsmb.LibsmbTests):
self.assertEqual(len(cc[0][1]),8)
c.close(fnum)
def test_libsmb_TortureCaseSensitivity(self):
testdir = "test_libsmb_torture_case_sensitivity"
filename = "file"
filepath = testdir + "/" + filename
c = libsmb.Conn(self.server_ip, "tmp", self.lp, self.creds)
try:
c.deltree(testdir)
except:
pass
c.mkdir(testdir)
try:
# Now check for all possible upper-/lowercase combinations:
# - testdir/file
# - TESTDIR/file
# - testdir/FILE
# - TESTDIR/FILE
dircases = [testdir, testdir, testdir.upper(), testdir.upper()]
filecases = [filename, filename.upper(), filename, filename.upper()]
tcases = [{'dir':dir, 'file':file} for dir,file in zip(dircases,filecases)]
for tcase in tcases:
testpath = tcase['dir'] + "/" + tcase['file']
# Create the testfile
h = c.create(filepath,
DesiredAccess=security.SEC_FILE_ALL,
CreateDisposition=libsmb.FILE_OPEN_IF)
c.close(h)
# Open
c.loadfile(testpath)
# Search
ls = [f['name'] for f in c.list(tcase['dir'], mask=tcase['file'])]
self.assertIn(filename, ls, msg='When searching for "%s" not found in "%s"' % (tcase['file'], tcase['dir']))
# Rename
c.rename(testpath, tcase['dir'] + "/tmp")
c.rename(tcase['dir'] + "/TMP", filepath)
c.loadfile(testpath)
# Delete
c.unlink(testpath)
finally:
c.deltree(testdir)
if __name__ == "__main__":
import unittest
unittest.main()