Hi Prabhu,

My review comment about your patch.

I guess you test the following case sensitiveness,

* section name case sensitivity
* path only case sensitivity
* case sensitivity for read 
* case sensitivity for write.

If I represent it as Matrix,
      Section    Path
read  case1      case3
write case2      case4

You have the above covered in your patch partially.

Your test for read is not correct, I mean you are not testing the expectation 
by tweaking the permissions.
I mean 
You have {"/": "jrandom = r", "/A": "jrandom = r", "/a/Mu": "jrandom = rw"} 
which grants read access to /A/mu.

Already this case works in HEAD and continue to work after the real case 
sensitivity fix. So make it something like this.

rule = {"/": "jrandom = r", "/A/mu": "jrandom = ", "/a/Mu": "jrandom = rw"} and 
try 'read' on /A/mu which should fail with case sensitivity fix but succeed in 
HEAD.

Name your testcase with what it intends to test. i.e case_insensitive_authz 
makes me get confused.

May be you can name it case_sensitive_authz

Thanks
With regards
Kamesh Jayachandran

-----Original Message-----
From: Prabhu Gnana Sundar [mailto:prabh...@collab.net]
Sent: Fri 2/4/2011 1:04 PM
To: Daniel Shahaf
Cc: dev@subversion.apache.org
Subject: Re: [PATCH] New XFail test for the issue 3781
 
Hi Daniel,

Thank you for the comments... :)

On Friday 04 February 2011 08:12 AM, Daniel Shahaf wrote:
> Prabhu Gnana Sundar wrote on Thu, Feb 03, 2011 at 16:53:54 +0530:
>> 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.
>>
>>
> You didn't actually say what the intended behaviour is.
>

The intended behaviour is path based authorization should be case 
sensitive for all cases.
But it shows some inconsistencies currently...

It has been discussed in ,

http://mail-archives.apache.org/mod_mbox/subversion-dev/201101.mbox/%3c4d468561.3070...@collab.net%3E

>> 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"})
>> +
>> +  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)
> Hold on.  Why does this work?  You commit /A/mu and the authz file gives
> you only 'r' access to /A!
>
It works because we have set 'rw' for the /a/Mu file.
And this must fail actually, because of the case-change in the path. 
Tweaked the test-case.
>> +  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"})
>> +
> Just for clarity, could you add sections for the correct-case repository
> name to the authz file?
>
Sure :) added for clarity...
>> +  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)
> Could you have here both a commit that fails and a commit that succeeds?
Added :)


I have attached the tweaked correct patch and the log message with this 
mail. Please share your views.



Thanks and regards
Prabhu

Reply via email to