annotate tests/test-blackbox.t @ 29196:bf7b8157c483 stable

strip: invalidate phase cache after stripping changeset (issue5235) When we remove a changeset from the changelog, the phase cache must be invalidated, otherwise it could refer to changesets that are no longer in the repo. To reproduce the failure, I created an extension querying the phase cache after the strip transaction is over. To do that, I stripped two commits with a bookmark on one of them to force another transaction (we open a transaction for moving bookmarks) after the strip transaction. Without the fix in this patch, the test leads to a stacktrace showing the issue: repair.strip(ui, repo, revs, backup) File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/repair.py", line 205, in strip tr.close() File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/transaction.py", line 44, in _active return func(self, *args, **kwds) File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/transaction.py", line 490, in close self._postclosecallback[cat](self) File "$TESTTMP/crashstrip2.py", line 4, in test [repo.changelog.node(r) for r in repo.revs("not public()")] File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/changelog.py", line 337, in node return super(changelog, self).node(rev) File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/revlog.py", line 377, in node return self.index[rev][7] IndexError: revlog index out of range The situation was encountered in inhibit (evolve's repo) where we would crash following the volatile set invalidation submitted by Augie in e6f490e328635312ee214a12bc7fd3c7d46bf9ce. Before his patch the issue was masked as we were not accessing the phasecache after stripping a revision. This bug uncovered another but in histedit (see explanation in issue5235). I changed the histedit test accordingly to avoid fixing two things at once.
author Laurent Charignon <lcharignon@fb.com>
date Thu, 12 May 2016 06:13:59 -0700
parents d46dc68ec042
children 318e2b600b80
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18674
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
1 setup
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
2 $ cat >> $HGRCPATH <<EOF
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
3 > [extensions]
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
4 > blackbox=
24705
0ead0a07ed9c tests: move mock blackbox extension into own file
Gregory Szorc <gregory.szorc@gmail.com>
parents: 21031
diff changeset
5 > mock=$TESTDIR/mockblackbox.py
18766
64b5562550e2 blackbox: add backup bundle paths to blackbox logs
Durham Goode <durham@fb.com>
parents: 18720
diff changeset
6 > mq=
18674
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
7 > EOF
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
8 $ hg init blackboxtest
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
9 $ cd blackboxtest
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
10
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
11 command, exit codes, and duration
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
12
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
13 $ echo a > a
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
14 $ hg add a
28246
b862e793ec10 blackbox: log dirty state
timeless <timeless@mozdev.org>
parents: 28245
diff changeset
15 $ hg blackbox --config blackbox.dirty=True
28245
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
16 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a
28247
d2c0527af364 blackbox: store the blackbox ui object instead of the log file
timeless <timeless@mozdev.org>
parents: 28246
diff changeset
17 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a exited 0 after * seconds (glob)
28246
b862e793ec10 blackbox: log dirty state
timeless <timeless@mozdev.org>
parents: 28245
diff changeset
18 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox
18674
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
19
18677
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
20 incoming change tracking
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
21
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
22 create two heads to verify that we only see one change in the log later
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
23 $ hg commit -ma
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
24 $ hg up null
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
25 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
26 $ echo b > b
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
27 $ hg commit -Amb
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
28 adding b
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
29 created new head
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
30
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
31 clone, commit, pull
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
32 $ hg clone . ../blackboxtest2
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
33 updating to branch default
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
34 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
35 $ echo c > c
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
36 $ hg commit -Amc
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
37 adding c
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
38 $ cd ../blackboxtest2
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
39 $ hg pull
18719
9ad13296c581 tests: append glob to filename output when required for windows
Simon Heimberg <simohe@besonet.ch>
parents: 18677
diff changeset
40 pulling from $TESTTMP/blackboxtest (glob)
18677
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
41 searching for changes
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
42 adding changesets
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
43 adding manifests
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
44 adding file changes
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
45 added 1 changesets with 1 changes to 1 files
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
46 (run 'hg update' to get a working copy)
28025
ab6468270b83 blackbox: flush output file descriptor
timeless <timeless@mozdev.org>
parents: 28024
diff changeset
47 $ hg blackbox -l 6
28245
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
48 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pull
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
49 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> updated served branch cache in * seconds (glob)
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
50 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> wrote served branch cache with 1 labels and 2 nodes
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
51 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> 1 incoming changes - new heads: d02f48003e62
28247
d2c0527af364 blackbox: store the blackbox ui object instead of the log file
timeless <timeless@mozdev.org>
parents: 28246
diff changeset
52 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pull exited 0 after * seconds (glob)
28245
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
53 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> blackbox -l 6
18677
539210ed2069 blackbox: only show new heads on incoming
Durham Goode <durham@fb.com>
parents: 18674
diff changeset
54
18786
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
55 we must not cause a failure if we cannot write to the log
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
56
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
57 $ hg rollback
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
58 repository tip rolled back to revision 1 (undo pull)
19082
63dda3c3bb11 blackbox: don't run permission tests on non-unix systems
Durham Goode <durham@fb.com>
parents: 19066
diff changeset
59
28024
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
60 $ mv .hg/blackbox.log .hg/blackbox.log-
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
61 $ mkdir .hg/blackbox.log
18786
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
62 $ hg --debug incoming
28024
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
63 warning: cannot write to blackbox.log: * (glob)
18836
a7d0ddc7540b blackbox: fix a few check-code portability errors
Bryan O'Sullivan <bryano@fb.com>
parents: 18787
diff changeset
64 comparing with $TESTTMP/blackboxtest (glob)
18786
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
65 query 1; heads
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
66 searching for changes
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
67 all local heads known remotely
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
68 changeset: 2:d02f48003e62c24e2659d97d30f2a83abe5d5d51
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
69 tag: tip
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
70 phase: draft
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
71 parent: 1:6563da9dcf87b1949716e38ff3e3dfaa3198eb06
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
72 parent: -1:0000000000000000000000000000000000000000
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
73 manifest: 2:ab9d46b053ebf45b7996f2922b9893ff4b63d892
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
74 user: test
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
75 date: Thu Jan 01 00:00:00 1970 +0000
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
76 files+: c
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
77 extra: branch=default
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
78 description:
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
79 c
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
80
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
81
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
82 $ hg pull
18836
a7d0ddc7540b blackbox: fix a few check-code portability errors
Bryan O'Sullivan <bryano@fb.com>
parents: 18787
diff changeset
83 pulling from $TESTTMP/blackboxtest (glob)
18786
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
84 searching for changes
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
85 adding changesets
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
86 adding manifests
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
87 adding file changes
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
88 added 1 changesets with 1 changes to 1 files
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
89 (run 'hg update' to get a working copy)
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
90
28024
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
91 a failure reading from the log is fatal
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
92
18786
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
93 $ hg blackbox -l 3
28024
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
94 abort: *$TESTTMP/blackboxtest2/.hg/blackbox.log* (glob)
18786
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
95 [255]
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
96
28024
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
97 $ rmdir .hg/blackbox.log
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
98 $ mv .hg/blackbox.log- .hg/blackbox.log
18786
ed39a8f94e95 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com>
parents: 18766
diff changeset
99
18766
64b5562550e2 blackbox: add backup bundle paths to blackbox logs
Durham Goode <durham@fb.com>
parents: 18720
diff changeset
100 backup bundles get logged
64b5562550e2 blackbox: add backup bundle paths to blackbox logs
Durham Goode <durham@fb.com>
parents: 18720
diff changeset
101
64b5562550e2 blackbox: add backup bundle paths to blackbox logs
Durham Goode <durham@fb.com>
parents: 18720
diff changeset
102 $ touch d
64b5562550e2 blackbox: add backup bundle paths to blackbox logs
Durham Goode <durham@fb.com>
parents: 18720
diff changeset
103 $ hg commit -Amd
64b5562550e2 blackbox: add backup bundle paths to blackbox logs
Durham Goode <durham@fb.com>
parents: 18720
diff changeset
104 adding d
64b5562550e2 blackbox: add backup bundle paths to blackbox logs
Durham Goode <durham@fb.com>
parents: 18720
diff changeset
105 created new head
64b5562550e2 blackbox: add backup bundle paths to blackbox logs
Durham Goode <durham@fb.com>
parents: 18720
diff changeset
106 $ hg strip tip
64b5562550e2 blackbox: add backup bundle paths to blackbox logs
Durham Goode <durham@fb.com>
parents: 18720
diff changeset
107 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
64b5562550e2 blackbox: add backup bundle paths to blackbox logs
Durham Goode <durham@fb.com>
parents: 18720
diff changeset
108 saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/*-backup.hg (glob)
28025
ab6468270b83 blackbox: flush output file descriptor
timeless <timeless@mozdev.org>
parents: 28024
diff changeset
109 $ hg blackbox -l 6
28245
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
110 1970/01/01 00:00:00 bob @73f6ee326b27d820b0472f1a825e3a50f3dc489b (5000)> strip tip
28888
d46dc68ec042 test-blackbox: add missing glob for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 28407
diff changeset
111 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/73f6ee326b27-7612e004-backup.hg (glob)
28245
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
112 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> updated base branch cache in * seconds (glob)
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
113 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> wrote base branch cache with 1 labels and 2 nodes
28247
d2c0527af364 blackbox: store the blackbox ui object instead of the log file
timeless <timeless@mozdev.org>
parents: 28246
diff changeset
114 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> strip tip exited 0 after * seconds (glob)
28245
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
115 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> blackbox -l 6
18766
64b5562550e2 blackbox: add backup bundle paths to blackbox logs
Durham Goode <durham@fb.com>
parents: 18720
diff changeset
116
18674
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
117 extension and python hooks - use the eol extension for a pythonhook
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
118
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
119 $ echo '[extensions]' >> .hg/hgrc
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
120 $ echo 'eol=' >> .hg/hgrc
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
121 $ echo '[hooks]' >> .hg/hgrc
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
122 $ echo 'update = echo hooked' >> .hg/hgrc
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
123 $ hg update
26752
949e8c626d19 merge: make in-memory changes visible to external update hooks
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 26185
diff changeset
124 hooked
26028
6fbe35588433 update: wlock the repo for the whole 'hg update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 24763
diff changeset
125 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
28029
72072cfc7e91 update: warn about other topological heads on bare update
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28028
diff changeset
126 1 other heads for branch "default"
28025
ab6468270b83 blackbox: flush output file descriptor
timeless <timeless@mozdev.org>
parents: 28024
diff changeset
127 $ hg blackbox -l 6
28245
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
128 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> update
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
129 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> writing .hg/cache/tags2-visible with 0 tags
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
130 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pythonhook-preupdate: hgext.eol.preupdate finished in * seconds (glob)
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
131 1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> exthook-update: echo hooked finished in * seconds (glob)
28247
d2c0527af364 blackbox: store the blackbox ui object instead of the log file
timeless <timeless@mozdev.org>
parents: 28246
diff changeset
132 1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> update exited 0 after * seconds (glob)
28245
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
133 1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> blackbox -l 6
18674
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
134
19066
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
135 log rotation
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
136
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
137 $ echo '[blackbox]' >> .hg/hgrc
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
138 $ echo 'maxsize = 20 b' >> .hg/hgrc
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
139 $ echo 'maxfiles = 3' >> .hg/hgrc
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
140 $ hg status
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
141 $ hg status
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
142 $ hg status
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
143 $ hg tip -q
24706
5150b2b5b345 tests: move blackbox testing of tags to test-tags.t
Gregory Szorc <gregory.szorc@gmail.com>
parents: 24705
diff changeset
144 2:d02f48003e62
19066
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
145 $ ls .hg/blackbox.log*
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
146 .hg/blackbox.log
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
147 .hg/blackbox.log.1
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
148 .hg/blackbox.log.2
28024
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
149 $ cd ..
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
150
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
151 $ hg init blackboxtest3
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
152 $ cd blackboxtest3
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
153 $ hg blackbox
28245
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
154 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox
28024
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
155 $ mv .hg/blackbox.log .hg/blackbox.log-
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
156 $ mkdir .hg/blackbox.log
28336
a5a13eeffc59 tests: Solaris sed does not support "\n" meaning newline in the RHS of s///
Danek Duvall <danek.duvall@oracle.com>
parents: 28248
diff changeset
157 $ sed -e 's/\(.*test1.*\)/#\1/; s#\(.*commit2.*\)#os.rmdir(".hg/blackbox.log")\
a5a13eeffc59 tests: Solaris sed does not support "\n" meaning newline in the RHS of s///
Danek Duvall <danek.duvall@oracle.com>
parents: 28248
diff changeset
158 > os.rename(".hg/blackbox.log-", ".hg/blackbox.log")\
a5a13eeffc59 tests: Solaris sed does not support "\n" meaning newline in the RHS of s///
Danek Duvall <danek.duvall@oracle.com>
parents: 28248
diff changeset
159 > \1#' $TESTDIR/test-dispatch.py > ../test-dispatch.py
28406
0767c2f624c6 tests: divorce blackbox test from test-dispatch.py
timeless <timeless@mozdev.org>
parents: 28336
diff changeset
160 $ python $TESTDIR/blackbox-readonly-dispatch.py
28024
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
161 running: add foo
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
162 result: 0
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
163 running: commit -m commit1 -d 2000-01-01 foo
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
164 result: None
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
165 running: commit -m commit2 -d 2000-01-02 foo
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
166 result: None
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
167 running: log -r 0
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
168 changeset: 0:0e4634943879
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
169 user: test
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
170 date: Sat Jan 01 00:00:00 2000 +0000
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
171 summary: commit1
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
172
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
173 result: None
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
174 running: log -r tip
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
175 changeset: 1:45589e459b2e
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
176 tag: tip
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
177 user: test
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
178 date: Sun Jan 02 00:00:00 2000 +0000
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
179 summary: commit2
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
180
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
181 result: None
142891ab6e89 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org>
parents: 26752
diff changeset
182 $ hg blackbox
28248
851c41a21869 blackbox: properly replace ui class
timeless <timeless@mozdev.org>
parents: 28247
diff changeset
183 1970/01/01 00:00:00 bob @0e46349438790c460c5c9f7546bfcd39b267bbd2 (5000)> commit -m commit2 -d 2000-01-02 foo
851c41a21869 blackbox: properly replace ui class
timeless <timeless@mozdev.org>
parents: 28247
diff changeset
184 1970/01/01 00:00:00 bob @0e46349438790c460c5c9f7546bfcd39b267bbd2 (5000)> updated served branch cache in * seconds (glob)
851c41a21869 blackbox: properly replace ui class
timeless <timeless@mozdev.org>
parents: 28247
diff changeset
185 1970/01/01 00:00:00 bob @0e46349438790c460c5c9f7546bfcd39b267bbd2 (5000)> wrote served branch cache with 1 labels and 1 nodes
851c41a21869 blackbox: properly replace ui class
timeless <timeless@mozdev.org>
parents: 28247
diff changeset
186 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> commit -m commit2 -d 2000-01-02 foo exited 0 after * seconds (glob)
851c41a21869 blackbox: properly replace ui class
timeless <timeless@mozdev.org>
parents: 28247
diff changeset
187 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r 0
851c41a21869 blackbox: properly replace ui class
timeless <timeless@mozdev.org>
parents: 28247
diff changeset
188 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> writing .hg/cache/tags2-visible with 0 tags
851c41a21869 blackbox: properly replace ui class
timeless <timeless@mozdev.org>
parents: 28247
diff changeset
189 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r 0 exited 0 after * seconds (glob)
851c41a21869 blackbox: properly replace ui class
timeless <timeless@mozdev.org>
parents: 28247
diff changeset
190 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r tip
851c41a21869 blackbox: properly replace ui class
timeless <timeless@mozdev.org>
parents: 28247
diff changeset
191 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r tip exited 0 after * seconds (glob)
28245
caa2a0c6fbb7 blackbox: log working directory version
timeless <timeless@mozdev.org>
parents: 28242
diff changeset
192 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> blackbox
19066
2cad301a7f06 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com>
parents: 18836
diff changeset
193
28407
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
194 Test log recursion from dirty status check
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
195
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
196 $ cat > ../r.py <<EOF
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
197 > from mercurial import context, error, extensions
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
198 > x=[False]
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
199 > def status(orig, *args, **opts):
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
200 > args[0].repo().ui.log("broken", "recursion?")
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
201 > return orig(*args, **opts)
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
202 > def reposetup(ui, repo):
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
203 > extensions.wrapfunction(context.basectx, 'status', status)
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
204 > EOF
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
205 $ hg id --config extensions.x=../r.py --config blackbox.dirty=True
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
206 45589e459b2e tip
63da8bd0c65e blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org>
parents: 28406
diff changeset
207
18674
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
208 cleanup
c61b49d059eb blackbox: tests for the blackbox extension
Durham Goode <durham@fb.com>
parents:
diff changeset
209 $ cd ..