[darcs-devel] Is darcs-unstable broken on win32?

Jason Dagit dagit at codersbase.com
Sun Oct 15 20:25:53 PDT 2006


Hello,

I don't know that I've ever run the test suite on windows before but I
just got things setup so I could build darcs under mingw.  When I
built I noticed a compile error (in Exec.lhs, Control.Execption was
imported but nothing used on win32).  I fixed the compile error and my
record failed.  I thought I'd run the test suite manually and this was
the output.  As you can see lots of fun things happen.

Is this because I'm trying to use mingw instead of cygwin or is
darcs-unstable currently very broken on windows?  I see one error
about my perl version (5.6) so that makes me think mingw is just not
supported but who knows.

Thanks,
Jason

$ make test
add.......................ok
add_in_subdir.............ok
amend-record..............ok
annotate..................ok
changes...................ok
changes_send_context......ok
changes_with_move.........ok
disable...................ok
dist......................ok
external..................NOK 1
#     Failed test (external.pl at line 32)
external..................ok 2/0# Looks like you failed 1 test of 3.
external..................dubious
        Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 1
        Failed 1/3 tests, 66.67% okay
init......................ok
match.....................ok
merging_newlines..........ok
missed_resolution.........ok
mv........................NOK 10
#     Failed test (mv.pl at line 123)
#                   '
# darcs failed:  There is no file or dir named C:/msys/1.0/abs_path.t
in the working directory.
# '
#           matches '(?-xism:darcs failed)'
mv........................NOK 11
#     Failed test (mv.pl at line 129)
#                   '
# darcs failed:  The target directory C:/msys/1.0 isn't known in
working directory, did you forget to add it?
# '
#           matches '(?-xism:darcs failed)'
mv........................ok 12/13# Looks like you planned 13 tests
but only ran 12.
mv........................dubious
        Test returned status 3 (wstat 768, 0x300)
DIED. FAILED tests 10-11, 13
        Failed 3/13 tests, 76.92% okay
obliterate................ok
optimize..................ok
pending_has_conflicts.....ok
printer...................skipped
        all skipped: sufficient UTF support may not be present under
this Perl version (5.006001)
pull......................ok
pull_many_files...........
#     Failed test (pull_many_files.pl at line 36)
#                   'darcs.exe:
_darcs/patches/pending.tentative_prepend-0: renameFile: permission
denied (Permission denied)
pull_many_files...........NOK 1#
# '
#     doesn't match '(?-xism:Finished pulling)'
# Looks like you failed 1 test of 1.
pull_many_files...........dubious
        Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 1
        Failed 1/1 tests, 0.00% okay
push......................ok
put.......................ok
record....................ok
repodir...................ok
resolve...................ok
rmdir.....................ok
set_scripts_executable....
#     Failed test (set_scripts_executable.pl at line 78)
set_scripts_executable....NOK 4# Looks like you failed 1 test of 5.
set_scripts_executable....dubious
        Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 4
        Failed 1/5 tests, 80.00% okay
setpref...................ok
tag.......................ok
unpull....................ok
unrecord..................ok
whatsnew..................ok
Failed Test               Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
external.pl                  1   256     3    1  33.33%  1
mv.pl                        3   768    13    4  30.77%  10-11 13
pull_many_files.pl           1   256     1    1 100.00%  1
set_scripts_executable.pl    1   256     5    1  20.00%  4
1 test skipped.
Failed 4/33 test scripts, 87.88% okay. 6/337 subtests failed, 98.22% okay.
Running addexitval.sh ...                        passed.
Running addmv.sh ...                             passed.
Running addrace.sh ...                           passed.
Running addrm.sh ...                             passed.
Running annotate.sh ...                          passed.
Running bad_pending_after_pull.sh ...            passed.
Running directory_confusion.sh ...               passed.
Running get_tag.sh ...                           passed.
Running harness.sh ...                           passed.
Running haskell_policy.sh ...                    passed.
Running illegal_mv.sh ...                        passed.
Running impossible_unrevert.sh ...               passed.
Running justrm.sh ...                            passed.
Running look_for_add.sh ...                      passed.
Running merge_three_patches.sh ...               passed.
Running mergeresolved.sh ...                     passed.
Running mv.sh ...                                passed.
Running mv_and_remove_tests.sh ...               passed.
Running no_pristine.sh ...                       passed.
Running nonewline.sh ...                         passed.
Running obliterate.sh ...                        passed.
Running partial.sh ...                           passed.
Running pending.sh ...                           FAILED!
Output from failed pending.sh:

