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:
committed by
Jeremy Allison
parent
44a44005a6
commit
5c25e262e7
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user