author | Pierre-Yves David <pierre-yves.david@fb.com> |
Fri, 29 May 2015 15:18:49 -0700 | |
changeset 25391 | c66d95aa1270 |
parent 23277 | 581d3bc03aad |
permissions | -rw-r--r-- |
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
20896
diff
changeset
|
1 |
#require serve fifo |
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
20896
diff
changeset
|
2 |
|
12413 | 3 |
Test hangup signal in the middle of transaction |
642 | 4 |
|
12413 | 5 |
$ hg init |
6 |
$ mkfifo p |
|
16342
7e24d34837a9
tests: make test-hup more race-proof
Matt Mackall <mpm@selenic.com>
parents:
16299
diff
changeset
|
7 |
$ hg serve --stdio < p 1>out 2>&1 & |
12413 | 8 |
$ P=$! |
16299
853ffcafecfa
tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents:
15455
diff
changeset
|
9 |
|
853ffcafecfa
tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents:
15455
diff
changeset
|
10 |
Do test while holding fifo open |
853ffcafecfa
tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents:
15455
diff
changeset
|
11 |
|
853ffcafecfa
tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents:
15455
diff
changeset
|
12 |
$ ( |
853ffcafecfa
tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents:
15455
diff
changeset
|
13 |
> echo lock |
853ffcafecfa
tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents:
15455
diff
changeset
|
14 |
> echo addchangegroup |
20896
9fae01831dea
tests: prevent test-hup from hanging forever if the transaction does not start
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
16364
diff
changeset
|
15 |
> start=`date +%s` |
9fae01831dea
tests: prevent test-hup from hanging forever if the transaction does not start
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
16364
diff
changeset
|
16 |
> # 10 second seems much enough to let the server catch up |
9fae01831dea
tests: prevent test-hup from hanging forever if the transaction does not start
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
16364
diff
changeset
|
17 |
> deadline=`expr $start + 10` |
9fae01831dea
tests: prevent test-hup from hanging forever if the transaction does not start
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
16364
diff
changeset
|
18 |
> while [ ! -s .hg/store/journal ]; do |
9fae01831dea
tests: prevent test-hup from hanging forever if the transaction does not start
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
16364
diff
changeset
|
19 |
> sleep 0; |
9fae01831dea
tests: prevent test-hup from hanging forever if the transaction does not start
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
16364
diff
changeset
|
20 |
> if [ `date +%s` -gt $deadline ]; then |
9fae01831dea
tests: prevent test-hup from hanging forever if the transaction does not start
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
16364
diff
changeset
|
21 |
> echo "transaction did not start after 10 seconds" >&2; |
9fae01831dea
tests: prevent test-hup from hanging forever if the transaction does not start
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
16364
diff
changeset
|
22 |
> exit 1; |
9fae01831dea
tests: prevent test-hup from hanging forever if the transaction does not start
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
16364
diff
changeset
|
23 |
> fi |
9fae01831dea
tests: prevent test-hup from hanging forever if the transaction does not start
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
16364
diff
changeset
|
24 |
> done |
16299
853ffcafecfa
tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents:
15455
diff
changeset
|
25 |
> kill -HUP $P |
853ffcafecfa
tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents:
15455
diff
changeset
|
26 |
> ) > p |
16342
7e24d34837a9
tests: make test-hup more race-proof
Matt Mackall <mpm@selenic.com>
parents:
16299
diff
changeset
|
27 |
|
16344
fb765286f2f9
tests: avoid zombie lockup with test-hup
Matt Mackall <mpm@selenic.com>
parents:
16342
diff
changeset
|
28 |
$ wait |
16342
7e24d34837a9
tests: make test-hup more race-proof
Matt Mackall <mpm@selenic.com>
parents:
16299
diff
changeset
|
29 |
$ cat out |
12413 | 30 |
0 |
31 |
0 |
|
32 |
adding changesets |
|
33 |
transaction abort! |
|
34 |
rollback completed |
|
35 |
killed! |
|
16299
853ffcafecfa
tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents:
15455
diff
changeset
|
36 |
|
23277
581d3bc03aad
test-hup: use ls instead of echo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
37 |
$ ls -1d .hg/* .hg/store/* |
581d3bc03aad
test-hup: use ls instead of echo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
38 |
.hg/00changelog.i |
581d3bc03aad
test-hup: use ls instead of echo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
39 |
.hg/journal.bookmarks |
581d3bc03aad
test-hup: use ls instead of echo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
40 |
.hg/journal.branch |
581d3bc03aad
test-hup: use ls instead of echo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
41 |
.hg/journal.desc |
581d3bc03aad
test-hup: use ls instead of echo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
42 |
.hg/journal.dirstate |
581d3bc03aad
test-hup: use ls instead of echo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
43 |
.hg/requires |
581d3bc03aad
test-hup: use ls instead of echo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
44 |
.hg/store |
581d3bc03aad
test-hup: use ls instead of echo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
45 |
.hg/store/00changelog.i |
581d3bc03aad
test-hup: use ls instead of echo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
46 |
.hg/store/00changelog.i.a |
581d3bc03aad
test-hup: use ls instead of echo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
47 |
.hg/store/journal.phaseroots |