On Fri, Nov 07, 2008 at 13:53:15 +0100, Christian Kellermann wrote: > This patch includes the comments made by David and Jason. I have > slurped in two functions from Franchise for running the processes and > intertwining the stdout and stderr outputs so it fits the old script > behaviour. Nonetheless there are four tests left that fail. And I am > out of ideas why. I therefore ask the kind eyes of this list to have a > look at the output of my test run. This has been made on Mac OS X with > the haskell shell_harness.
I'm going to go ahead and apply this to encourage more people can try it
out. (You can ghc --make tests/shell_harness, although note that this
overwrites the Perl harness, which creates a spurious change in the
darcs repo)
We'll keep the Perl-based shell harness for a while longer
because of the failing tests.
Interestingly, Christian and I are seeing different tests fail.
For me (Linux), the failing tests are
filepath.sh (due to a bug in the test)
get.sh
init.sh (due to a bug in the test)
Since the tests are at fault, I'm still puzzling over why they suceed
in the current Perl harness, and fail with the Haskell one.
The tests that fail for Christian (MacOS X and OpenBSD)
hidden_conflict.sh
issue157_rollback_conflict.sh
issue279_get_extra.sh
pull.sh
Christian's output below
========================
hidden conflict
---------------
> Running hidden_conflict.sh ... failed.
> Probable reason :
> rm -rf temp1 temp2
> mkdir temp1
> cd temp1
> darcs init --darcs-2
> echo first > a
> darcs add a
> darcs record -am 'first'
> Finished recording patch 'first'
> cd ..
> darcs get temp1 temp2
> Copying patches, to get lazy repository hit ctrl-C...
> Finished getting.
>
> cd temp1
> echo second > a
> darcs record -am 'first to second'
> Finished recording patch 'first to second'
> echo first > a
> darcs record -am 'second back to first'
> Finished recording patch 'second back to first'
> cd ..
>
> cd temp2
> echo third > a
> darcs record -am 'first to third'
> No changes!
> cd ..
>
> cd temp1
> darcs pull -a ../temp2 | grep conflict
issue_157_rollback_conflict
---------------------------
> Running issue157_rollback_conflict.sh ... failed.
> Probable reason :
> # issue157: A test for how rollback handles dependencies and conflicts.
>
> not () { "$@" && exit 1 || :; }
>
> rm -rf temp1 temp2
>
> # set up the repository
> mkdir temp1
> cd temp1
> darcs init --darcs-2
> cd ..
>
> # do some work here
> cd temp1
> echo a > foo
> # Create three patches
> darcs record -lam AA
> Finished recording patch 'AA'
> echo b > foo
> darcs record -lam BB
> No changes!
> echo c > foo
> darcs record -lam CC
> No changes!
> # Rollback the last one
> darcs rollback -a -p CC -m 'rollback CC'
> No patches selected!
> grep b foo # reality check
issue279_get_extra
------------------
> Running issue279_get_extra.sh ... failed.
> Probable reason :
> # issue279: a conflict case resulting in "bug in get_extra" with old
> # format repos and "Malformed patch bundle" with darcs-2 repos.
>
> not () { "$@" && exit 1 || :; }
>
> rm -rf temp1 temp_a temp_b temp_c temp_d
> mkdir temp1
> cd temp1
> darcs init --darcs-2
> echo 0 > f
> darcs add f
> darcs record -am 00
> Finished recording patch '00'
> cd ..
>
> for r in a b c d; do
> darcs put --repodir temp1 temp_$r
> cd temp_$r;
> echo $r > f
> darcs record -am "patch:$r";
> cd ..
> done
> Finished applying...
> Put successful.
> No changes!
> Finished applying...
> Put successful.
> No changes!
> Finished applying...
> Put successful.
> No changes!
> Finished applying...
> Put successful.
> No changes!
>
> cd temp_d
> darcs pull -a ../temp_a
> No remote changes to pull in!
> darcs pull -a ../temp_b
> No remote changes to pull in!
> darcs pull -a ../temp_c
> No remote changes to pull in!
> cd ..
> cd temp_c
> darcs pull -a ../temp_a
> No remote changes to pull in!
> darcs pull -a ../temp_b
> No remote changes to pull in!
> echo rc > f
> darcs record -a -m rc
> Finished recording patch 'rc'
> cd ..
> cd temp_d
> darcs pull -a ../temp_c > log
>
> darcs failed: Error applying hunk to file ./f
> Error applying patch to the working directory.
>
> This may have left your working directory an inconsistent
> but recoverable state. If you had no un-recorded changes
> by using 'darcs revert' you should be able to make your
> working directory consistent again.
pull
----
> Running pull.sh ... failed.
> Probable reason :
> ## I would use the builtin !, but that has the wrong semantics.
> not () { "$@" && exit 1 || :; }
>
> # darcs does not support cygwin paths (/cygdrive/c/foo), so if
> # we want to run the test suite under Cygwin Bash, we must
> # convert accordingly
> portable_pwd () {
> if uname | grep -i cygwin > /dev/null; then
> cygpath -w `pwd`
> else
> pwd
> fi
> }
>
>
> rm -rf temp1 temp2
>
> mkdir temp1
> cd temp1
> darcs init
>
> cd ..
> mkdir temp2
> cd temp2
> darcs init
>
> mkdir one
> cd one
> mkdir two
> cd two
> echo darcs pull should work relative to the current directory
> darcs pull should work relative to the current directory
> darcs pull -a ../../../temp1 | grep -i 'No remote changes to pull in'
> No remote changes to pull in!
>
> echo -- darcs pull should pull into repo specified with --repo
> -- darcs pull should pull into repo specified with --repo
> cd ../.. # now in temp2
> darcs add one;
> darcs record --patch-name uno --all
> Finished recording patch 'uno'
> cd .. # now outside of any repo
> darcs pull --repodir temp1 --all temp2 | grep -i 'Finished pulling.' # temp2
> is not relative to temp1
> Finished pulling and applying.
>
> # set up server repo
> date > temp2/one/date.t
> darcs add --repodir ./temp2 one/date.t
> darcs record --repodir ./temp2 -a -m foo
> Finished recording patch 'foo'
>
> # set up client repo for failure
> if echo $OS | grep -i windows; then
> echo this test does not work on windows because it
> echo is not possible to chmod -r
> elif whoami | grep root; then
> echo root never gets permission denied
> else
> chmod a-rwx ./temp1/one # remove all permissions
> not darcs pull --repodir ./temp1 -a 2> err
> chmod u+rwx temp1/one # restore permission
> cat err
> grep 'permission denied' err
> rm -rf temp1/one
> fi
> Pulling from "/Users/klm/Tools/darcs/mydarcs/test-darcs-2/temp2"...
> Warning: ./one/date.t-0: takeFile ./one/date.t-0 in
> /Users/klm/Tools/darcs/mydarcs/test-darcs-2/temp1: openFd: permission denied
> (Permission denied)
>
> darcs failed: ./one/date.t: openBinaryFile: permission denied (Permission
> denied)
> Error applying patch to the working directory.
>
> This may have left your working directory an inconsistent
> but recoverable state. If you had no un-recorded changes
> by using 'darcs revert' you should be able to make your
> working directory consistent again.
>
>
> darcs failed: ./one/date.t: openBinaryFile: permission denied (Permission
> denied)
>
> cd temp1
>
> echo Before trying to pull from self, defaultrepo is something else
> not grep temp1 _darcs/prefs/defaultrepo
> Before trying to pull from self, defaultrepo is something else
>
> #return special message when you try to pull from yourself
> IFS=""
> DIR=`portable_pwd`
> portable_pwd
> not darcs pull --debug -a "$DIR" 2> out
> cat out
> Beginning identifying repository .
> Done identifying repository .
> Identified darcs-2 repo: /Users/klm/Tools/darcs/mydarcs/test-darcs-2/temp1
>
> darcs failed: Can't pull from current repository!
> grep 'Can.t pull from current repository' out
> darcs failed: Can't pull from current repository!
>
> not darcs pull --debug -a . 2> out
> cat out
> Beginning identifying repository .
> Done identifying repository .
> Identified darcs-2 repo: /Users/klm/Tools/darcs/mydarcs/test-darcs-2/temp1
>
> darcs failed: Can't pull from current repository!
> grep 'Can.t pull from current repository' out
> darcs failed: Can't pull from current repository!
>
> # and do not update the default repo to be the current di
> not grep temp1 _darcs/prefs/defaultrepo
>
> rm -f _darcs/prefs/defaultrepo
> not darcs pull 2> err
> grep 'please specify one' err
> darcs failed: No default repository to pull from, please specify one
> echo . > _darcs/prefs/defaultrepo
> not darcs pull --debug 2> err
> grep 'Can.t pull from current repository' err
> darcs failed: Can't pull from current repository!
>
> not darcs pull --debug ../* 2> out
> cat out
> Beginning identifying repository .
> Done identifying repository .
> Identified darcs-2 repo: /Users/klm/Tools/darcs/mydarcs/test-darcs-2/temp1
> Beginning identifying repository
> /Users/klm/Tools/darcs/mydarcs/test-darcs-2/README.test_maintainers.txt
> Done identifying repository
> /Users/klm/Tools/darcs/mydarcs/test-darcs-2/README.test_maintainers.txt
>
> darcs failed: Not a repository:
> /Users/klm/Tools/darcs/mydarcs/test-darcs-2/README.test_maintainers.txt
> (/Users/klm/Tools/darcs/mydarcs/test-darcs-2/README.test_maintainers.txt/_darcs/inventory:
> openBinaryFile: inappropriate type (Not a directory))
> not grep 'Can.t pull from current repository' out
> cd .. # now outside of any repo
>
> cd temp1
> echo a > foo
> darcs record -lam AA
> Finished recording patch 'AA'
> echo b > foo
> darcs record -lam BB
> No changes!
> echo c > foo
> darcs record -lam CC
> No changes!
> darcs rollback -p CC -a -m unC
> No patches selected!
> cd ..
> rm -rf temp2
> darcs get --to-patch B temp1 temp2
> darcs: Couldn't find patch matching "patch-name B"
> Copying patches, to get lazy repository hit ctrl-C...
--
Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow>
PGP Key ID: 08AC04F9
signature.asc
Description: Digital signature
_______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
