]> Pileus Git - ~andy/git/blob - contrib/remote-helpers/test-hg.sh
Merge branch 'nd/attr-debug-fix' into maint
[~andy/git] / contrib / remote-helpers / test-hg.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2012 Felipe Contreras
4 #
5 # Base commands from hg-git tests:
6 # https://bitbucket.org/durin42/hg-git/src
7 #
8
9 test_description='Test remote-hg'
10
11 . ./test-lib.sh
12
13 if ! test_have_prereq PYTHON; then
14         skip_all='skipping remote-hg tests; python not available'
15         test_done
16 fi
17
18 if ! "$PYTHON_PATH" -c 'import mercurial'; then
19         skip_all='skipping remote-hg tests; mercurial not available'
20         test_done
21 fi
22
23 check () {
24         (cd $1 &&
25         git log --format='%s' -1 &&
26         git symbolic-ref HEAD) > actual &&
27         (echo $2 &&
28         echo "refs/heads/$3") > expected &&
29         test_cmp expected actual
30 }
31
32 setup () {
33         (
34         echo "[ui]"
35         echo "username = H G Wells <wells@example.com>"
36         ) >> "$HOME"/.hgrc
37 }
38
39 setup
40
41 test_expect_success 'cloning' '
42   test_when_finished "rm -rf gitrepo*" &&
43
44   (
45   hg init hgrepo &&
46   cd hgrepo &&
47   echo zero > content &&
48   hg add content &&
49   hg commit -m zero
50   ) &&
51
52   git clone "hg::$PWD/hgrepo" gitrepo &&
53   check gitrepo zero master
54 '
55
56 test_expect_success 'cloning with branches' '
57   test_when_finished "rm -rf gitrepo*" &&
58
59   (
60   cd hgrepo &&
61   hg branch next &&
62   echo next > content &&
63   hg commit -m next
64   ) &&
65
66   git clone "hg::$PWD/hgrepo" gitrepo &&
67   check gitrepo next next &&
68
69   (cd hgrepo && hg checkout default) &&
70
71   git clone "hg::$PWD/hgrepo" gitrepo2 &&
72   check gitrepo2 zero master
73 '
74
75 test_expect_success 'cloning with bookmarks' '
76   test_when_finished "rm -rf gitrepo*" &&
77
78   (
79   cd hgrepo &&
80   hg bookmark feature-a &&
81   echo feature-a > content &&
82   hg commit -m feature-a
83   ) &&
84
85   git clone "hg::$PWD/hgrepo" gitrepo &&
86   check gitrepo feature-a feature-a
87 '
88
89 test_expect_success 'cloning with detached head' '
90   test_when_finished "rm -rf gitrepo*" &&
91
92   (
93   cd hgrepo &&
94   hg update -r 0
95   ) &&
96
97   git clone "hg::$PWD/hgrepo" gitrepo &&
98   check gitrepo zero master
99 '
100
101 test_expect_success 'update bookmark' '
102   test_when_finished "rm -rf gitrepo*" &&
103
104   (
105   cd hgrepo &&
106   hg bookmark devel
107   ) &&
108
109   (
110   git clone "hg::$PWD/hgrepo" gitrepo &&
111   cd gitrepo &&
112   git checkout devel &&
113   echo devel > content &&
114   git commit -a -m devel &&
115   git push
116   ) &&
117
118   hg -R hgrepo bookmarks | grep "devel\s\+3:"
119 '
120
121 test_done