You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Philip Martin <ph...@wandisco.com> on 2013/01/22 16:24:02 UTC

upgrade_tests 29 XFAIL

This is a regression test for issue 4035
http://subversion.tigris.org/issues/show_bug.cgi?id=4035
marked XFAIL after the recent entries-dump changes.

This test is about upgrading a missing replaced directory, i.e

svn rm A/B/E
svn add A/B/E
rm -rf A/B/E

After the upgrade wc.db contains:

$ sqlite3 svn-test-work/working_copies/upgrade_tests-29/.svn/wc.db "select op_depth, local_relpath, presence, repos_path, revision from nodes where local_relpath like 'A/B%' order by op_depth, local_relpath"
0|A/B|normal|A/B|1
0|A/B/E|incomplete|A/B/E|1
0|A/B/F|normal|A/B/F|1
0|A/B/lambda|normal|A/B/lambda|1
3|A/B/E|incomplete||

after an update it contains:

0|A/B/E|normal|A/B/E|1
0|A/B/E/alpha|normal|A/B/E/alpha|1
0|A/B/E/beta|normal|A/B/E/beta|1
3|A/B/E|incomplete||
3|A/B/E/alpha|base-deleted||
3|A/B/E/beta|base-deleted||

entries-dump asserts when built with SVN_DEBUG because the op-depth=3,
presence=incomplete, node is unexpected.  Without SVN_DEBUG the test
fails later with an entries error:

W: Couldn't find node 'E' in expected entries tree
W:  * Node name:   E
    Path:       svn-test-work/working_copies/upgrade_tests-29/A/B/E
    Contents:   None
    Properties: {}
    Attributes: {'status': 'R ', 'wc_rev': '1'}
    Children:  None (node is probably a file)

Is the upgrade right or wrong to create the op-depth=3
presence=incomplete row?

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download

RE: upgrade_tests 29 XFAIL

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

> -----Original Message-----
> From: MARTIN PHILIP [mailto:codematters@ntlworld.com] On Behalf Of
> Philip Martin
> Sent: dinsdag 22 januari 2013 18:56
> To: Bert Huijben
> Cc: dev@subversion.apache.org
> Subject: Re: upgrade_tests 29 XFAIL
> 
> "Bert Huijben" <be...@qqmail.nl> writes:
> 
> >> W: Couldn't find node 'E' in expected entries tree
> >> W:  * Node name:   E
> >>     Path:       svn-test-work/working_copies/upgrade_tests-29/A/B/E
> >>     Contents:   None
> >>     Properties: {}
> >>     Attributes: {'status': 'R ', 'wc_rev': '1'}
> >>     Children:  None (node is probably a file)
> >>
> >> Is the upgrade right or wrong to create the op-depth=3
> >> presence=incomplete row?
> >
> > I think the idea is that it adds this first and then when walking the
> > 'entries' in the directory itself the information is improved.
> >
> > Maybe we should have another set of operations to run when we don't
> find the
> > entries in the directory.
> 
> I think with the above you are referring to the upgrade code?  So you
> think that update should be changing the op-depth=3, presence=incomplete
> row into something else?
> 
> > Another option would be to make the test verify that you can recover
from
> > this situation by running 'svn revert' on E. If that works it would be
good
> > enough for me.
> >
> > (The entries have a slightly different idea about what a replacement is
> > compared to status. Every node with a BASE node is replaced, even though
> the
> > node is not the op-root that replaces the node. There are entry_status,
> > entry_rev and entry_copied keywords to handle this in the test suite)
> 
> As far as I can see tweak_for_entries_compare is removing the '!' node
> that the test puts into expected_status.  I don't know how to make the
> test pass.

The entries code doesn't look to add disk state, so it never sees
obstructions or missing directory.

But currently entries-dump just exits on the assertion. So the output is
just ignored.

When reading the entries doesn't fail any more the test expectations can be
fixed by applying entry_status, entry_rev and entry_copied where necessary.
(If set these override the status types. See many of the tests I had to fix
last Saturday for some examples)

We have had this kind of overrides in the test suite, since before we got to
single-db.

	Bert


Re: upgrade_tests 29 XFAIL

