diff options
Diffstat (limited to 'contrib/remote-helpers/test-bzr.sh')
-rwxr-xr-x | contrib/remote-helpers/test-bzr.sh | 492 |
1 files changed, 256 insertions, 236 deletions
diff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh index d9c32f4864..dce281f911 100755 --- a/contrib/remote-helpers/test-bzr.sh +++ b/contrib/remote-helpers/test-bzr.sh @@ -12,86 +12,90 @@ if ! test_have_prereq PYTHON; then test_done fi -if ! "$PYTHON_PATH" -c 'import bzrlib'; then +if ! python -c 'import bzrlib'; then skip_all='skipping remote-bzr tests; bzr not available' test_done fi check () { - (cd $1 && - git log --format='%s' -1 && - git symbolic-ref HEAD) > actual && - (echo $2 && - echo "refs/heads/$3") > expected && + echo $3 > expected && + git --git-dir=$1/.git log --format='%s' -1 $2 > actual test_cmp expected actual } bzr whoami "A U Thor <author@example.com>" test_expect_success 'cloning' ' - (bzr init bzrrepo && - cd bzrrepo && - echo one > content && - bzr add content && - bzr commit -m one - ) && - - git clone "bzr::$PWD/bzrrepo" gitrepo && - check gitrepo one master + ( + bzr init bzrrepo && + cd bzrrepo && + echo one > content && + bzr add content && + bzr commit -m one + ) && + + git clone "bzr::bzrrepo" gitrepo && + check gitrepo HEAD one ' test_expect_success 'pulling' ' - (cd bzrrepo && - echo two > content && - bzr commit -m two - ) && + ( + cd bzrrepo && + echo two > content && + bzr commit -m two + ) && - (cd gitrepo && git pull) && + (cd gitrepo && git pull) && - check gitrepo two master + check gitrepo HEAD two ' test_expect_success 'pushing' ' - (cd gitrepo && - echo three > content && - git commit -a -m three && - git push - ) && - - echo three > expected && - cat bzrrepo/content > actual && - test_cmp expected actual + ( + cd gitrepo && + echo three > content && + git commit -a -m three && + git push + ) && + + echo three > expected && + cat bzrrepo/content > actual && + test_cmp expected actual ' test_expect_success 'roundtrip' ' - (cd gitrepo && - git pull && - git log --format="%s" -1 origin/master > actual) && - echo three > expected && - test_cmp expected actual && + ( + cd gitrepo && + git pull && + git log --format="%s" -1 origin/master > actual + ) && + echo three > expected && + test_cmp expected actual && - (cd gitrepo && git push && git pull) && + (cd gitrepo && git push && git pull) && - (cd bzrrepo && - echo four > content && - bzr commit -m four - ) && + ( + cd bzrrepo && + echo four > content && + bzr commit -m four + ) && - (cd gitrepo && git pull && git push) && + (cd gitrepo && git pull && git push) && - check gitrepo four master && + check gitrepo HEAD four && - (cd gitrepo && - echo five > content && - git commit -a -m five && - git push && git pull - ) && + ( + cd gitrepo && + echo five > content && + git commit -a -m five && + git push && git pull + ) && - (cd bzrrepo && bzr revert) && + (cd bzrrepo && bzr revert) && - echo five > expected && - cat bzrrepo/content > actual && - test_cmp expected actual + echo five > expected && + cat bzrrepo/content > actual && + test_cmp expected actual ' cat > expected <<EOF @@ -101,29 +105,35 @@ cat > expected <<EOF EOF test_expect_success 'special modes' ' - (cd bzrrepo && - echo exec > executable - chmod +x executable && - bzr add executable - bzr commit -m exec && - ln -s content link - bzr add link - bzr commit -m link && - mkdir dir && - bzr add dir && - bzr commit -m dir) && - - (cd gitrepo && - git pull - git ls-tree HEAD > ../actual) && - - test_cmp expected actual && - - (cd gitrepo && - git cat-file -p HEAD:link > ../actual) && - - printf content > expected && - test_cmp expected actual + ( + cd bzrrepo && + echo exec > executable + chmod +x executable && + bzr add executable + bzr commit -m exec && + ln -s content link + bzr add link + bzr commit -m link && + mkdir dir && + bzr add dir && + bzr commit -m dir + ) && + + ( + cd gitrepo && + git pull + git ls-tree HEAD > ../actual + ) && + + test_cmp expected actual && + + ( + cd gitrepo && + git cat-file -p HEAD:link > ../actual + ) && + + printf content > expected && + test_cmp expected actual ' cat > expected <<EOF @@ -134,134 +144,145 @@ cat > expected <<EOF EOF test_expect_success 'moving directory' ' - (cd bzrrepo && - mkdir movedir && - echo one > movedir/one && - echo two > movedir/two && - bzr add movedir && - bzr commit -m movedir && - bzr mv movedir movedir-new && - bzr commit -m movedir-new) && - - (cd gitrepo && - git pull && - git ls-tree HEAD > ../actual) && - - test_cmp expected actual + ( + cd bzrrepo && + mkdir movedir && + echo one > movedir/one && + echo two > movedir/two && + bzr add movedir && + bzr commit -m movedir && + bzr mv movedir movedir-new && + bzr commit -m movedir-new + ) && + + ( + cd gitrepo && + git pull && + git ls-tree HEAD > ../actual + ) && + + test_cmp expected actual ' test_expect_success 'different authors' ' - (cd bzrrepo && - echo john >> content && - bzr commit -m john \ - --author "Jane Rey <jrey@example.com>" \ - --author "John Doe <jdoe@example.com>") && - - (cd gitrepo && - git pull && - git show --format="%an <%ae>, %cn <%ce>" --quiet > ../actual) && - - echo "Jane Rey <jrey@example.com>, A U Thor <author@example.com>" > expected && - test_cmp expected actual + ( + cd bzrrepo && + echo john >> content && + bzr commit -m john \ + --author "Jane Rey <jrey@example.com>" \ + --author "John Doe <jdoe@example.com>" + ) && + + ( + cd gitrepo && + git pull && + git show --format="%an <%ae>, %cn <%ce>" --quiet > ../actual + ) && + + echo "Jane Rey <jrey@example.com>, A U Thor <author@example.com>" > expected && + test_cmp expected actual ' +# cleanup previous stuff +rm -rf bzrrepo gitrepo + test_expect_success 'fetch utf-8 filenames' ' - mkdir -p tmp && cd tmp && - test_when_finished "cd .. && rm -rf tmp && LC_ALL=C" && - - LC_ALL=en_US.UTF-8 - export LC_ALL - ( - bzr init bzrrepo && - cd bzrrepo && - - echo test >> "ærø" && - bzr add "ærø" && - echo test >> "ø~?" && - bzr add "ø~?" && - bzr commit -m add-utf-8 && - echo test >> "ærø" && - bzr commit -m test-utf-8 && - bzr rm "ø~?" && - bzr mv "ærø" "ø~?" && - bzr commit -m bzr-mv-utf-8 - ) && - - ( - git clone "bzr::$PWD/bzrrepo" gitrepo && - cd gitrepo && - git -c core.quotepath=false ls-files > ../actual - ) && - echo "ø~?" > expected && - test_cmp expected actual + test_when_finished "rm -rf bzrrepo gitrepo && LC_ALL=C" && + + LC_ALL=en_US.UTF-8 + export LC_ALL + + ( + bzr init bzrrepo && + cd bzrrepo && + + echo test >> "ærø" && + bzr add "ærø" && + echo test >> "ø~?" && + bzr add "ø~?" && + bzr commit -m add-utf-8 && + echo test >> "ærø" && + bzr commit -m test-utf-8 && + bzr rm "ø~?" && + bzr mv "ærø" "ø~?" && + bzr commit -m bzr-mv-utf-8 + ) && + + ( + git clone "bzr::bzrrepo" gitrepo && + cd gitrepo && + git -c core.quotepath=false ls-files > ../actual + ) && + echo "ø~?" > expected && + test_cmp expected actual ' test_expect_success 'push utf-8 filenames' ' - mkdir -p tmp && cd tmp && - test_when_finished "cd .. && rm -rf tmp && LC_ALL=C" && + test_when_finished "rm -rf bzrrepo gitrepo && LC_ALL=C" && + + mkdir -p tmp && cd tmp && - LC_ALL=en_US.UTF-8 - export LC_ALL + LC_ALL=en_US.UTF-8 + export LC_ALL - ( - bzr init bzrrepo && - cd bzrrepo && + ( + bzr init bzrrepo && + cd bzrrepo && - echo one >> content && - bzr add content && - bzr commit -m one - ) && + echo one >> content && + bzr add content && + bzr commit -m one + ) && - ( - git clone "bzr::$PWD/bzrrepo" gitrepo && - cd gitrepo && + ( + git clone "bzr::bzrrepo" gitrepo && + cd gitrepo && - echo test >> "ærø" && - git add "ærø" && - git commit -m utf-8 && + echo test >> "ærø" && + git add "ærø" && + git commit -m utf-8 && - git push - ) && + git push + ) && - (cd bzrrepo && bzr ls > ../actual) && - printf "content\nærø\n" > expected && - test_cmp expected actual + (cd bzrrepo && bzr ls > ../actual) && + printf "content\nærø\n" > expected && + test_cmp expected actual ' test_expect_success 'pushing a merge' ' - mkdir -p tmp && cd tmp && - test_when_finished "cd .. && rm -rf tmp" && - - ( - bzr init bzrrepo && - cd bzrrepo && - echo one > content && - bzr add content && - bzr commit -m one - ) && - - git clone "bzr::$PWD/bzrrepo" gitrepo && - - ( - cd bzrrepo && - echo two > content && - bzr commit -m two - ) && - - ( - cd gitrepo && - echo three > content && - git commit -a -m three && - git fetch && - git merge origin/master || true && - echo three > content && - git commit -a --no-edit && - git push - ) && - - echo three > expected && - cat bzrrepo/content > actual && - test_cmp expected actual + test_when_finished "rm -rf bzrrepo gitrepo" && + + ( + bzr init bzrrepo && + cd bzrrepo && + echo one > content && + bzr add content && + bzr commit -m one + ) && + + git clone "bzr::bzrrepo" gitrepo && + + ( + cd bzrrepo && + echo two > content && + bzr commit -m two + ) && + + ( + cd gitrepo && + echo three > content && + git commit -a -m three && + git fetch && + git merge origin/master || true && + echo three > content && + git commit -a --no-edit && + git push + ) && + + echo three > expected && + cat bzrrepo/content > actual && + test_cmp expected actual ' cat > expected <<EOF @@ -271,71 +292,70 @@ origin/trunk EOF test_expect_success 'proper bzr repo' ' - mkdir -p tmp && cd tmp && - test_when_finished "cd .. && rm -rf tmp" && - - bzr init-repo bzrrepo && - - bzr init bzrrepo/trunk && - ( - cd bzrrepo/trunk && - echo one >> content && - bzr add content && - bzr commit -m one - ) && - - bzr branch bzrrepo/trunk bzrrepo/branch && - ( - cd bzrrepo/branch && - echo two >> content && - bzr commit -m one - ) && - - git clone "bzr::$PWD/bzrrepo" gitrepo && - ( - cd gitrepo && - git for-each-ref --format "%(refname:short)" refs/remotes/origin > ../actual - ) && - - test_cmp ../expected actual + test_when_finished "rm -rf bzrrepo gitrepo" && + + bzr init-repo bzrrepo && + + ( + bzr init bzrrepo/trunk && + cd bzrrepo/trunk && + echo one >> content && + bzr add content && + bzr commit -m one + ) && + + ( + bzr branch bzrrepo/trunk bzrrepo/branch && + cd bzrrepo/branch && + echo two >> content && + bzr commit -m one + ) && + + ( + git clone "bzr::bzrrepo" gitrepo && + cd gitrepo && + git for-each-ref --format "%(refname:short)" refs/remotes/origin > ../actual + ) && + + test_cmp expected actual ' test_expect_success 'strip' ' - # Do not imitate this style; always chdir inside a subshell instead - mkdir -p tmp && cd tmp && - test_when_finished "cd .. && rm -rf tmp" && + test_when_finished "rm -rf bzrrepo gitrepo" && - ( - bzr init bzrrepo && - cd bzrrepo && + ( + bzr init bzrrepo && + cd bzrrepo && - echo one >> content && - bzr add content && - bzr commit -m one && + echo one >> content && + bzr add content && + bzr commit -m one && - echo two >> content && - bzr commit -m two - ) && + echo two >> content && + bzr commit -m two + ) && - git clone "bzr::$PWD/bzrrepo" gitrepo && + git clone "bzr::bzrrepo" gitrepo && - ( - cd bzrrepo && - bzr uncommit --force && + ( + cd bzrrepo && + bzr uncommit --force && - echo three >> content && - bzr commit -m three && + echo three >> content && + bzr commit -m three && - echo four >> content && - bzr commit -m four && - bzr log --line | sed -e "s/^[0-9]\+: //" > ../expected - ) && + echo four >> content && + bzr commit -m four && + bzr log --line | sed -e "s/^[0-9][0-9]*: //" > ../expected + ) && - (cd gitrepo && - git fetch && - git log --format="%an %ad %s" --date=short origin/master > ../actual) && + ( + cd gitrepo && + git fetch && + git log --format="%an %ad %s" --date=short origin/master > ../actual + ) && - test_cmp expected actual + test_cmp expected actual ' test_done |