tests/test-hup.t
author Gregory Szorc <gregory.szorc@gmail.com>
Sat, 10 May 2014 14:54:39 -0700
changeset 21637 48ef68004ec9
parent 20896 9fae01831dea
child 22046 7a9cbb315d84
permissions -rw-r--r--
fix_bytes: loosen blacklist matching requirements On my Linux machine, paths seen by 2to3 include the build directory. We switch from an exact to substring match to allow 2to3 to work in more environments.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12413
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     1
Test hangup signal in the middle of transaction
642
5d6177b72fcc Update tests
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     2
15446
c5c9ca3719f9 tests: use 'hghave serve' to guard tests that requires serve daemon management
Mads Kiilerich <mads@kiilerich.com>
parents: 14266
diff changeset
     3
  $ "$TESTDIR/hghave" serve fifo || exit 80
12413
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     4
  $ hg init
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     5
  $ mkfifo p
16342
7e24d34837a9 tests: make test-hup more race-proof
Matt Mackall <mpm@selenic.com>
parents: 16299
diff changeset
     6
  $ hg serve --stdio < p 1>out 2>&1 &
12413
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     7
  $ P=$!
16299
853ffcafecfa tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents: 15455
diff changeset
     8
853ffcafecfa tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents: 15455
diff changeset
     9
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
    10
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
  > echo lock
853ffcafecfa tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents: 15455
diff changeset
    13
  > 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
    14
  > 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
    15
  > # 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
    16
  > 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
    17
  > 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
    18
  >     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
    19
  >     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
    20
  >         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
    21
  >         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
    22
  >     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
    23
  > done
16299
853ffcafecfa tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents: 15455
diff changeset
    24
  > kill -HUP $P
853ffcafecfa tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents: 15455
diff changeset
    25
  > ) > p
16342
7e24d34837a9 tests: make test-hup more race-proof
Matt Mackall <mpm@selenic.com>
parents: 16299
diff changeset
    26
16344
fb765286f2f9 tests: avoid zombie lockup with test-hup
Matt Mackall <mpm@selenic.com>
parents: 16342
diff changeset
    27
  $ wait
16342
7e24d34837a9 tests: make test-hup more race-proof
Matt Mackall <mpm@selenic.com>
parents: 16299
diff changeset
    28
  $ cat out
12413
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    29
  0
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
  adding changesets
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    32
  transaction abort!
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    33
  rollback completed
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    34
  killed!
16299
853ffcafecfa tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents: 15455
diff changeset
    35
12413
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    36
  $ echo .hg/* .hg/store/*
15455
c6f87bdab2a1 phases: add rollback support
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 15446
diff changeset
    37
  .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