Mercurial > evolve
annotate tests/_exc-util.sh @ 832:46e81a5d2d94
exchange: add test case for A.3
Allow arbitrary arguments to dotest. This allow to push --force when the push
creates more heads.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 03 Mar 2014 14:59:43 -0800 |
parents | a6af6919888d |
children | 001f8508910a |
rev | line source |
---|---|
829
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
1 #!/bin/sh |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
2 |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
3 cat >> $HGRCPATH <<EOF |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
4 [web] |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
5 push_ssl = false |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
6 allow_push = * |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
7 [ui] |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
8 logtemplate ="{node|short} ({phase}): {desc}\n" |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
9 [phases] |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
10 publish=False |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
11 [extensions] |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
12 hgext.rebase= |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
13 EOF |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
14 echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
15 |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
16 mkcommit() { |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
17 echo "$1" > "$1" |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
18 hg add "$1" |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
19 hg ci -m "$1" |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
20 } |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
21 getid() { |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
22 hg id --hidden --debug -ir "$1" |
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
23 } |
830
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
24 |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
25 setuprepos() { |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
26 echo creating test repo for test case $1 |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
27 mkdir $1 |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
28 cd $1 |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
29 echo - pulldest |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
30 hg init pushdest |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
31 cd pushdest |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
32 mkcommit O |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
33 hg phase --public . |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
34 cd .. |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
35 echo - main |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
36 hg clone -q pushdest main |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
37 echo - pushdest |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
38 hg clone -q main pulldest |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
39 echo 'cd into `main` and proceed with env setup' |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
40 } |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
41 |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
42 dotest() { |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
43 # dotest TESTNAME [TARGETNODE] |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
44 |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
45 testcase=$1 |
832
46e81a5d2d94
exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
831
diff
changeset
|
46 shift |
46e81a5d2d94
exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
831
diff
changeset
|
47 target="$1" |
46e81a5d2d94
exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
831
diff
changeset
|
48 if [ $# -gt 0 ]; then |
46e81a5d2d94
exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
831
diff
changeset
|
49 shift |
46e81a5d2d94
exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
831
diff
changeset
|
50 fi |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
51 targetnode="" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
52 desccall="" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
53 cd $testcase |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
54 echo "## Running testcase $testcase" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
55 if [ -n "$target" ]; then |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
56 desccall="desc("\'"$target"\'")" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
57 targetnode="`hg -R main id -qr \"$desccall\"`" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
58 echo "# testing echange of \"$target\" ($targetnode)" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
59 fi |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
60 echo "## initial state" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
61 echo "# obstore: main" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
62 hg -R main debugobsolete |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
63 echo "# obstore: pushdest" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
64 hg -R pushdest debugobsolete |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
65 echo "# obstore: pulldest" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
66 hg -R pulldest debugobsolete |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
67 |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
68 if [ -n "$target" ]; then |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
69 echo "## pushing \"$target\"" from main to pushdest |
832
46e81a5d2d94
exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
831
diff
changeset
|
70 hg -R main push -r "$desccall" $@ pushdest |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
71 else |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
72 echo "## pushing from main to pushdest" |
832
46e81a5d2d94
exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
831
diff
changeset
|
73 hg -R main push pushdest $@ |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
74 fi |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
75 echo "## post push state" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
76 echo "# obstore: main" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
77 hg -R main debugobsolete |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
78 echo "# obstore: pushdest" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
79 hg -R pushdest debugobsolete |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
80 echo "# obstore: pulldest" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
81 hg -R pulldest debugobsolete |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
82 if [ -n "$target" ]; then |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
83 echo "## pulling \"$targetnode\"" from main into pulldest |
832
46e81a5d2d94
exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
831
diff
changeset
|
84 hg -R pulldest pull -r $targetnode $@ main |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
85 else |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
86 echo "## pulling from main into pulldest" |
832
46e81a5d2d94
exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
831
diff
changeset
|
87 hg -R pulldest pull main $@ |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
88 fi |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
89 echo "## post pull state" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
90 echo "# obstore: main" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
91 hg -R main debugobsolete |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
92 echo "# obstore: pushdest" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
93 hg -R pushdest debugobsolete |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
94 echo "# obstore: pulldest" |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
95 hg -R pulldest debugobsolete |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
96 |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
97 cd .. |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
98 |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
99 } |