author | Pierre-Yves David <pierre-yves.david@fb.com> |
Tue, 17 Nov 2015 20:25:15 -0800 | |
changeset 1535 | f6d10432499d |
parent 1290 | 8aa9a21156fe |
child 1806 | 9f42f819267b |
permissions | -rwxr-xr-x |
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 |
} |