Prabhu Gnana Sundar <prabhugs_at_collab.net> writes:
> Hi all,
>
> Currently, as per the issue 3781, "checkout" reads the authz file in
> *case insensitive* way, whereas "commit" reads the authz file in *case
> sensitive* way.
>
> Here is what is observed:
> 1. Checkout is *case insensitive* about the repository name section
> and also the path-inside-repo section.
> 2. Commit is *case sensitive* about the repository name section *but
> case insensitive* about the path-inside-repo section.
>
> Attached an XFail testcase and the log message with this mail. Please
> share your views.
>
>
>
>
> Thanks and regards
> Prabhu
>
> [[[
> XFail testcase for the issue 3781
>
> * subversion/tests/cmdline/authz_tests.py
> (case_insensitive_authz, test_list): New XFail test for the issue 3781
>
> Patch by: Prabhu Gnana Sundar <prabhugs{_AT_}collab.net>
> Suggested by: Kamesh Jayachandran <kamesh{_AT_}collab.net>
>
> Index: subversion/tests/cmdline/authz_tests.py
> ===================================================================
> --- subversion/tests/cmdline/authz_tests.py (revision 1066732)
> +++ subversion/tests/cmdline/authz_tests.py (working copy)
> @@ -1061,6 +1061,67 @@
> [], 'ls', '-R',
> sbox.repo_url)
>
> +
> +def case_insensitive_authz(sbox):
> + "authz issue #3781, check case insensitiveness"
> +
> + sbox.build()
> +
> + # test the case-insensitivity of the path inside the repo
> + write_authz_file(sbox, {"/": "jrandom = r", "/A": "jrandom = r", "/a/Mu": "jrandom = rw"})
> +
I am not sure whether this is relevant. I think for consistency lines
should be of 79 characters.
> + write_restrictive_svnserve_conf(sbox.repo_dir)
> +
> + wc_dir = sbox.wc_dir
> +
> + mu_path = os.path.join(wc_dir, 'A', 'mu')
> + mu_url = sbox.repo_url + '/A/mu'
> + svntest.main.file_append(mu_path, "hi")
> +
> + # Create expected output tree.
> + expected_output = svntest.wc.State(wc_dir, {
> + 'A/mu' : Item(verb='Sending'),
> + })
> +
> + # Commit the file.
> + svntest.actions.run_and_verify_commit(wc_dir,
> + expected_output,
> + None,
> + None,
> + mu_path)
> + svntest.actions.run_and_verify_svn2('No error',
> + svntest.verify.AnyOutput, [],
> + 0, 'cat', mu_url)
> +
> + def mixcases(repo_name):
> + mixed_repo_name = ''
> + for i in range(0, len(repo_name)):
> + if i % 2 == 0:
> + mixed_val = repo_name[i].upper()
> + mixed_repo_name = mixed_repo_name + mixed_val
> + else:
> + mixed_val = repo_name[i].lower()
> + mixed_repo_name = mixed_repo_name + mixed_val
> + return mixed_repo_name
> +
> + mixed_case_repo_dir = mixcases(os.path.basename(sbox.repo_dir))
> +
> + # test the case-insensitivity of the repo name
> + write_authz_file(sbox, {}, sections = {mixed_case_repo_dir + ":/": "jrandom = r",
> + mixed_case_repo_dir + ":/A": "jrandom = r",
> + mixed_case_repo_dir + ":/A/mu": "jrandom = rw"})
> +
Line break ?
> + svntest.main.file_append(mu_path, "hi")
> + # Commit the file again.
> + svntest.actions.run_and_verify_commit(wc_dir,
> + expected_output,
> + None,
> + None,
> + mu_path)
> + svntest.actions.run_and_verify_svn2('No error',
> + svntest.verify.AnyOutput, [],
> + 0, 'cat', mu_url)
> +
> ########################################################################
> # Run the tests
>
> @@ -1093,6 +1154,8 @@
> Skip(wc_wc_copy_revert, svntest.main.is_ra_type_file),
> Skip(authz_recursive_ls,
> svntest.main.is_ra_type_file),
> + XFail(Skip(case_insensitive_authz,
> + svntest.main.is_ra_type_file)),
> ]
> serial_only = True
>
Thanks and Regards
Noorul
Received on 2011-02-03 12:56:23 CET