remote-bzr: add simple tests

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Felipe Contreras committed Nov 11, 2012 at 15:19 UTC 77b71edfb5f110f32a0071e72c1b6a3277e4222b
1 file changed +111
contrib/remote-helpers/test-bzr.sh new
+111
@@ -0,0 +1,111 @@
1 +#!/bin/sh
2 +#
3 +# Copyright (c) 2012 Felipe Contreras
4 +#
5 +
6 +test_description='Test remote-bzr'
7 +
8 +. ./test-lib.sh
9 +
10 +if ! test_have_prereq PYTHON; then
11 + skip_all='skipping remote-bzr tests; python not available'
12 + test_done
13 +fi
14 +
15 +if ! "$PYTHON_PATH" -c 'import bzrlib'; then
16 + skip_all='skipping remote-bzr tests; bzr not available'
17 + test_done
18 +fi
19 +
20 +cmd='
21 +import bzrlib
22 +bzrlib.initialize()
23 +import bzrlib.plugin
24 +bzrlib.plugin.load_plugins()
25 +import bzrlib.plugins.fastimport
26 +'
27 +
28 +if ! "$PYTHON_PATH" -c "$cmd"; then
29 + echo "consider setting BZR_PLUGIN_PATH=$HOME/.bazaar/plugins" 1>&2
30 + skip_all='skipping remote-bzr tests; bzr-fastimport not available'
31 + test_done
32 +fi
33 +
34 +check () {
35 + (cd $1 &&
36 + git log --format='%s' -1 &&
37 + git symbolic-ref HEAD) > actual &&
38 + (echo $2 &&
39 + echo "refs/heads/$3") > expected &&
40 + test_cmp expected actual
41 +}
42 +
43 +bzr whoami "A U Thor <author@example.com>"
44 +
45 +test_expect_success 'cloning' '
46 + (bzr init bzrrepo &&
47 + cd bzrrepo &&
48 + echo one > content &&
49 + bzr add content &&
50 + bzr commit -m one
51 + ) &&
52 +
53 + git clone "bzr::$PWD/bzrrepo" gitrepo &&
54 + check gitrepo one master
55 +'
56 +
57 +test_expect_success 'pulling' '
58 + (cd bzrrepo &&
59 + echo two > content &&
60 + bzr commit -m two
61 + ) &&
62 +
63 + (cd gitrepo && git pull) &&
64 +
65 + check gitrepo two master
66 +'
67 +
68 +test_expect_success 'pushing' '
69 + (cd gitrepo &&
70 + echo three > content &&
71 + git commit -a -m three &&
72 + git push
73 + ) &&
74 +
75 + echo three > expected &&
76 + cat bzrrepo/content > actual &&
77 + test_cmp expected actual
78 +'
79 +
80 +test_expect_success 'roundtrip' '
81 + (cd gitrepo &&
82 + git pull &&
83 + git log --format="%s" -1 origin/master > actual) &&
84 + echo three > expected &&
85 + test_cmp expected actual &&
86 +
87 + (cd gitrepo && git push && git pull) &&
88 +
89 + (cd bzrrepo &&
90 + echo four > content &&
91 + bzr commit -m four
92 + ) &&
93 +
94 + (cd gitrepo && git pull && git push) &&
95 +
96 + check gitrepo four master &&
97 +
98 + (cd gitrepo &&
99 + echo five > content &&
100 + git commit -a -m five &&
101 + git push && git pull
102 + ) &&
103 +
104 + (cd bzrrepo && bzr revert) &&
105 +
106 + echo five > expected &&
107 + cat bzrrepo/content > actual &&
108 + test_cmp expected actual
109 +'
110 +
111 +test_done