test $DARCS || DARCS=$PWD/../darcs
ACTUAL_DARCS=`which $DARCS`
which $DARCS
DARCSPATH=`dirname $ACTUAL_DARCS`
dirname $ACTUAL_DARCS
export PATH="$DARCSPATH:$PATH"
echo $PATH
/c/Temp/darcs-unstable/tests/..:/c/Temp/darcs-unstable/tests/bin:.:/usr/local/bin:/mingw/bin:/bin:/c/ghc/ghc-6.6/bin:/c/ghc/:/c/Program
Files/Alias/Maya7.0/bin:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem:/c/Program
Files/ATI Technologies/ATI Control Panel:/c/Program Files/Common
Files/Roxio Shared/DLLShared:/c/Program Files/Common
Files/GTK/2.0/bin:/c/Program Files/Objective Caml/bin:/c/Program
Files/TortoiseCVS:/c/Program Files/OpenSceneGraph/bin:/c/Program
Files/WinSCP3/:/c/Program Files/QuickTime/QTSystem/:/c/cygwin/bin

export EMAIL=tester

rm -rf temp temp_0
mkdir temp
cd temp
$DARCS init
date > bla
$DARCS add bla
$DARCS record -a --patch-name=1
Finished recording patch '1'
echo hello > world
$DARCS add world
$DARCS whatsnew --dont-look-for-adds > wn1
cd ..
$DARCS get temp
Directory 'c:/Temp/darcs-unstable/tests/temp' already exists, creating
repository as 'c:/Temp/darcs-unstable/tests/temp_0'
Copying patch 1 of 1... done!
Finished getting.
cd temp_0
date > bla2
date >> bla
$DARCS add bla2
$DARCS record -a --patch-name=2
Finished recording patch '2'
$DARCS push -a ../temp
Finished applying...

cd ..
cd temp
$DARCS whatsnew --dont-look-for-adds > wn2
diff wn1 wn2

$DARCS record -a -m 'cleaning up for new test.'
Finished recording patch 'cleaning up for new test.'
date > foo.jpg
$DARCS add foo.jpg
$DARCS whatsnew
{
addfile ./foo.jpg
binary ./foo.jpg
}

$DARCS remove foo.jpg
(! $DARCS whatsnew) || exit 1
No changes!
Running perms.sh ...                             passed.
Running posthook.sh ...                          passed.
Running pull_binary.sh ...                       passed.
Running pull_two.sh ...                          passed.
Running push.sh ...                              passed.
Running query_manifest.sh ...                    passed.
Running recordrace.sh ...                        passed.
Running replace.sh ...                           passed.
Running replace_after_pending_add.sh ...         passed.
Running replace_after_pending_mv.sh ...          passed.
Running revert_interactive.sh ...                FAILED!
Output from failed revert_interactive.sh:

test $DARCS || DARCS=$PWD/../darcs

rm -rf temp1
mkdir temp1
cd temp1
$DARCS init
echo hello world > foo
$DARCS add foo
$DARCS record -a -m add -A x
Finished recording patch 'add'
echo goodbye world >> foo
echo y/y | tr / \\012 | $DARCS revert
hunk ./foo 2
+goodbye world
Shall I revert this change? (1/?)  [ynWsfqadjkc], or ? for help:
Do you really want to revert these changes? Finished reverting.
cmp foo _darcs/pristine/foo

# Now let's test a trickier revert where changes commute nontrivially.

cat > foo <<EOF

$DARCS record -a -A me -m cleanup
Finished recording patch 'cleanup'

mv foo foo.tmp
cat foo.tmp | grep -v b | grep -v d > foo

echo "nyy" | $DARCS revert
hunk ./foo 2
-b
Shall I revert this change? (1/?)  [ynWsfqadjkc], or ? for help:
hunk ./foo 3
-d
Shall I revert this change? (2/?)  [ynWsfqadjkc], or ? for help:
Do you really want to revert these changes? Finished reverting.

DARCS_DONT_COLOR=1 $DARCS wh > whatsnew
cat > correct <<EOF
diff -u correct whatsnew

# Try a situation where earlier (kept) changes are depended upon by the
# changes we want to revert:

$DARCS record -a -A me -m cleanup
Finished recording patch 'cleanup'

echo hello world > bar
$DARCS add bar
$DARCS replace hello goodbye bar

$DARCS revert <<EOF
addfile ./bar
Shall I revert this change? (1/?)  [ynWsfqadjkc], or ? for help:
darcs.exe: <stdin>: hWaitForInput: failed (No error)

Running rmconflict.sh ...                        passed.
Running sametwice.sh ...                         passed.
Running send.sh ...                              passed.
Running send_apply.sh ...                        passed.
Running several_commands.sh ...                  passed.
Running three_way_conflict.sh ...                passed.
Running tricky_unrecord.sh ...                   passed.
Running uniqueoptions.sh ...                     passed.
Running unpull.sh ...                            passed.
Running what_sl.sh ...                           passed.
TESTS FAILED!
        pending.sh
        revert_interactive.sh
make: *** [test_scripts] Error 1




More information about the darcs-devel mailing list