annotate tests/test-hup.t @ 22245:234e4c24b980

platform: implement readpipe() Reading all available data from a pipe has a platform-dependent implementation. This patch establishes platform.readpipe() by copying the inline implementation in sshpeer.readerr(). The implementations for POSIX and Windows are currently identical. The POSIX implementation will be changed in a subsequent patch.
author Gregory Szorc <gregory.szorc@gmail.com>
date Fri, 15 Aug 2014 20:02:18 -0700
parents 7a9cbb315d84
children 581d3bc03aad
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
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
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
3 Test hangup signal in the middle of transaction
642
5d6177b72fcc Update tests
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
4
12413
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
5 $ hg init
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
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
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
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
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
30 0
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
31 0
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
32 adding changesets
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
33 transaction abort!
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
34 rollback completed
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
35 killed!
16299
853ffcafecfa tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents: 15455
diff changeset
36
12413
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
37 $ echo .hg/* .hg/store/*
15455
c6f87bdab2a1 phases: add rollback support
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 15446
diff changeset
38 .hg/00changelog.i .hg/journal.bookmarks .hg/journal.branch .hg/journal.desc .hg/journal.dirstate .hg/requires .hg/store .hg/store/00changelog.i .hg/store/00changelog.i.a .hg/store/journal.phaseroots