Posted by Philip Martin <ph...@wandisco.com>.
"Bert Huijben" <be...@qqmail.nl> writes:

>> W: Couldn't find node 'E' in expected entries tree
>> W:  * Node name:   E
>>     Path:       svn-test-work/working_copies/upgrade_tests-29/A/B/E
>>     Contents:   None
>>     Properties: {}
>>     Attributes: {'status': 'R ', 'wc_rev': '1'}
>>     Children:  None (node is probably a file)
>> 
>> Is the upgrade right or wrong to create the op-depth=3
>> presence=incomplete row?
>
> I think the idea is that it adds this first and then when walking the
> 'entries' in the directory itself the information is improved.
>
> Maybe we should have another set of operations to run when we don't find the
> entries in the directory.

I think with the above you are referring to the upgrade code?  So you
think that update should be changing the op-depth=3, presence=incomplete
row into something else?

> Another option would be to make the test verify that you can recover from
> this situation by running 'svn revert' on E. If that works it would be good
> enough for me.
>
> (The entries have a slightly different idea about what a replacement is
> compared to status. Every node with a BASE node is replaced, even though the
> node is not the op-root that replaces the node. There are entry_status,
> entry_rev and entry_copied keywords to handle this in the test suite)

As far as I can see tweak_for_entries_compare is removing the '!' node
that the test puts into expected_status.  I don't know how to make the
test pass.

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download

RE: upgrade_tests 29 XFAIL

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

> -----Original Message-----
> From: MARTIN PHILIP [mailto:codematters@ntlworld.com] On Behalf Of
> Philip Martin
> Sent: dinsdag 22 januari 2013 16:24
> To: dev@subversion.apache.org
> Subject: upgrade_tests 29 XFAIL
> 
> This is a regression test for issue 4035
> http://subversion.tigris.org/issues/show_bug.cgi?id=4035
> marked XFAIL after the recent entries-dump changes.
> 
> This test is about upgrading a missing replaced directory, i.e
> 
> svn rm A/B/E
> svn add A/B/E
> rm -rf A/B/E
> 
> After the upgrade wc.db contains:
> 
> $ sqlite3 svn-test-work/working_copies/upgrade_tests-29/.svn/wc.db
> "select op_depth, local_relpath, presence, repos_path, revision from nodes
> where local_relpath like 'A/B%' order by op_depth, local_relpath"
> 0|A/B|normal|A/B|1
> 0|A/B/E|incomplete|A/B/E|1
> 0|A/B/F|normal|A/B/F|1
> 0|A/B/lambda|normal|A/B/lambda|1
> 3|A/B/E|incomplete||
> 
> after an update it contains:
> 
> 0|A/B/E|normal|A/B/E|1
> 0|A/B/E/alpha|normal|A/B/E/alpha|1
> 0|A/B/E/beta|normal|A/B/E/beta|1
> 3|A/B/E|incomplete||
> 3|A/B/E/alpha|base-deleted||
> 3|A/B/E/beta|base-deleted||
> 
> entries-dump asserts when built with SVN_DEBUG because the op-depth=3,
> presence=incomplete, node is unexpected.  Without SVN_DEBUG the test
> fails later with an entries error:
> 
> W: Couldn't find node 'E' in expected entries tree
> W:  * Node name:   E
>     Path:       svn-test-work/working_copies/upgrade_tests-29/A/B/E
>     Contents:   None
>     Properties: {}
>     Attributes: {'status': 'R ', 'wc_rev': '1'}
>     Children:  None (node is probably a file)
> 
> Is the upgrade right or wrong to create the op-depth=3
> presence=incomplete row?

I think the idea is that it adds this first and then when walking the
'entries' in the directory itself the information is improved.

Maybe we should have another set of operations to run when we don't find the
entries in the directory.

Another option would be to make the test verify that you can recover from
this situation by running 'svn revert' on E. If that works it would be good
enough for me.

(The entries have a slightly different idea about what a replacement is
compared to status. Every node with a BASE node is replaced, even though the
node is not the op-root that replaces the node. There are entry_status,
entry_rev and entry_copied keywords to handle this in the test suite)

	Bert