The branch, master has been updated via 5c25e262e7d tests: add a Python test for case insensitive access from 44a44005a6b compression/huffman: debug function bails upon disaster (CID 1517261)
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 5c25e262e7dce3b40c9c4982444ce965a139b490 Author: Ralph Boehme <s...@samba.org> Date: Fri Dec 16 10:43:11 2022 +0100 tests: add a Python test for case insensitive access Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Tue Dec 20 01:32:07 UTC 2022 on sn-devel-184 ----------------------------------------------------------------------- Summary of changes: python/samba/tests/libsmb-basic.py | 52 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) Changeset truncated at 500 lines: diff --git a/python/samba/tests/libsmb-basic.py b/python/samba/tests/libsmb-basic.py index 36566436e87..61a25a8c682 100644 --- a/python/samba/tests/libsmb-basic.py +++ b/python/samba/tests/libsmb-basic.py @@ -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() -- Samba Shared Repository