You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Daniel Shahaf <da...@elego.de> on 2012/04/18 07:49:32 UTC

Re: Failing test basic_tests.py 29 (check that repos root gets set on checkout)

Hyrum K Wright wrote on Tue, Apr 17, 2012 at 16:27:00 -0500:
> On Tue, Apr 17, 2012 at 4:05 PM, Johan Corveleyn <jc...@gmail.com> wrote:
> > On Tue, Apr 17, 2012 at 10:55 PM, Hyrum K Wright
> > <hy...@wandisco.com> wrote:
> >> On Tue, Apr 17, 2012 at 3:48 PM, Johan Corveleyn <jc...@gmail.com> wrote:
> >>> On Tue, Apr 17, 2012 at 10:42 AM, Philip Martin
> >>> <ph...@wandisco.com> wrote:
> >>>> Johan Corveleyn <jc...@gmail.com> writes:
> >>>>
> >>>>> Apparently, the test is comparing the 'Repository Root' from the
> >>>>> output of 'svn info' with the expected repository url. When I run 'svn
> >>>>> info' manually on ...\svn-test-work\working_copies\basic_tests-29, I
> >>>>> see the following:
> >>>>>
> >>>>> [[[
> >>>>> Path: R:\test\subversion\tests\cmdline\svn-test-work\working_copies\basic_tests-29
> >>>>> Working Copy Root Path:
> >>>>> R:\test\subversion\tests\cmdline\svn-test-work\working_copies\basic_tests-29
> >>>>> URL: file:///R%7C/test/subversion/tests/cmdline/svn-test-work/local_tmp/repos
> >>>>> Repository Root:
> >>>>> file:///R%7C/test/subversion/tests/cmdline/svn-test-work/local_tmp/repos
> >>>>> ]]]
> >>>>>
> >>>>> So the '%7C' instead of ':' seems to be the problem (BTW, %7C is the
> >>>>> pipe symbol, which seems quite strange here).
> >>>>>
> >>>>> When I use the same svn binary to do a new checkout of the same
> >>>>> repository, over file://, I don't get this problem. So that indicates
> >>>>> it's a problem with the test suite.
> >>>>
> >>>> tests.log should show the exact command used to do the checkout.  Is it
> >>>> the same as the command you are running manually?
> >>>
> >>> Gahh! For some reason tests.log doesn't show much detail:
> >>>
> >>> [[[
> >>> ...
> >>> PASS:  basic_tests.py 26: basic info command
> >>> PASS:  basic_tests.py 27: ignore files matching local ignores in added dirs
> >>> PASS:  basic_tests.py 28: add ignored files in added dirs
> >>> 2012-04-17 22:38:44 [WARNING] Bad or missing repository root
> >>> 2012-04-17 22:38:44 [WARNING]
> >>> Traceback (most recent call last):
> >>>  File "C:\research\svn\client_build\trunk2\subversion\tests\cmdline\svntest\main.py",
> >>> line 1332, in run
> >>>    rc = self.pred.run(sandbox)
> >>>  File "C:\research\svn\client_build\trunk2\subversion\tests\cmdline\svntest\testcase.py",
> >>> line 176, in run
> >>>    return self.func(sandbox)
> >>>  File "C:\research\svn\client_build\trunk2\subversion\tests\cmdline\basic_tests.py",
> >>> line 1709, in repos_root
> >>>    check_repos_root(output)
> >>>  File "C:\research\svn\client_build\trunk2\subversion\tests\cmdline\basic_tests.py",
> >>> line 1703, in check_repos_root
> >>>    raise svntest.Failure
> >>> Failure
> >>> FAIL:  basic_tests.py 29: check that repos root gets set on checkout
> >>> PASS:  basic_tests.py 30: checks peg revision on filename with @ sign
> >>> PASS:  basic_tests.py 31: info on file not existing in HEAD
> >>> ...
> >>> ]]]
> >>>
> >>> I tried adding -v to win-tests.py, but that didn't increase the
> >>> verbosity level of the logging.
> >>>
> >>> What am I missing? How can I get the usual (old) verbosity back in the log file?
> >>>
> >>> I remember reading commits and some discussion about using the python
> >>> logging framework from the test-suite ... but don't know the details.
> >>> Is this supposed to be backward compatible, and show the same
> >>> log-level as there used to be?
> >>
> >> The logging framework has a significant amount of granularity, but in
> >> replacing print() with logger.foo(), we may have erred on the side of
> >> being a bit too conservative in the amount of stuff printed by
> >> default.  My guess is that the information you are looking for is
> >> currently hidden by logger.info(), but should be logger.warn().
> >
> > Hm, maybe, maybe not. What I'm looking for is the exact svn commands
> > that were executed. I think those were previously printed as "CMD:
> > ******" or something like that. I'm not sure if I'd call that a "warn"
> > loglevel. But then again, I'm not really sure what we want to end up
> > with. Is it ok for the test suite to be this verbose by default (and
> > thus show every command executed with "warn" loglevel)?
> >
> > It would also be ok for me if those are logged with "info" level, if
> > only I knew how to tune the logging configuration to write out
> > everything from info level. Is there a way to do just that?
> 
> Run running individual tests, you can run them with
> --set-log-level=INFO.  I do not know how this translates to
> win-tests.py, or if win-tests.py propagates that information to child
> tests.

