[darcs-users] darcs patch: tests: quote the repo variable in mv.pl ... (and 1 more)

David Roundy droundy at darcs.net
Wed Sep 3 10:14:58 UTC 2008


Thanks!

On Tue, Sep 2, 2008 at 4:26 PM, Petr Rockai <me at mornfall.net> wrote:
> -- (just noting down that it all seems equivalent up to this point; I am not
>   sure, but the not's might be a little more strict, I don't know if like
>   checks for error codes -- it doesn't seem to have information for that)

Yes, the shell test is more strict.  The perl tests generally don't
check the return codes when they call darcs, which often leads to
missed bugs.  One of the many reasons to switch to shell.

>> +if ln cs-n-3 CS-N-3; then # checking if we support hard links
>> +  ln cs-y-3 CS-Y-3
>>    # regardless of case-ok, we do NOT want this mv at all

> -- the "if ln ..." check might want to be validated by someone on cygwin/msys?
> I can only testify that on Linux with a filesystem without hardlinks, it
> properly errors out with ln: creating hard link `b' => `a': Operation not
> permitted

I'm definitely uncertain about windows, but so far as I know, noone
has run the tests on windows for a long, long time, so I think we can
just hope this works.

>> +REPO_ABS=`pwd`

> (correct I think, although I tend to say "`pwd`" myself, ... (possibly just a
> bad habit ...))

I'm not sure which is the bad habit.  I think the above works with
spaces in the path...

>> -  unlike($mv_out, qr/darcs failed/, 'mv should work with absolute path as a target argument.');

> (Hmm. Not a review thing, but are we sure that all darcs failures induce a
> "darcs failed" message? I imagine this might be a weakness in the perl tests?)

True darcs failures should always exit with "darcs failed", because we
have a top-level function that catches all exceptions and prints that
error message.  Failure exit codes (i.e. non-zero) don't always lead
to "darcs failed", since some commands (e.g. whatsnew) use exit code
to communicate with the user (similarly to diff).

But yes, this is a weakness in the perl tests, since they (almost)
never check the exit code.  And a strength of the shell tests is that
with -ev, we can't avoid explicitly testing the exit code (i.e. if we
want to ignore it we have to do so explicitly).

> Aye, got through to the end.

Thanks again!

David


More information about the darcs-users mailing list