Prabhu Gnana Sundar <prabh...@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

Reply via email to