[Svnmerge] Test suite functional?
Michael Haggerty
mhagger at alum.mit.edu
Wed Jul 13 01:29:17 PDT 2011
Hello,
I am trying to use svnmerge.py as a library to help with a conversion of
a Subversion project to git. (git-svn understands svn:mergeinfo, but it
does not understand svnmerge.py metadata, so it needs some help.)
I would like to submit some patches to svnmerge.py that fix a problem
that I found and also help make it usable as a library. Before I
submitted the patches, I thought I should run the test suite. But...
Even with the unpatched version of svnmerge.py (from Subversion trunk
[1]), the test suite has some failures:
$ ./svnmerge_test.py
..............................................F.EE..E........
[see below for the full output]
Quite likely I'm not running the test suite correctly. For example, I
haven't compiled Subversion in the checked-out source tree; is that
necessary? (I'm running the test using the installed Subversion 1.6.17.)
Is the test suite known to be broken?
Am I doing something stupid? (Are there instructions somewhere for the
correct way to run the test suite?)
Thanks,
Michael
[1]
http://svn.apache.org/repos/asf/subversion/trunk/contrib/client-side/svnmerge
--
Michael Haggerty
mhagger at alum.mit.edu
http://softwareswirl.blogspot.com/
> $ ./svnmerge_test.py
> ..............................................F.EE..E........
> ======================================================================
> ERROR: Test that uninit works, for both merged and blocked revisions.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "./svnmerge_test.py", line 751, in testUninit
> self.svnmerge2(["init", self.test_repo_url + "/branches/testYYY-branch"])
> File "./svnmerge_test.py", line 256, in svnmerge2
> ret = svnmerge.main(args)
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 2361, in main
> cmd(branch_dir, branch_props)
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 1813, in __call__
> return self.func(*args, **kwargs)
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 1354, in action_init
> if is_url(cf_url) and check_url(cf_url):
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 942, in check_url
> return get_svninfo(url) != {}
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 960, in get_svninfo
> for L in launchsvn('info "%s"' % target):
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 325, in launchsvn
> return launch(cmd, **kwargs)
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 280, in launch
> raise LaunchError(p.returncode, cmd, stdout + stderr)
> LaunchError: (1, u'svn --non-interactive info "file:///tmp/__svnmerge_test/repo/branches/testXXX-branch"', 'file:///tmp/__svnmerge_test/repo/branches/testXXX-branch: (Not a valid URL)\n\nsvn: A problem occurred; see other errors for details\n')
>
> ======================================================================
> ERROR: testUninitForce (__main__.TestCase_TestRepo)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "./svnmerge_test.py", line 821, in testUninitForce
> self.svnmerge2(["init", self.test_repo_url + "/branches/testYYY-branch"])
> File "./svnmerge_test.py", line 256, in svnmerge2
> ret = svnmerge.main(args)
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 2361, in main
> cmd(branch_dir, branch_props)
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 1813, in __call__
> return self.func(*args, **kwargs)
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 1354, in action_init
> if is_url(cf_url) and check_url(cf_url):
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 942, in check_url
> return get_svninfo(url) != {}
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 960, in get_svninfo
> for L in launchsvn('info "%s"' % target):
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 325, in launchsvn
> return launch(cmd, **kwargs)
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 280, in launch
> raise LaunchError(p.returncode, cmd, stdout + stderr)
> LaunchError: (1, u'svn --non-interactive info "file:///tmp/__svnmerge_test/repo/branches/testXXX-branch"', 'file:///tmp/__svnmerge_test/repo/branches/testXXX-branch: (Not a valid URL)\n\nsvn: A problem occurred; see other errors for details\n')
>
> ======================================================================
> ERROR: test_invalid_url (__main__.TestCase_TestRepo)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "./svnmerge_test.py", line 1347, in test_invalid_url
> self.assertEqual(svnmerge.get_svninfo("file://foo/bar"), {})
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 960, in get_svninfo
> for L in launchsvn('info "%s"' % target):
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 325, in launchsvn
> return launch(cmd, **kwargs)
> File "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", line 280, in launch
> raise LaunchError(p.returncode, cmd, stdout + stderr)
> LaunchError: (1, 'svn --non-interactive info "file://foo/bar"', 'file://foo/bar: (Not a valid URL)\n\nsvn: A problem occurred; see other errors for details\n')
>
> ======================================================================
> FAIL: testTransitiveMergeWithBlock (__main__.TestCase_TestRepo)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "./svnmerge_test.py", line 698, in testTransitiveMergeWithBlock
> match=r"Committed revision 20")
> File "./svnmerge_test.py", line 496, in launch
> return TestCase_SvnMerge.launch(self, cmd, *args, **kwargs)
> File "./svnmerge_test.py", line 306, in launch
> return self._parseoutput(ret, out, **kwargs)
> File "./svnmerge_test.py", line 290, in _parseoutput
> "svnmerge failed, with this output:\n%s" % out)
> AssertionError: svnmerge failed, with this output:
> svn: Commit failed (details follow):
> svn: Aborting commit: '/tmp/__svnmerge_test/trunk' remains in conflict
>
>
> ----------------------------------------------------------------------
> Ran 61 tests in 53.759s
>
> FAILED (failures=1, errors=3)
More information about the Svnmerge
mailing list