Mercurial > hg
comparison tests/test-hook.t @ 25478:d19787db6fe0
tests: simplify printenv calls
Make printenv executable so that we don't need python, TESTDIR, or
quoting.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 08 Jun 2015 15:10:15 -0500 |
parents | b5311068077e |
children | a99fee62611d |
comparison
equal
deleted
inserted
replaced
25477:a372f7b4463b | 25478:d19787db6fe0 |
---|---|
15 | 15 |
16 $ hg init a | 16 $ hg init a |
17 $ cd a | 17 $ cd a |
18 $ cat > .hg/hgrc <<EOF | 18 $ cat > .hg/hgrc <<EOF |
19 > [hooks] | 19 > [hooks] |
20 > commit = sh -c "HG_LOCAL= HG_TAG= python \"$TESTDIR/printenv.py\" commit" | 20 > commit = sh -c "HG_LOCAL= HG_TAG= printenv.py commit" |
21 > commit.b = sh -c "HG_LOCAL= HG_TAG= python \"$TESTDIR/printenv.py\" commit.b" | 21 > commit.b = sh -c "HG_LOCAL= HG_TAG= printenv.py commit.b" |
22 > precommit = sh -c "HG_LOCAL= HG_NODE= HG_TAG= python \"$TESTDIR/printenv.py\" precommit" | 22 > precommit = sh -c "HG_LOCAL= HG_NODE= HG_TAG= printenv.py precommit" |
23 > pretxncommit = sh -c "HG_LOCAL= HG_TAG= python \"$TESTDIR/printenv.py\" pretxncommit" | 23 > pretxncommit = sh -c "HG_LOCAL= HG_TAG= printenv.py pretxncommit" |
24 > pretxncommit.tip = hg -q tip | 24 > pretxncommit.tip = hg -q tip |
25 > pre-identify = python "$TESTDIR/printenv.py" pre-identify 1 | 25 > pre-identify = printenv.py pre-identify 1 |
26 > pre-cat = python "$TESTDIR/printenv.py" pre-cat | 26 > pre-cat = printenv.py pre-cat |
27 > post-cat = python "$TESTDIR/printenv.py" post-cat | 27 > post-cat = printenv.py post-cat |
28 > pretxnopen = sh -c "HG_LOCAL= HG_TAG= python \"$TESTDIR/printenv.py\" pretxnopen" | 28 > pretxnopen = sh -c "HG_LOCAL= HG_TAG= printenv.py pretxnopen" |
29 > pretxnclose = sh -c "HG_LOCAL= HG_TAG= python \"$TESTDIR/printenv.py\" pretxnclose" | 29 > pretxnclose = sh -c "HG_LOCAL= HG_TAG= printenv.py pretxnclose" |
30 > txnclose = sh -c "HG_LOCAL= HG_TAG= python \"$TESTDIR/printenv.py\" txnclose" | 30 > txnclose = sh -c "HG_LOCAL= HG_TAG= printenv.py txnclose" |
31 > txnabort.0 = python:$TESTTMP/txnabort.checkargs.py:showargs | 31 > txnabort.0 = python:$TESTTMP/txnabort.checkargs.py:showargs |
32 > txnabort.1 = sh -c "HG_LOCAL= HG_TAG= python \"$TESTDIR/printenv.py\" txnabort" | 32 > txnabort.1 = sh -c "HG_LOCAL= HG_TAG= printenv.py txnabort" |
33 > txnclose.checklock = sh -c "hg debuglock > /dev/null" | 33 > txnclose.checklock = sh -c "hg debuglock > /dev/null" |
34 > EOF | 34 > EOF |
35 $ echo a > a | 35 $ echo a > a |
36 $ hg add a | 36 $ hg add a |
37 $ hg commit -m a | 37 $ hg commit -m a |
51 | 51 |
52 changegroup hooks can see env vars | 52 changegroup hooks can see env vars |
53 | 53 |
54 $ cat > .hg/hgrc <<EOF | 54 $ cat > .hg/hgrc <<EOF |
55 > [hooks] | 55 > [hooks] |
56 > prechangegroup = python "$TESTDIR/printenv.py" prechangegroup | 56 > prechangegroup = printenv.py prechangegroup |
57 > changegroup = python "$TESTDIR/printenv.py" changegroup | 57 > changegroup = printenv.py changegroup |
58 > incoming = python "$TESTDIR/printenv.py" incoming | 58 > incoming = printenv.py incoming |
59 > EOF | 59 > EOF |
60 | 60 |
61 pretxncommit and commit hooks can see both parents of merge | 61 pretxncommit and commit hooks can see both parents of merge |
62 | 62 |
63 $ cd ../a | 63 $ cd ../a |
126 | 126 |
127 tag hooks can see env vars | 127 tag hooks can see env vars |
128 | 128 |
129 $ cd ../a | 129 $ cd ../a |
130 $ cat >> .hg/hgrc <<EOF | 130 $ cat >> .hg/hgrc <<EOF |
131 > pretag = python "$TESTDIR/printenv.py" pretag | 131 > pretag = printenv.py pretag |
132 > tag = sh -c "HG_PARENT1= HG_PARENT2= python \"$TESTDIR/printenv.py\" tag" | 132 > tag = sh -c "HG_PARENT1= HG_PARENT2= printenv.py tag" |
133 > EOF | 133 > EOF |
134 $ hg tag -d '3 0' a | 134 $ hg tag -d '3 0' a |
135 pretag hook: HG_LOCAL=0 HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_TAG=a | 135 pretag hook: HG_LOCAL=0 HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_TAG=a |
136 precommit hook: HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2 | 136 precommit hook: HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2 |
137 pretxnopen hook: HG_TXNID=TXN:* HG_TXNNAME=commit (glob) | 137 pretxnopen hook: HG_TXNID=TXN:* HG_TXNNAME=commit (glob) |
146 pretag hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=la | 146 pretag hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=la |
147 tag hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=la | 147 tag hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=la |
148 | 148 |
149 pretag hook can forbid tagging | 149 pretag hook can forbid tagging |
150 | 150 |
151 $ echo "pretag.forbid = python \"$TESTDIR/printenv.py\" pretag.forbid 1" >> .hg/hgrc | 151 $ echo "pretag.forbid = printenv.py pretag.forbid 1" >> .hg/hgrc |
152 $ hg tag -d '4 0' fa | 152 $ hg tag -d '4 0' fa |
153 pretag hook: HG_LOCAL=0 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fa | 153 pretag hook: HG_LOCAL=0 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fa |
154 pretag.forbid hook: HG_LOCAL=0 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fa | 154 pretag.forbid hook: HG_LOCAL=0 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fa |
155 abort: pretag.forbid hook exited with status 1 | 155 abort: pretag.forbid hook exited with status 1 |
156 [255] | 156 [255] |
162 | 162 |
163 pretxncommit hook can see changeset, can roll back txn, changeset no | 163 pretxncommit hook can see changeset, can roll back txn, changeset no |
164 more there after | 164 more there after |
165 | 165 |
166 $ echo "pretxncommit.forbid0 = hg tip -q" >> .hg/hgrc | 166 $ echo "pretxncommit.forbid0 = hg tip -q" >> .hg/hgrc |
167 $ echo "pretxncommit.forbid1 = python \"$TESTDIR/printenv.py\" pretxncommit.forbid 1" >> .hg/hgrc | 167 $ echo "pretxncommit.forbid1 = printenv.py pretxncommit.forbid 1" >> .hg/hgrc |
168 $ echo z > z | 168 $ echo z > z |
169 $ hg add z | 169 $ hg add z |
170 $ hg -q tip | 170 $ hg -q tip |
171 4:539e4b31b6dc | 171 4:539e4b31b6dc |
172 $ hg commit -m 'fail' -d '4 0' | 172 $ hg commit -m 'fail' -d '4 0' |
200 undo.phaseroots | 200 undo.phaseroots |
201 | 201 |
202 | 202 |
203 precommit hook can prevent commit | 203 precommit hook can prevent commit |
204 | 204 |
205 $ echo "precommit.forbid = python \"$TESTDIR/printenv.py\" precommit.forbid 1" >> .hg/hgrc | 205 $ echo "precommit.forbid = printenv.py precommit.forbid 1" >> .hg/hgrc |
206 $ hg commit -m 'fail' -d '4 0' | 206 $ hg commit -m 'fail' -d '4 0' |
207 precommit hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 | 207 precommit hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 |
208 precommit.forbid hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 | 208 precommit.forbid hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 |
209 abort: precommit.forbid hook exited with status 1 | 209 abort: precommit.forbid hook exited with status 1 |
210 [255] | 210 [255] |
211 $ hg -q tip | 211 $ hg -q tip |
212 4:539e4b31b6dc | 212 4:539e4b31b6dc |
213 | 213 |
214 preupdate hook can prevent update | 214 preupdate hook can prevent update |
215 | 215 |
216 $ echo "preupdate = python \"$TESTDIR/printenv.py\" preupdate" >> .hg/hgrc | 216 $ echo "preupdate = printenv.py preupdate" >> .hg/hgrc |
217 $ hg update 1 | 217 $ hg update 1 |
218 preupdate hook: HG_PARENT1=ab228980c14d | 218 preupdate hook: HG_PARENT1=ab228980c14d |
219 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | 219 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
220 | 220 |
221 update hook | 221 update hook |
222 | 222 |
223 $ echo "update = python \"$TESTDIR/printenv.py\" update" >> .hg/hgrc | 223 $ echo "update = printenv.py update" >> .hg/hgrc |
224 $ hg update | 224 $ hg update |
225 preupdate hook: HG_PARENT1=539e4b31b6dc | 225 preupdate hook: HG_PARENT1=539e4b31b6dc |
226 update hook: HG_ERROR=0 HG_PARENT1=539e4b31b6dc | 226 update hook: HG_ERROR=0 HG_PARENT1=539e4b31b6dc |
227 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | 227 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
228 | 228 |
229 pushkey hook | 229 pushkey hook |
230 | 230 |
231 $ echo "pushkey = python \"$TESTDIR/printenv.py\" pushkey" >> .hg/hgrc | 231 $ echo "pushkey = printenv.py pushkey" >> .hg/hgrc |
232 $ cd ../b | 232 $ cd ../b |
233 $ hg bookmark -r null foo | 233 $ hg bookmark -r null foo |
234 $ hg push -B foo ../a | 234 $ hg push -B foo ../a |
235 pushing to ../a | 235 pushing to ../a |
236 searching for changes | 236 searching for changes |
243 [1] | 243 [1] |
244 $ cd ../a | 244 $ cd ../a |
245 | 245 |
246 listkeys hook | 246 listkeys hook |
247 | 247 |
248 $ echo "listkeys = python \"$TESTDIR/printenv.py\" listkeys" >> .hg/hgrc | 248 $ echo "listkeys = printenv.py listkeys" >> .hg/hgrc |
249 $ hg bookmark -r null bar | 249 $ hg bookmark -r null bar |
250 $ cd ../b | 250 $ cd ../b |
251 $ hg pull -B bar ../a | 251 $ hg pull -B bar ../a |
252 pulling from ../a | 252 pulling from ../a |
253 listkeys hook: HG_NAMESPACE=bookmarks HG_VALUES={'bar': '0000000000000000000000000000000000000000', 'foo': '0000000000000000000000000000000000000000'} | 253 listkeys hook: HG_NAMESPACE=bookmarks HG_VALUES={'bar': '0000000000000000000000000000000000000000', 'foo': '0000000000000000000000000000000000000000'} |
257 listkeys hook: HG_NAMESPACE=phases HG_VALUES={'cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b': '1', 'publishing': 'True'} | 257 listkeys hook: HG_NAMESPACE=phases HG_VALUES={'cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b': '1', 'publishing': 'True'} |
258 $ cd ../a | 258 $ cd ../a |
259 | 259 |
260 test that prepushkey can prevent incoming keys | 260 test that prepushkey can prevent incoming keys |
261 | 261 |
262 $ echo "prepushkey = python \"$TESTDIR/printenv.py\" prepushkey.forbid 1" >> .hg/hgrc | 262 $ echo "prepushkey = printenv.py prepushkey.forbid 1" >> .hg/hgrc |
263 $ cd ../b | 263 $ cd ../b |
264 $ hg bookmark -r null baz | 264 $ hg bookmark -r null baz |
265 $ hg push -B baz ../a | 265 $ hg push -B baz ../a |
266 pushing to ../a | 266 pushing to ../a |
267 searching for changes | 267 searching for changes |
278 [1] | 278 [1] |
279 $ cd ../a | 279 $ cd ../a |
280 | 280 |
281 test that prelistkeys can prevent listing keys | 281 test that prelistkeys can prevent listing keys |
282 | 282 |
283 $ echo "prelistkeys = python \"$TESTDIR/printenv.py\" prelistkeys.forbid 1" >> .hg/hgrc | 283 $ echo "prelistkeys = printenv.py prelistkeys.forbid 1" >> .hg/hgrc |
284 $ hg bookmark -r null quux | 284 $ hg bookmark -r null quux |
285 $ cd ../b | 285 $ cd ../b |
286 $ hg pull -B quux ../a | 286 $ hg pull -B quux ../a |
287 pulling from ../a | 287 pulling from ../a |
288 prelistkeys.forbid hook: HG_NAMESPACE=bookmarks | 288 prelistkeys.forbid hook: HG_NAMESPACE=bookmarks |
296 $ cd ../b | 296 $ cd ../b |
297 $ hg -q tip | 297 $ hg -q tip |
298 3:07f3376c1e65 | 298 3:07f3376c1e65 |
299 $ cat > .hg/hgrc <<EOF | 299 $ cat > .hg/hgrc <<EOF |
300 > [hooks] | 300 > [hooks] |
301 > prechangegroup.forbid = python "$TESTDIR/printenv.py" prechangegroup.forbid 1 | 301 > prechangegroup.forbid = printenv.py prechangegroup.forbid 1 |
302 > EOF | 302 > EOF |
303 $ hg pull ../a | 303 $ hg pull ../a |
304 pulling from ../a | 304 pulling from ../a |
305 searching for changes | 305 searching for changes |
306 prechangegroup.forbid hook: HG_SOURCE=pull HG_TXNID=TXN:* HG_URL=file:$TESTTMP/a (glob) | 306 prechangegroup.forbid hook: HG_SOURCE=pull HG_TXNID=TXN:* HG_URL=file:$TESTTMP/a (glob) |
311 incoming changes no longer there after | 311 incoming changes no longer there after |
312 | 312 |
313 $ cat > .hg/hgrc <<EOF | 313 $ cat > .hg/hgrc <<EOF |
314 > [hooks] | 314 > [hooks] |
315 > pretxnchangegroup.forbid0 = hg tip -q | 315 > pretxnchangegroup.forbid0 = hg tip -q |
316 > pretxnchangegroup.forbid1 = python "$TESTDIR/printenv.py" pretxnchangegroup.forbid 1 | 316 > pretxnchangegroup.forbid1 = printenv.py pretxnchangegroup.forbid 1 |
317 > EOF | 317 > EOF |
318 $ hg pull ../a | 318 $ hg pull ../a |
319 pulling from ../a | 319 pulling from ../a |
320 searching for changes | 320 searching for changes |
321 adding changesets | 321 adding changesets |
334 outgoing hooks can see env vars | 334 outgoing hooks can see env vars |
335 | 335 |
336 $ rm .hg/hgrc | 336 $ rm .hg/hgrc |
337 $ cat > ../a/.hg/hgrc <<EOF | 337 $ cat > ../a/.hg/hgrc <<EOF |
338 > [hooks] | 338 > [hooks] |
339 > preoutgoing = python "$TESTDIR/printenv.py" preoutgoing | 339 > preoutgoing = printenv.py preoutgoing |
340 > outgoing = python "$TESTDIR/printenv.py" outgoing | 340 > outgoing = printenv.py outgoing |
341 > EOF | 341 > EOF |
342 $ hg pull ../a | 342 $ hg pull ../a |
343 pulling from ../a | 343 pulling from ../a |
344 searching for changes | 344 searching for changes |
345 preoutgoing hook: HG_SOURCE=pull | 345 preoutgoing hook: HG_SOURCE=pull |
353 $ hg rollback | 353 $ hg rollback |
354 repository tip rolled back to revision 3 (undo pull) | 354 repository tip rolled back to revision 3 (undo pull) |
355 | 355 |
356 preoutgoing hook can prevent outgoing changes | 356 preoutgoing hook can prevent outgoing changes |
357 | 357 |
358 $ echo "preoutgoing.forbid = python \"$TESTDIR/printenv.py\" preoutgoing.forbid 1" >> ../a/.hg/hgrc | 358 $ echo "preoutgoing.forbid = printenv.py preoutgoing.forbid 1" >> ../a/.hg/hgrc |
359 $ hg pull ../a | 359 $ hg pull ../a |
360 pulling from ../a | 360 pulling from ../a |
361 searching for changes | 361 searching for changes |
362 preoutgoing hook: HG_SOURCE=pull | 362 preoutgoing hook: HG_SOURCE=pull |
363 preoutgoing.forbid hook: HG_SOURCE=pull | 363 preoutgoing.forbid hook: HG_SOURCE=pull |
367 outgoing hooks work for local clones | 367 outgoing hooks work for local clones |
368 | 368 |
369 $ cd .. | 369 $ cd .. |
370 $ cat > a/.hg/hgrc <<EOF | 370 $ cat > a/.hg/hgrc <<EOF |
371 > [hooks] | 371 > [hooks] |
372 > preoutgoing = python "$TESTDIR/printenv.py" preoutgoing | 372 > preoutgoing = printenv.py preoutgoing |
373 > outgoing = python "$TESTDIR/printenv.py" outgoing | 373 > outgoing = printenv.py outgoing |
374 > EOF | 374 > EOF |
375 $ hg clone a c | 375 $ hg clone a c |
376 preoutgoing hook: HG_SOURCE=clone | 376 preoutgoing hook: HG_SOURCE=clone |
377 outgoing hook: HG_NODE=0000000000000000000000000000000000000000 HG_SOURCE=clone | 377 outgoing hook: HG_NODE=0000000000000000000000000000000000000000 HG_SOURCE=clone |
378 updating to branch default | 378 updating to branch default |
379 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | 379 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
380 $ rm -rf c | 380 $ rm -rf c |
381 | 381 |
382 preoutgoing hook can prevent outgoing changes for local clones | 382 preoutgoing hook can prevent outgoing changes for local clones |
383 | 383 |
384 $ echo "preoutgoing.forbid = python \"$TESTDIR/printenv.py\" preoutgoing.forbid 1" >> a/.hg/hgrc | 384 $ echo "preoutgoing.forbid = printenv.py preoutgoing.forbid 1" >> a/.hg/hgrc |
385 $ hg clone a zzz | 385 $ hg clone a zzz |
386 preoutgoing hook: HG_SOURCE=clone | 386 preoutgoing hook: HG_SOURCE=clone |
387 preoutgoing.forbid hook: HG_SOURCE=clone | 387 preoutgoing.forbid hook: HG_SOURCE=clone |
388 abort: preoutgoing.forbid hook exited with status 1 | 388 abort: preoutgoing.forbid hook exited with status 1 |
389 [255] | 389 [255] |