summaryrefslogtreecommitdiff
path: root/tests/test-hup.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-hup.t')
-rw-r--r--tests/test-hup.t28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/test-hup.t b/tests/test-hup.t
new file mode 100644
index 0000000..9745643
--- /dev/null
+++ b/tests/test-hup.t
@@ -0,0 +1,28 @@
+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
+ > while [ ! -s .hg/store/journal ]; do sleep 0; 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