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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }