On Fri, Oct 6, 2023 at 10:50 AM Daniel Sahlberg
<daniel.l.sahlb...@gmail.com> wrote:
>
> Den fre 6 okt. 2023 kl 06:26 skrev Nathan Hartman <hartman.nat...@gmail.com>:
(snip)
>> This is on trunk, as of r1912743 (the latest right now), Linux Debian,
>> Python 3.7.5, building SVN with --enable-maintainer-mode (this might
>> account for some extra text in the actual error message?).
>
>
> I also build with --enable-maintainer-mode and it has not caused problems for 
> me previously.

Thanks. In retrospect I don't think this is an issue.

Replying inline below...

>> [[[
>> W: Unexpected output
>> W: EXPECTED STDERR (regexp, match_all=False):
>> W: | svn: E200007: Cannot move path
>> '/home/nathan/ramdrive/svndev/svn\-trunk/subversion/tests/cmdline/svn\-test\-work/working_copies/copy_tests\-17'
>> into its own child
>> '/home/nathan/ramdrive/svndev/svn\-trunk/subversion/tests/cmdline/svn\-test\-work/working_copies/copy_tests\-17/F/B'
>
>
> Note the "\-", ie escaping of the - character. Can you check if removing the 
> re.escape (reverting r1910129) helps? Since you are on *nix, the re.escape 
> should not be needed (it was only there to account for the \ path separator 
> in Windows).

Ok I will check this.

>> W: ACTUAL STDERR:
>> W: | subversion/svn/move-cmd.c:102,
>> W: | subversion/svn/util.c:557,
>> W: | subversion/libsvn_client/copy.c:3495,
>> W: | subversion/libsvn_client/copy.c:3093: 
>> (apr_err=SVN_ERR_UNSUPPORTED_FEATURE)
>> W: | svn: E200007: Cannot move path
>> '/home/nathan/ramdrive/svndev/ramdisk/svn-trunk/working_copies/copy_tests-17'
>> into its own child
>> '/home/nathan/ramdrive/svndev/ramdisk/svn-trunk/working_copies/copy_tests-17/F/B'
>> W: CWD: 
>> /home/nathan/ramdrive/svndev/ramdisk/svn-trunk/working_copies/copy_tests-17
>
>
> Note the extra "/ramdisk" here, between svndev and svn-trunk, missing from 
> the expected error previously.
>
> What is the actual layout of your system? Do you have any specific arguments 
> when starting the test suite affecting the location of the test-repo/wc:s?

Yes, this ramdrive/.../ramdisk oddity does exist. I am using a
(modified to fit my system) version of the Makefile.svn in
tools/dev/unix-build, which builds all the dependencies and makes
running tests easy with [local|svn|serf] x [bdb|fsfs|fsx]. This
makefile can take a RAMDISK variable, e.g.,:

$ make svn-check RAMDISK=$SVN_DEV/ramdisk JAVA=no BRANCH=1.14.x

and then it puts all the test suite's temporary working copies in the
specified directory.

In the past, the whole tree was on Flash storage and I was using the
RAMDISK variable as above for testing. More recently, to avoid Flash
wear from lots of development activities, I started mounting a ramdisk
on a mountpoint in my home directory (/home/nathan/ramdrive). $SVN_DEV
points to /home/nathan/ramdrive/svndev. And inside there, for
historical reasons, is a directory called ramdisk, which is still
being passed in the RAMDISK variable. It is just a directory, not a
mountpoint for a second ramdisk. So, yes, it's stupid, but there is in
fact ~/ramdrive/svndev/ramdisk/...!! (And inconsistent naming:
ramdrive, ramdisk...)

The interesting thing, though, is that many tests in the test suite
compare expected error strings to actual error strings, involving
paths etc., and those are passing.

What I also find interesting, besides the added escaping, is that the
expected path is very different than the actual path. Showing these
here without escaping for illustration:

Expected: 
'/home/nathan/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svn-test-work/working_copies/copy_tests\-17'
Actual:   
'/home/nathan/ramdrive/svndev/ramdisk/svn-trunk/working_copies/copy_tests-17'

The actual path is correct.

I am assuming that in the expected path, 'svn-test-work' is probably a
symlink to ~/ramdrive/svndev/ramdisk. I can't check this at the moment
but I will try rerunning later and I'll inspect these locations.

Is there a way to single-step through Python code that I could use to
follow the test suite logic?

Cheers,
Nathan

Reply via email to