You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Alexander Sabourenkov <sc...@lxnt.info> on 2003/07/17 09:12:23 UTC
svnadmin dump/load, svndumpfilter regression tests
Hello.
I thought on how to check and be exactly sure that the svndumpfilter ( and
svnadmin dump too) work as expected and came up with the following:
1. Create a test repository. Stuff there several revisions, with
modifications, copies and deletes.
2. Do a dump/load into another repository.
3. Check out every revision out of both repositories and compare resulting
working copies. Or maybe export instead of checkout.
4. Repeat step 2 using svndumpfilter. For example:
- filter out a node that has only been modified.
- filter out a node that has been copied
- filter out a node that has been moved
- filter out a node that has been moved and another node was created with the
same name in later revision
- etc
5. Repeat step 3.
This tests both dump and load operations simultaneously. If there is a bug in
one of them, somebody will have a harder than possible time hunting it down.
One way to test them separately is to
for load - generate dumpstream, load, query the repo via cmdline client, compare.
for dump - create repo, do some commits with cmdline client, dump, compare.
But this requres dumpstream generator and parser in python. Which will have
their own bugs.
Any thoughts?
--
./lxnt
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: svnadmin dump/load, svndumpfilter regression tests
Posted by Ben Collins-Sussman <su...@collab.net>.
Alexander Sabourenkov <sc...@lxnt.info> writes:
> Hello.
>
> I thought on how to check and be exactly sure that the svndumpfilter (
> and svnadmin dump too) work as expected and came up with the following:
This is issue #810: "dumper/loader regression tests sorely needed"
It would be great if you want to tackle this!
Start off by absorbing subversion/tests/clients/cmdline/README; it
will give you an overview of how our python tests work.
>
> 1. Create a test repository. Stuff there several revisions, with
> modifications, copies and deletes.
Our test framework already does this for every test.
>
> 2. Do a dump/load into another repository.
Easily doable; our test framework already uses dump/load to create a
new repository for each test.
>
> 3. Check out every revision out of both repositories and compare
> resulting working copies. Or maybe export instead of checkout.
Multiple checkouts will work fine. And our test framework is already
built around the idea of comparing trees: disk trees, 'svn status'
trees, and trees that result from parsing 'svn co/up' output.
>
> 4. Repeat step 2 using svndumpfilter. For example:
> - filter out a node that has only been modified.
> - filter out a node that has been copied
> - filter out a node that has been moved
> - filter out a node that has been moved and another node was created
> with the same name in later revision
> - etc
Sounds good.
>
> 5. Repeat step 3.
>
> This tests both dump and load operations simultaneously. If there is a
> bug in one of them, somebody will have a harder than possible time
> hunting it down.
>
> One way to test them separately is to
> for load - generate dumpstream, load, query the repo via cmdline client, compare.
>
> for dump - create repo, do some commits with cmdline client, dump, compare.
>
> But this requres dumpstream generator and parser in python. Which will
> have their own bugs.
No, no need to write a dumpstream generator/parser in python. The
whole point of our python tests is that the use the binary tools as
"black boxes", just like a user would. They're already invoking {svn,
svnadmin, svnlook}. You would just be adding 'svndumpfilter' to the
list.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org