Pass set_log_level=logging.DEBUG to TestHarness.__init__().

Re: Failing test basic_tests.py 29 (check that repos root gets set on checkout)

Posted by Johan Corveleyn <jc...@gmail.com>.
On Tue, Jun 5, 2012 at 1:43 PM, Johan Corveleyn <jc...@gmail.com> wrote:
> On Tue, Jun 5, 2012 at 1:22 PM, Bert Huijben <be...@qqmail.nl> wrote:
>>
>>
>>> -----Original Message-----
>>> From: Johan Corveleyn [mailto:jcorvel@gmail.com]
>>> Sent: dinsdag 5 juni 2012 13:08
>>> To: Bert Huijben
>>> Cc: dev@subversion.apache.org
>>> Subject: Re: Failing test basic_tests.py 29 (check that repos root gets set on
>>> checkout)
>>>
>>> On Tue, Jun 5, 2012 at 1:02 PM, Bert Huijben <be...@qqmail.nl> wrote:
>>> >> -----Original Message-----
>>> >> From: Johan Corveleyn [mailto:jcorvel@gmail.com]
>>> >> Sent: dinsdag 5 juni 2012 02:00
>>> >> To: Branko Čibej
>>> >> Cc: dev@subversion.apache.org
>>> >> Subject: Re: Failing test basic_tests.py 29 (check that repos root gets set
>>> on
>>> >> checkout)
>>> >>
>>> >> On Mon, Apr 23, 2012 at 6:11 AM, Branko Čibej <br...@apache.org>
>>> wrote:
>>> >> > On 23.04.2012 00:00, Johan Corveleyn wrote:
>>> >> >> On Wed, Apr 18, 2012 at 7:49 AM, Daniel Shahaf <da...@elego.de>
>>> >> wrote:
>>> >> >>> Hyrum K Wright wrote on Tue, Apr 17, 2012 at 16:27:00 -0500:
>>> >> >>>> On Tue, Apr 17, 2012 at 4:05 PM, Johan Corveleyn
>>> <jc...@gmail.com>
>>> >> wrote:
>>> >> >>>>> On Tue, Apr 17, 2012 at 10:55 PM, Hyrum K Wright
>>> >> >>>>> <hy...@wandisco.com> wrote:
>>> >> >>>>>> On Tue, Apr 17, 2012 at 3:48 PM, Johan Corveleyn
>>> >> <jc...@gmail.com> wrote:
>>> >> >>>>>>> On Tue, Apr 17, 2012 at 10:42 AM, Philip Martin
>>> >> >>>>>>> <ph...@wandisco.com> wrote:
>>> >> >>>>>>>> Johan Corveleyn <jc...@gmail.com> writes:
>>> >> >>>>>>>>
>>> >> >>>>>>>>> Apparently, the test is comparing the 'Repository Root' from
>>> the
>>> >> >>>>>>>>> output of 'svn info' with the expected repository url. When I
>>> run
>>> >> 'svn
>>> >> >>>>>>>>> info' manually on ...\svn-test-
>>> work\working_copies\basic_tests-
>>> >> 29, I
>>> >> >>>>>>>>> see the following:
>>> >> >>>>>>>>>
>>> >> >>>>>>>>> [[[
>>> >> >>>>>>>>> Path: R:\test\subversion\tests\cmdline\svn-test-
>>> >> work\working_copies\basic_tests-29
>>> >> >>>>>>>>> Working Copy Root Path:
>>> >> >>>>>>>>> R:\test\subversion\tests\cmdline\svn-test-
>>> >> work\working_copies\basic_tests-29
>>> >> >>>>>>>>> URL: file:///R%7C/test/subversion/tests/cmdline/svn-test-
>>> >> work/local_tmp/repos
>>> >> >>>>>>>>> Repository Root:
>>> >> >>>>>>>>> file:///R%7C/test/subversion/tests/cmdline/svn-test-
>>> >> work/local_tmp/repos
>>> >> >>>>>>>>> ]]]
>>> >> >>>>>>>>>
>>> >> >>>>>>>>> So the '%7C' instead of ':' seems to be the problem (BTW,
>>> %7C is
>>> >> the
>>> >
>>> > With the 1.7+ canonicalization rules both
>>> > file:///C:/path
>>> > and
>>> > file:///C|/path
>>> > are valid urls, but only the first form is the canonical format.
>>> (svn_uri_canonicalize() will handle this, just like it updates http://host:80/dir
>>> to http://host/dir, etc.)
>>> >
>>> > Until early in Subversion 1.7 development the test suite produced the
>>> second form, while it was then updated to produce the first form.
>>
>> I just ran some tests in an attempt to confirm this behavior and the %7C form is *also* canonical in 1.7 and trunk. The '|' form is not.
>
> Ah, canonicalization. That might be it. Is it possible that with 1.7,
> svn (client) doesn't automatically canonicalize '|' to '%7C'? While on
> trunk the url is automatically canonicalized by the client?
>
> The problem seems to be that this test (basic_tests.py#30), when run
> over ra_local, executes "svn co file:///X", and then compares the URL
> (or Repos Root) from "svn info" to the original url (literal string
> comparison). Where:
>
> - With trunk, when I use python 2.6, X=R|/test/subversion/....
> However, svn (client) canonicalizes this url, so it ends up becoming
> file:///R%7C/test/subversion when asking 'svn info', so the test
> fails.
>
> - With trunk, when I use python 2.7, X=R:/test/subversion/.... This
> url is not changed by canocalization, so the test succeeds.
>
> - With 1.7 (and earlier), when I use python 2.6,
> X=R|/test/subversion/.... But there is no automatic canonicalization,
> so 'svn info' still says file:///R|/test/subversion?

No, I'm wrong: both 1.7.4 and 1.6.17 transform "svn co file:///C|/bla"
into the url "file:///C%7C/bla" (when asking 'svn info' of the checked
out wc). So when this form is used, this test (with the literal
comparison) always fails.

So the only question remaining (apart from fixing this test to be
tolerant for this canonicalization) is why (on my machine at least)
the test suite sometimes uses "|" (with python 2.6 and trunk, but not
with 1.7 or earlier), and sometimes ":" (with 1.7 or earlier, or with
trunk and python 2.7).

-- 
Johan

Re: Failing test basic_tests.py 29 (check that repos root gets set on checkout)

Posted by Johan Corveleyn <jc...@gmail.com>.
On Tue, Jun 5, 2012 at 1:22 PM, Bert Huijben <be...@qqmail.nl> wrote:
>
>
>> -----Original Message-----
>> From: Johan Corveleyn [mailto:jcorvel@gmail.com]
>> Sent: dinsdag 5 juni 2012 13:08
>> To: Bert Huijben
>> Cc: dev@subversion.apache.org
>> Subject: Re: Failing test basic_tests.py 29 (check that repos root gets set on
>> checkout)
>>
>> On Tue, Jun 5, 2012 at 1:02 PM, Bert Huijben <be...@qqmail.nl> wrote:
>> >> -----Original Message-----
>> >> From: Johan Corveleyn [mailto:jcorvel@gmail.com]
>> >> Sent: dinsdag 5 juni 2012 02:00
>> >> To: Branko Čibej
>> >> Cc: dev@subversion.apache.org
>> >> Subject: Re: Failing test basic_tests.py 29 (check that repos root gets set
>> on
>> >> checkout)
>> >>
>> >> On Mon, Apr 23, 2012 at 6:11 AM, Branko Čibej <br...@apache.org>
>> wrote:
>> >> > On 23.04.2012 00:00, Johan Corveleyn wrote:
>> >> >> On Wed, Apr 18, 2012 at 7:49 AM, Daniel Shahaf <da...@elego.de>
>> >> wrote:
>> >> >>> Hyrum K Wright wrote on Tue, Apr 17, 2012 at 16:27:00 -0500:
>> >> >>>> On Tue, Apr 17, 2012 at 4:05 PM, Johan Corveleyn
>> <jc...@gmail.com>
>> >> wrote:
>> >> >>>>> On Tue, Apr 17, 2012 at 10:55 PM, Hyrum K Wright
>> >> >>>>> <hy...@wandisco.com> wrote:
>> >> >>>>>> On Tue, Apr 17, 2012 at 3:48 PM, Johan Corveleyn
>> >> <jc...@gmail.com> wrote:
>> >> >>>>>>> On Tue, Apr 17, 2012 at 10:42 AM, Philip Martin
>> >> >>>>>>> <ph...@wandisco.com> wrote:
>> >> >>>>>>>> Johan Corveleyn <jc...@gmail.com> writes:
>> >> >>>>>>>>
>> >> >>>>>>>>> Apparently, the test is comparing the 'Repository Root' from
>> the
>> >> >>>>>>>>> output of 'svn info' with the expected repository url. When I
>> run
>> >> 'svn
>> >> >>>>>>>>> info' manually on ...\svn-test-
>> work\working_copies\basic_tests-
>> >> 29, I
>> >> >>>>>>>>> see the following:
>> >> >>>>>>>>>
>> >> >>>>>>>>> [[[
>> >> >>>>>>>>> Path: R:\test\subversion\tests\cmdline\svn-test-
>> >> work\working_copies\basic_tests-29
>> >> >>>>>>>>> Working Copy Root Path:
>> >> >>>>>>>>> R:\test\subversion\tests\cmdline\svn-test-
>> >> work\working_copies\basic_tests-29
>> >> >>>>>>>>> URL: file:///R%7C/test/subversion/tests/cmdline/svn-test-
>> >> work/local_tmp/repos
>> >> >>>>>>>>> Repository Root:
>> >> >>>>>>>>> file:///R%7C/test/subversion/tests/cmdline/svn-test-
>> >> work/local_tmp/repos
>> >> >>>>>>>>> ]]]
>> >> >>>>>>>>>
>> >> >>>>>>>>> So the '%7C' instead of ':' seems to be the problem (BTW,
>> %7C is
>> >> the
>> >
>> > With the 1.7+ canonicalization rules both
>> > file:///C:/path
>> > and
>> > file:///C|/path
>> > are valid urls, but only the first form is the canonical format.
>> (svn_uri_canonicalize() will handle this, just like it updates http://host:80/dir
>> to http://host/dir, etc.)
>> >
>> > Until early in Subversion 1.7 development the test suite produced the
>> second form, while it was then updated to produce the first form.
>
> I just ran some tests in an attempt to confirm this behavior and the %7C form is *also* canonical in 1.7 and trunk. The '|' form is not.

Ah, canonicalization. That might be it. Is it possible that with 1.7,
svn (client) doesn't automatically canonicalize '|' to '%7C'? While on
trunk the url is automatically canonicalized by the client?

The problem seems to be that this test (basic_tests.py#30), when run
over ra_local, executes "svn co file:///X", and then compares the URL
(or Repos Root) from "svn info" to the original url (literal string
comparison). Where:

- With trunk, when I use python 2.6, X=R|/test/subversion/....
However, svn (client) canonicalizes this url, so it ends up becoming
file:///R%7C/test/subversion when asking 'svn info', so the test
fails.

- With trunk, when I use python 2.7, X=R:/test/subversion/.... This
url is not changed by canocalization, so the test succeeds.

- With 1.7 (and earlier), when I use python 2.6,
X=R|/test/subversion/.... But there is no automatic canonicalization,
so 'svn info' still says file:///R|/test/subversion?

(I haven't checked the above, it's all just hypothesis --- svn
development pc not available right now)

If the above is correct, then the only problem is probably that the
test suite shouldn't be checking this url literally, but should take
into account any canonicalization done on the original url.

-- 
Johan

RE: Failing test basic_tests.py 29 (check that repos root gets set on checkout)

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: Johan Corveleyn [mailto:jcorvel@gmail.com]
> Sent: dinsdag 5 juni 2012 13:08
> To: Bert Huijben
> Cc: dev@subversion.apache.org
> Subject: Re: Failing test basic_tests.py 29 (check that repos root gets set on
> checkout)
> 
> On Tue, Jun 5, 2012 at 1:02 PM, Bert Huijben <be...@qqmail.nl> wrote:
> >> -----Original Message-----
> >> From: Johan Corveleyn [mailto:jcorvel@gmail.com]
> >> Sent: dinsdag 5 juni 2012 02:00
> >> To: Branko Čibej
> >> Cc: dev@subversion.apache.org
> >> Subject: Re: Failing test basic_tests.py 29 (check that repos root gets set
> on
> >> checkout)
> >>
> >> On Mon, Apr 23, 2012 at 6:11 AM, Branko Čibej <br...@apache.org>
> wrote:
> >> > On 23.04.2012 00:00, Johan Corveleyn wrote:
> >> >> On Wed, Apr 18, 2012 at 7:49 AM, Daniel Shahaf <da...@elego.de>
> >> wrote:
> >> >>> Hyrum K Wright wrote on Tue, Apr 17, 2012 at 16:27:00 -0500:
> >> >>>> On Tue, Apr 17, 2012 at 4:05 PM, Johan Corveleyn
> <jc...@gmail.com>
> >> wrote:
> >> >>>>> On Tue, Apr 17, 2012 at 10:55 PM, Hyrum K Wright
> >> >>>>> <hy...@wandisco.com> wrote:
> >> >>>>>> On Tue, Apr 17, 2012 at 3:48 PM, Johan Corveleyn
> >> <jc...@gmail.com> wrote:
> >> >>>>>>> On Tue, Apr 17, 2012 at 10:42 AM, Philip Martin
> >> >>>>>>> <ph...@wandisco.com> wrote:
> >> >>>>>>>> Johan Corveleyn <jc...@gmail.com> writes:
> >> >>>>>>>>
> >> >>>>>>>>> Apparently, the test is comparing the 'Repository Root' from
> the
> >> >>>>>>>>> output of 'svn info' with the expected repository url. When I
> run
> >> 'svn
> >> >>>>>>>>> info' manually on ...\svn-test-
> work\working_copies\basic_tests-
> >> 29, I
> >> >>>>>>>>> see the following:
> >> >>>>>>>>>
> >> >>>>>>>>> [[[
> >> >>>>>>>>> Path: R:\test\subversion\tests\cmdline\svn-test-
> >> work\working_copies\basic_tests-29
> >> >>>>>>>>> Working Copy Root Path:
> >> >>>>>>>>> R:\test\subversion\tests\cmdline\svn-test-
> >> work\working_copies\basic_tests-29
> >> >>>>>>>>> URL: file:///R%7C/test/subversion/tests/cmdline/svn-test-
> >> work/local_tmp/repos
> >> >>>>>>>>> Repository Root:
> >> >>>>>>>>> file:///R%7C/test/subversion/tests/cmdline/svn-test-
> >> work/local_tmp/repos
> >> >>>>>>>>> ]]]
> >> >>>>>>>>>
> >> >>>>>>>>> So the '%7C' instead of ':' seems to be the problem (BTW,
> %7C is
> >> the
> >
> > With the 1.7+ canonicalization rules both
> > file:///C:/path
> > and
> > file:///C|/path
> > are valid urls, but only the first form is the canonical format.
> (svn_uri_canonicalize() will handle this, just like it updates http://host:80/dir
> to http://host/dir, etc.)
> >
> > Until early in Subversion 1.7 development the test suite produced the
> second form, while it was then updated to produce the first form.

I just ran some tests in an attempt to confirm this behavior and the %7C form is *also* canonical in 1.7 and trunk. The '|' form is not.

	Bert
> 
> Interesting. Do you know which revision, or around when this change
> was made? Or do you know in which file I should look ('blame') for
> this change?
> 
> If I understand you correctly, before 1.7 (1.6 and earlier) the
> testsuite also used the second form?
> 
> --
> Johan


Re: Failing test basic_tests.py 29 (check that repos root gets set on checkout)

Posted by Johan Corveleyn <jc...@gmail.com>.
On Tue, Jun 5, 2012 at 1:02 PM, Bert Huijben <be...@qqmail.nl> wrote:
>> -----Original Message-----
>> From: Johan Corveleyn [mailto:jcorvel@gmail.com]
>> Sent: dinsdag 5 juni 2012 02:00
>> To: Branko Čibej
>> Cc: dev@subversion.apache.org
>> Subject: Re: Failing test basic_tests.py 29 (check that repos root gets set on
>> checkout)
>>
>> On Mon, Apr 23, 2012 at 6:11 AM, Branko Čibej <br...@apache.org> wrote:
>> > On 23.04.2012 00:00, Johan Corveleyn wrote:
>> >> On Wed, Apr 18, 2012 at 7:49 AM, Daniel Shahaf <da...@elego.de>
>> wrote:
>> >>> Hyrum K Wright wrote on Tue, Apr 17, 2012 at 16:27:00 -0500:
>> >>>> On Tue, Apr 17, 2012 at 4:05 PM, Johan Corveleyn <jc...@gmail.com>
>> wrote:
>> >>>>> On Tue, Apr 17, 2012 at 10:55 PM, Hyrum K Wright
>> >>>>> <hy...@wandisco.com> wrote:
>> >>>>>> On Tue, Apr 17, 2012 at 3:48 PM, Johan Corveleyn
>> <jc...@gmail.com> wrote:
>> >>>>>>> On Tue, Apr 17, 2012 at 10:42 AM, Philip Martin
>> >>>>>>> <ph...@wandisco.com> wrote:
>> >>>>>>>> Johan Corveleyn <jc...@gmail.com> writes:
>> >>>>>>>>
>> >>>>>>>>> Apparently, the test is comparing the 'Repository Root' from the
>> >>>>>>>>> output of 'svn info' with the expected repository url. When I run
>> 'svn
>> >>>>>>>>> info' manually on ...\svn-test-work\working_copies\basic_tests-
>> 29, I
>> >>>>>>>>> see the following:
>> >>>>>>>>>
>> >>>>>>>>> [[[
>> >>>>>>>>> Path: R:\test\subversion\tests\cmdline\svn-test-
>> work\working_copies\basic_tests-29
>> >>>>>>>>> Working Copy Root Path:
>> >>>>>>>>> R:\test\subversion\tests\cmdline\svn-test-
>> work\working_copies\basic_tests-29
>> >>>>>>>>> URL: file:///R%7C/test/subversion/tests/cmdline/svn-test-
>> work/local_tmp/repos
>> >>>>>>>>> Repository Root:
>> >>>>>>>>> file:///R%7C/test/subversion/tests/cmdline/svn-test-
>> work/local_tmp/repos
>> >>>>>>>>> ]]]
>> >>>>>>>>>
>> >>>>>>>>> So the '%7C' instead of ':' seems to be the problem (BTW, %7C is
>> the
>
> With the 1.7+ canonicalization rules both
> file:///C:/path
> and
> file:///C|/path
> are valid urls, but only the first form is the canonical format. (svn_uri_canonicalize() will handle this, just like it updates http://host:80/dir to http://host/dir, etc.)
>
> Until early in Subversion 1.7 development the test suite produced the second form, while it was then updated to produce the first form.

Interesting. Do you know which revision, or around when this change
was made? Or do you know in which file I should look ('blame') for
this change?

If I understand you correctly, before 1.7 (1.6 and earlier) the
testsuite also used the second form?

-- 
Johan

RE: Failing test basic_tests.py 29 (check that repos root gets set on checkout)

Posted by Bert Huijben <be...@qqmail.nl>.
> -----Original Message-----
> From: Johan Corveleyn [mailto:jcorvel@gmail.com]
> Sent: dinsdag 5 juni 2012 02:00
> To: Branko Čibej
> Cc: dev@subversion.apache.org
> Subject: Re: Failing test basic_tests.py 29 (check that repos root gets set on
> checkout)
> 
> On Mon, Apr 23, 2012 at 6:11 AM, Branko Čibej <br...@apache.org> wrote:
> > On 23.04.2012 00:00, Johan Corveleyn wrote:
> >> On Wed, Apr 18, 2012 at 7:49 AM, Daniel Shahaf <da...@elego.de>
> wrote:
> >>> Hyrum K Wright wrote on Tue, Apr 17, 2012 at 16:27:00 -0500:
> >>>> On Tue, Apr 17, 2012 at 4:05 PM, Johan Corveleyn <jc...@gmail.com>
> wrote:
> >>>>> On Tue, Apr 17, 2012 at 10:55 PM, Hyrum K Wright
> >>>>> <hy...@wandisco.com> wrote:
> >>>>>> On Tue, Apr 17, 2012 at 3:48 PM, Johan Corveleyn
> <jc...@gmail.com> wrote:
> >>>>>>> On Tue, Apr 17, 2012 at 10:42 AM, Philip Martin
> >>>>>>> <ph...@wandisco.com> wrote:
> >>>>>>>> Johan Corveleyn <jc...@gmail.com> writes:
> >>>>>>>>
> >>>>>>>>> Apparently, the test is comparing the 'Repository Root' from the
> >>>>>>>>> output of 'svn info' with the expected repository url. When I run
> 'svn
> >>>>>>>>> info' manually on ...\svn-test-work\working_copies\basic_tests-
> 29, I
> >>>>>>>>> see the following:
> >>>>>>>>>
> >>>>>>>>> [[[
> >>>>>>>>> Path: R:\test\subversion\tests\cmdline\svn-test-
> work\working_copies\basic_tests-29
> >>>>>>>>> Working Copy Root Path:
> >>>>>>>>> R:\test\subversion\tests\cmdline\svn-test-
> work\working_copies\basic_tests-29
> >>>>>>>>> URL: file:///R%7C/test/subversion/tests/cmdline/svn-test-
> work/local_tmp/repos
> >>>>>>>>> Repository Root:
> >>>>>>>>> file:///R%7C/test/subversion/tests/cmdline/svn-test-
> work/local_tmp/repos
> >>>>>>>>> ]]]
> >>>>>>>>>
> >>>>>>>>> So the '%7C' instead of ':' seems to be the problem (BTW, %7C is
> the

With the 1.7+ canonicalization rules both
file:///C:/path
and
file:///C|/path
are valid urls, but only the first form is the canonical format. (svn_uri_canonicalize() will handle this, just like it updates http://host:80/dir to http://host/dir, etc.)

Until early in Subversion 1.7 development the test suite produced the second form, while it was then updated to produce the first form.

I only recently switched to python 2.7 on my development pc and never noticed this issue before. (I think I had 2.5.something before)

	Bert


Re: Failing test basic_tests.py 29 (check that repos root gets set on checkout)

Posted by Johan Corveleyn <jc...@gmail.com>.
On Mon, Apr 23, 2012 at 6:11 AM, Branko Čibej <br...@apache.org> wrote:
> On 23.04.2012 00:00, Johan Corveleyn wrote:
>> On Wed, Apr 18, 2012 at 7:49 AM, Daniel Shahaf <da...@elego.de> wrote:
>>> Hyrum K Wright wrote on Tue, Apr 17, 2012 at 16:27:00 -0500:
>>>> On Tue, Apr 17, 2012 at 4:05 PM, Johan Corveleyn <jc...@gmail.com> wrote:
>>>>> On Tue, Apr 17, 2012 at 10:55 PM, Hyrum K Wright
>>>>> <hy...@wandisco.com> wrote:
>>>>>> On Tue, Apr 17, 2012 at 3:48 PM, Johan Corveleyn <jc...@gmail.com> wrote:
>>>>>>> On Tue, Apr 17, 2012 at 10:42 AM, Philip Martin
>>>>>>> <ph...@wandisco.com> wrote:
>>>>>>>> Johan Corveleyn <jc...@gmail.com> writes:
>>>>>>>>
>>>>>>>>> Apparently, the test is comparing the 'Repository Root' from the
>>>>>>>>> output of 'svn info' with the expected repository url. When I run 'svn
>>>>>>>>> info' manually on ...\svn-test-work\working_copies\basic_tests-29, I
>>>>>>>>> see the following:
>>>>>>>>>
>>>>>>>>> [[[
>>>>>>>>> Path: R:\test\subversion\tests\cmdline\svn-test-work\working_copies\basic_tests-29
>>>>>>>>> Working Copy Root Path:
>>>>>>>>> R:\test\subversion\tests\cmdline\svn-test-work\working_copies\basic_tests-29
>>>>>>>>> URL: file:///R%7C/test/subversion/tests/cmdline/svn-test-work/local_tmp/repos
>>>>>>>>> Repository Root:
>>>>>>>>> file:///R%7C/test/subversion/tests/cmdline/svn-test-work/local_tmp/repos
>>>>>>>>> ]]]
>>>>>>>>>
>>>>>>>>> So the '%7C' instead of ':' seems to be the problem (BTW, %7C is the
>>>>>>>>> pipe symbol, which seems quite strange here).
>>>>>>>>>
>>>>>>>>> When I use the same svn binary to do a new checkout of the same
>>>>>>>>> repository, over file://, I don't get this problem. So that indicates
>>>>>>>>> it's a problem with the test suite.
>>>>>>>> tests.log should show the exact command used to do the checkout.  Is it
>>>>>>>> the same as the command you are running manually?
>> [ snip stuff about test output (loglevel) problems, for which Hyrum,
>> followed by Daniel suggested ... ]
>>
>>>> Run running individual tests, you can run them with
>>>> --set-log-level=INFO.  I do not know how this translates to
>>>> win-tests.py, or if win-tests.py propagates that information to child
>>>> tests.
>>> Pass set_log_level=logging.DEBUG to TestHarness.__init__().
>> Thanks, that helped (level INFO sufficed)
>>
>> So, now I see that every single file:/// url in all of basic_tests.py
>> (and probably all my other tests as well) is used as
>>
>>     "file:///R|/test/subversion/tests/cmdline..."
>>
>> Huh? And that even works? Yes, I just tried it manually on the commandline.
>>
>> I'm a bit stumped actually.
>
> Once again ... this is intentional for compatibility with Windows
> browsers. When the initial Windows port happened (some 12 years ago
> IIRC), all browsers on Windows would only accept file:// URLs in this
> format (Mozilla accepted the correct file:///X:/, too, but converted to
> the pipe form). I can only guess at the reason why someone decided that
> doing this was a good idea, but this is what Internet Explorer did,
> others followed suit, and Subversion adjusted its output accordingly --
> otherwise Windows users couldn't have copied svn output into a browser's
> address bar.

Ok, thanks for explaining. I got it more or less the first time, but
was just surprised.

> Both svn and the test suite on Windows still use this format for file://
> URLs, and IE still accepts it, although it displays local file paths as
> filenames, not URLs, and it also accepts the correct format with the colon.
>
> The test suite should account for this, so your failing test indicates a
> bug in the test suite. Are you running the 1.7 tests with a 1.6 build?

Nope, I'm only seeing this with a trunk build, with trunk tests. A 1.7
(or 1.6) build with tests from the same version runs fine, and the
test suite really uses "file:///R:/test" urls.

> Could be that in the course of 1.7 development, someone noticed that
> Windows browsers now conform to published standards with regard to URL
> syntax and decided to do remove the exception for file:// URLs on Windows.

During trunk (post-1.7) development ... maybe. I don't know. Something
changed on trunk after 1.7 branched, to make this happen.

However, I've now found another piece of the puzzle: I just upgraded
my Python to 2.7, and the problem is gone: test suite uses
"file:///R:/" urls. If I go back to using Python 2.6, it's using
"file:///R|/" urls, and this test fails (it's become basic_tests.py#30
in the meantime).

[[[
C:\research\svn\client_build\trunk2>python --version
Python 2.7.3

C:\research\svn\client_build\trunk2>runtest.bat -t basic_tests.py#30
Testing Debug configuration on local repository.
Running tests in basic_tests.py [1/1]...................................success
Summary of test results:
  1 test PASSED

C:\research\svn\client_build\trunk2>set PATH=c:\research\Python26;%PATH%

C:\research\svn\client_build\trunk2>python --version
Python 2.6.2

C:\research\svn\client_build\trunk2>runtest.bat -t basic_tests.py#30
Testing Debug configuration on local repository.
Running tests in basic_tests.py [1/1]...................................FAILURE
At least one test FAILED, checking R:\test\tests.log
FAIL:  basic_tests.py 30: check that repos root gets set on checkout
Summary of test results:
  1 test FAILED
]]]

That may explain why the Windows buildbots aren't seeing this.

Fine by me. I'm using python 2.7.3 now. But still ... weird.

-- 
Johan

Re: Failing test basic_tests.py 29 (check that repos root gets set on checkout)

Posted by Branko Čibej <br...@apache.org>.
On 23.04.2012 00:00, Johan Corveleyn wrote:
> On Wed, Apr 18, 2012 at 7:49 AM, Daniel Shahaf <da...@elego.de> wrote:
>> Hyrum K Wright wrote on Tue, Apr 17, 2012 at 16:27:00 -0500:
>>> On Tue, Apr 17, 2012 at 4:05 PM, Johan Corveleyn <jc...@gmail.com> wrote:
>>>> On Tue, Apr 17, 2012 at 10:55 PM, Hyrum K Wright
>>>> <hy...@wandisco.com> wrote:
>>>>> On Tue, Apr 17, 2012 at 3:48 PM, Johan Corveleyn <jc...@gmail.com> wrote:
>>>>>> On Tue, Apr 17, 2012 at 10:42 AM, Philip Martin
>>>>>> <ph...@wandisco.com> wrote:
>>>>>>> Johan Corveleyn <jc...@gmail.com> writes:
>>>>>>>
>>>>>>>> Apparently, the test is comparing the 'Repository Root' from the
>>>>>>>> output of 'svn info' with the expected repository url. When I run 'svn
>>>>>>>> info' manually on ...\svn-test-work\working_copies\basic_tests-29, I
>>>>>>>> see the following:
>>>>>>>>
>>>>>>>> [[[
>>>>>>>> Path: R:\test\subversion\tests\cmdline\svn-test-work\working_copies\basic_tests-29
>>>>>>>> Working Copy Root Path:
>>>>>>>> R:\test\subversion\tests\cmdline\svn-test-work\working_copies\basic_tests-29
>>>>>>>> URL: file:///R%7C/test/subversion/tests/cmdline/svn-test-work/local_tmp/repos
>>>>>>>> Repository Root:
>>>>>>>> file:///R%7C/test/subversion/tests/cmdline/svn-test-work/local_tmp/repos
>>>>>>>> ]]]
>>>>>>>>
>>>>>>>> So the '%7C' instead of ':' seems to be the problem (BTW, %7C is the
>>>>>>>> pipe symbol, which seems quite strange here).
>>>>>>>>
>>>>>>>> When I use the same svn binary to do a new checkout of the same
>>>>>>>> repository, over file://, I don't get this problem. So that indicates
>>>>>>>> it's a problem with the test suite.
>>>>>>> tests.log should show the exact command used to do the checkout.  Is it
>>>>>>> the same as the command you are running manually?
> [ snip stuff about test output (loglevel) problems, for which Hyrum,
> followed by Daniel suggested ... ]
>
>>> Run running individual tests, you can run them with
>>> --set-log-level=INFO.  I do not know how this translates to
>>> win-tests.py, or if win-tests.py propagates that information to child
>>> tests.
>> Pass set_log_level=logging.DEBUG to TestHarness.__init__().
> Thanks, that helped (level INFO sufficed)
>
> So, now I see that every single file:/// url in all of basic_tests.py
> (and probably all my other tests as well) is used as
>
>     "file:///R|/test/subversion/tests/cmdline..."
>
> Huh? And that even works? Yes, I just tried it manually on the commandline.
>
> I'm a bit stumped actually.

Once again ... this is intentional for compatibility with Windows
browsers. When the initial Windows port happened (some 12 years ago
IIRC), all browsers on Windows would only accept file:// URLs in this
format (Mozilla accepted the correct file:///X:/, too, but converted to
the pipe form). I can only guess at the reason why someone decided that
doing this was a good idea, but this is what Internet Explorer did,
others followed suit, and Subversion adjusted its output accordingly --
otherwise Windows users couldn't have copied svn output into a browser's
address bar.

Both svn and the test suite on Windows still use this format for file://
URLs, and IE still accepts it, although it displays local file paths as
filenames, not URLs, and it also accepts the correct format with the colon.

The test suite should account for this, so your failing test indicates a
bug in the test suite. Are you running the 1.7 tests with a 1.6 build?

Could be that in the course of 1.7 development, someone noticed that
Windows browsers now conform to published standards with regard to URL
syntax and decided to do remove the exception for file:// URLs on Windows.

-- Brane


Re: Failing test basic_tests.py 29 (check that repos root gets set on checkout)

Posted by Johan Corveleyn <jc...@gmail.com>.
On Wed, Apr 18, 2012 at 7:49 AM, Daniel Shahaf <da...@elego.de> wrote:
> Hyrum K Wright wrote on Tue, Apr 17, 2012 at 16:27:00 -0500:
>> On Tue, Apr 17, 2012 at 4:05 PM, Johan Corveleyn <jc...@gmail.com> wrote:
>> > On Tue, Apr 17, 2012 at 10:55 PM, Hyrum K Wright
>> > <hy...@wandisco.com> wrote:
>> >> On Tue, Apr 17, 2012 at 3:48 PM, Johan Corveleyn <jc...@gmail.com> wrote:
>> >>> On Tue, Apr 17, 2012 at 10:42 AM, Philip Martin
>> >>> <ph...@wandisco.com> wrote:
>> >>>> Johan Corveleyn <jc...@gmail.com> writes:
>> >>>>
>> >>>>> Apparently, the test is comparing the 'Repository Root' from the
>> >>>>> output of 'svn info' with the expected repository url. When I run 'svn
>> >>>>> info' manually on ...\svn-test-work\working_copies\basic_tests-29, I
>> >>>>> see the following:
>> >>>>>
>> >>>>> [[[
>> >>>>> Path: R:\test\subversion\tests\cmdline\svn-test-work\working_copies\basic_tests-29
>> >>>>> Working Copy Root Path:
>> >>>>> R:\test\subversion\tests\cmdline\svn-test-work\working_copies\basic_tests-29
>> >>>>> URL: file:///R%7C/test/subversion/tests/cmdline/svn-test-work/local_tmp/repos
>> >>>>> Repository Root:
>> >>>>> file:///R%7C/test/subversion/tests/cmdline/svn-test-work/local_tmp/repos
>> >>>>> ]]]
>> >>>>>
>> >>>>> So the '%7C' instead of ':' seems to be the problem (BTW, %7C is the
>> >>>>> pipe symbol, which seems quite strange here).
>> >>>>>
>> >>>>> When I use the same svn binary to do a new checkout of the same
>> >>>>> repository, over file://, I don't get this problem. So that indicates
>> >>>>> it's a problem with the test suite.
>> >>>>
>> >>>> tests.log should show the exact command used to do the checkout.  Is it
>> >>>> the same as the command you are running manually?

[ snip stuff about test output (loglevel) problems, for which Hyrum,
followed by Daniel suggested ... ]

>> Run running individual tests, you can run them with
>> --set-log-level=INFO.  I do not know how this translates to
>> win-tests.py, or if win-tests.py propagates that information to child
>> tests.
>
> Pass set_log_level=logging.DEBUG to TestHarness.__init__().

Thanks, that helped (level INFO sufficed)

So, now I see that every single file:/// url in all of basic_tests.py
(and probably all my other tests as well) is used as

    "file:///R|/test/subversion/tests/cmdline..."

Huh? And that even works? Yes, I just tried it manually on the commandline.

I'm a bit stumped actually.

Apart from the fact that I'm surprised that this works:
- Did something change in the testsuite? Ah yes, because I'm not
seeing this with 1.7.4 (there I see "file:///R:/test/..." everywhere
in the logs). So where, what, ... ?
- Why am I the only one seeing this? The (Windows) buildbots don't seem to fail.
- This is just a testsuite issue, right? The testsuite uses the
"repository root" in its original form for comparison in
basis_tests.py#29, instead of in its encoded form. It is intended
functionality that "svn info" shows the repository url in encoded
form, right? And it is supposed to encode the pipe symbol, right?

-- 
Johan