tests/test-hup.t
author Pierre-Yves David <pierre-yves.david@fb.com>
Tue, 01 Jul 2014 23:08:17 +0200
changeset 22020 311979b773fb
parent 20896 9fae01831dea
child 22046 7a9cbb315d84
permissions -rw-r--r--
push: include phase push in the unified bundle2 push Phase push is now included in the same bundle2 push as changesets. We use multiple pushkey parts to transmit the information. Note that phase moves are still not part of the repository "transaction".

Test hangup signal in the middle of transaction

  $ "$TESTDIR/hghave" serve fifo || exit 80
  $ hg init
  $ mkfifo p
  $ hg serve --stdio < p 1>out 2>&1 &
  $ P=$!

Do test while holding fifo open

  $ (
  > echo lock
  > echo addchangegroup
  > start=`date +%s`
  > # 10 second seems much enough to let the server catch up
  > deadline=`expr $start + 10`
  > while [ ! -s .hg/store/journal ]; do
  >     sleep 0;
  >     if [ `date +%s` -gt $deadline ]; then
  >         echo "transaction did not start after 10 seconds" >&2;
  >         exit 1;
  >     fi
  > done
  > kill -HUP $P
  > ) > p

  $ wait
  $ cat out
  0
  0
  adding changesets
  transaction abort!
  rollback completed
  killed!

  $ echo .hg/* .hg/store/*
  .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