annotate tests/_exc-util.sh @ 1408:b3afdc0815d0

evolve: skip unstable changesets with multiple successorssets We were previously crashing when encountering them, but we want to be able to solve the other solvable troubles instead of stopping right there.
author Laurent Charignon <lcharignon@fb.com>
date Tue, 16 Jun 2015 17:56:23 -0700
parents 8aa9a21156fe
children 9f42f819267b
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 = *
1060
f6e0cfca1bf0 test: work around a bug in debugobsolete
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1035
diff changeset
7
829
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
8 [ui]
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
9 logtemplate ="{node|short} ({phase}): {desc}\n"
1060
f6e0cfca1bf0 test: work around a bug in debugobsolete
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1035
diff changeset
10
829
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
11 [phases]
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
12 publish=False
1060
f6e0cfca1bf0 test: work around a bug in debugobsolete
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1035
diff changeset
13
1035
59bc29c84ce0 evolve: hide the OBSEXC message behind a config option
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1001
diff changeset
14 [experimental]
1088
528c066cd51c drop the debug output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1060
diff changeset
15 verbose-obsolescence-exchange=false
1089
cdd22a5e5ef1 enable bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1088
diff changeset
16 bundle2-exp=true
1290
8aa9a21156fe tests: ensure we keep capturing output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1185
diff changeset
17 bundle2-output-capture=True
1060
f6e0cfca1bf0 test: work around a bug in debugobsolete
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1035
diff changeset
18
f6e0cfca1bf0 test: work around a bug in debugobsolete
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1035
diff changeset
19 [alias]
f6e0cfca1bf0 test: work around a bug in debugobsolete
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1035
diff changeset
20 debugobsolete=debugobsolete -d '0 0'
f6e0cfca1bf0 test: work around a bug in debugobsolete
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1035
diff changeset
21
829
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
22 [extensions]
848
001f8508910a exchange: add test case for D.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 832
diff changeset
23 hgext.strip=
829
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
24 EOF
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
25 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
26
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
27 mkcommit() {
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
28 echo "$1" > "$1"
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
29 hg add "$1"
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
30 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
31 }
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
32 getid() {
1001
f7f4a1fac6c0 test: use `hg log` in the `getid` function
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 905
diff changeset
33 hg log --hidden --template '{node}\n' --rev "$1"
829
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
34 }
830
f3b3a09ba312 exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 829
diff changeset
35
f3b3a09ba312 exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 829
diff changeset
36 setuprepos() {
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 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
38 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
39 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
40 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
41 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
42 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
43 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
44 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
45 cd ..
f3b3a09ba312 exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 829
diff changeset
46 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
47 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
48 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
49 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
50 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
51 }
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
52
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
53 dotest() {
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
54 # dotest TESTNAME [TARGETNODE]
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
55
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
56 testcase=$1
832
46e81a5d2d94 exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 831
diff changeset
57 shift
46e81a5d2d94 exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 831
diff changeset
58 target="$1"
46e81a5d2d94 exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 831
diff changeset
59 if [ $# -gt 0 ]; then
46e81a5d2d94 exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 831
diff changeset
60 shift
46e81a5d2d94 exchange: add test case for A.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 831
diff changeset
61 fi
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
62 targetnode=""
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
63 desccall=""
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
64 cd $testcase
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
65 echo "## Running testcase $testcase"
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
66 if [ -n "$target" ]; then
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
67 desccall="desc("\'"$target"\'")"
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
68 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
69 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
70 fi
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
71 echo "## initial state"
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
72 echo "# obstore: main"
905
b177fde040dd exchange: use fixed order for obstore content
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 848
diff changeset
73 hg -R main debugobsolete | sort
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
74 echo "# obstore: pushdest"
905
b177fde040dd exchange: use fixed order for obstore content
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 848
diff changeset
75 hg -R pushdest debugobsolete | sort
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
76 echo "# obstore: pulldest"
905
b177fde040dd exchange: use fixed order for obstore content
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 848
diff changeset
77 hg -R pulldest debugobsolete | sort
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
78
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
79 if [ -n "$target" ]; then
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
80 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
81 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
82 else
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
83 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
84 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
85 fi
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
86 echo "## post push state"
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
87 echo "# obstore: main"
905
b177fde040dd exchange: use fixed order for obstore content
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 848
diff changeset
88 hg -R main debugobsolete | sort
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
89 echo "# obstore: pushdest"
905
b177fde040dd exchange: use fixed order for obstore content
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 848
diff changeset
90 hg -R pushdest debugobsolete | sort
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
91 echo "# obstore: pulldest"
905
b177fde040dd exchange: use fixed order for obstore content
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 848
diff changeset
92 hg -R pulldest debugobsolete | sort
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
93 if [ -n "$target" ]; then
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
94 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
95 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
96 else
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
97 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
98 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
99 fi
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
100 echo "## post pull state"
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
101 echo "# obstore: main"
905
b177fde040dd exchange: use fixed order for obstore content
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 848
diff changeset
102 hg -R main debugobsolete | sort
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
103 echo "# obstore: pushdest"
905
b177fde040dd exchange: use fixed order for obstore content
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 848
diff changeset
104 hg -R pushdest debugobsolete | sort
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
105 echo "# obstore: pulldest"
905
b177fde040dd exchange: use fixed order for obstore content
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 848
diff changeset
106 hg -R pulldest debugobsolete | sort
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
107
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
108 cd ..
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
109
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
110 }