tests/test-hup.t
author Siddharth Agarwal <sid0@fb.com>
Fri, 29 Mar 2013 19:54:06 -0700
changeset 18851 a60963c02f92
parent 16364 f64b25f147d7
child 20896 9fae01831dea
permissions -rw-r--r--
pull: list bookmarks before pulling changesets (issue3873) Consider a bookmark B that exists both locally and remotely. If B is updated remotely, and then a pull is performed where the pull set contains the new location of B, the bookmark is updated locally. However, if remote B is updated in the middle of a pull to a location not in the pull set, the bookmark won't be updated locally at all. To fix this, list bookmarks before pulling in changesets, not after. This still leaves a race open if B gets moved in between listing bookmarks and pulling in changesets, but the race window is much smaller. Fixing the race properly would require a bundle format upgrade. test-hook.t's output changes because we no longer do two listkeys calls during pull, just one. test-pull-http.t's output changes because we now search for bookmarks before searching for changes.
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
16364
f64b25f147d7 tests: avoid test-hup hanging on AIX
Jim Hague <jim.hague@acm.org>
parents: 16344
diff changeset
    14
  > while [ ! -s .hg/store/journal ]; do sleep 0; done
16299
853ffcafecfa tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents: 15455
diff changeset
    15
  > kill -HUP $P
853ffcafecfa tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents: 15455
diff changeset
    16
  > ) > p
16342
7e24d34837a9 tests: make test-hup more race-proof
Matt Mackall <mpm@selenic.com>
parents: 16299
diff changeset
    17
16344
fb765286f2f9 tests: avoid zombie lockup with test-hup
Matt Mackall <mpm@selenic.com>
parents: 16342
diff changeset
    18
  $ wait
16342
7e24d34837a9 tests: make test-hup more race-proof
Matt Mackall <mpm@selenic.com>
parents: 16299
diff changeset
    19
  $ cat out
12413
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    20
  0
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    21
  0
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    22
  adding changesets
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    23
  transaction abort!
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    24
  rollback completed
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    25
  killed!
16299
853ffcafecfa tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com>
parents: 15455
diff changeset
    26
12413
f8dc83689f19 tests: unify test-hup
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    27
  $ echo .hg/* .hg/store/*
15455
c6f87bdab2a1 phases: add rollback support
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 15446
diff changeset
    28
  .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