Mercurial > hg
annotate tests/test-cache-abuse.t @ 45580:76d79b80d953
merge: disable `m2-vs-ma` optimization if new filenode config is true
The `m2-vs-ma` optimization filters out the file which have not changed between
second parent and the ancestor of the merge. This results in the m1-vs-m2 diff
not processing those files. These files will be required when we are creating
new filenode for salvaged cases as we need to track them to store in mergestate
that file can be salvaged.
Differential Revision: https://phab.mercurial-scm.org/D9027
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Mon, 14 Sep 2020 14:40:12 +0530 |
parents | 34a46d48d24e |
children | 0f26ee69cf36 |
rev | line source |
---|---|
29041
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
1 Enable obsolete markers |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
2 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
3 $ cat >> $HGRCPATH << EOF |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
4 > [experimental] |
34866
1644623ab096
config: use 'experimental.evolution.create-markers'
Boris Feld <boris.feld@octobus.net>
parents:
33773
diff
changeset
|
5 > evolution.createmarkers=True |
29041
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
6 > [phases] |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
7 > publish=False |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
8 > EOF |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
9 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
10 Build a repo with some cacheable bits: |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
11 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
12 $ hg init a |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
13 $ cd a |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
14 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
15 $ echo a > a |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
16 $ hg ci -qAm0 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
17 $ hg tag t1 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
18 $ hg book -i bk1 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
19 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
20 $ hg branch -q b2 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
21 $ hg ci -Am1 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
22 $ hg tag t2 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
23 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
24 $ echo dumb > dumb |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
25 $ hg ci -qAmdumb |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
26 $ hg debugobsolete b1174d11b69e63cb0c5726621a43c859f0858d7f |
42893
34a46d48d24e
debugobsolete: also issue the "new obsmarkers" messsage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
35709
diff
changeset
|
27 1 new obsolescence markers |
33542
b11e8c67fb0f
debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents:
32478
diff
changeset
|
28 obsoleted 1 changesets |
29041
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
29 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
30 $ hg phase -pr t1 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
31 $ hg phase -fsr t2 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
32 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
33 Make a helper function to check cache damage invariants: |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
34 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
35 - command output shouldn't change |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
36 - cache should be present after first use |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
37 - corruption/repair should be silent (no exceptions or warnings) |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
38 - cache should survive deletion, overwrite, and append |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
39 - unreadable / unwriteable caches should be ignored |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
40 - cache should be rebuilt after corruption |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
41 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
42 $ damage() { |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
43 > CMD=$1 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
44 > CACHE=.hg/cache/$2 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
45 > CLEAN=$3 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
46 > hg $CMD > before |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
47 > test -f $CACHE || echo "not present" |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
48 > echo bad > $CACHE |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
49 > test -z "$CLEAN" || $CLEAN |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
50 > hg $CMD > after |
33612
798f7beadbc9
tests: use pdiff instead of diff for portability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33542
diff
changeset
|
51 > "$RUNTESTDIR/pdiff" before after || echo "*** overwrite corruption" |
29041
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
52 > echo corruption >> $CACHE |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
53 > test -z "$CLEAN" || $CLEAN |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
54 > hg $CMD > after |
33612
798f7beadbc9
tests: use pdiff instead of diff for portability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33542
diff
changeset
|
55 > "$RUNTESTDIR/pdiff" before after || echo "*** append corruption" |
29041
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
56 > rm $CACHE |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
57 > mkdir $CACHE |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
58 > test -z "$CLEAN" || $CLEAN |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
59 > hg $CMD > after |
33612
798f7beadbc9
tests: use pdiff instead of diff for portability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33542
diff
changeset
|
60 > "$RUNTESTDIR/pdiff" before after || echo "*** read-only corruption" |
29041
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
61 > test -d $CACHE || echo "*** directory clobbered" |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
62 > rmdir $CACHE |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
63 > test -z "$CLEAN" || $CLEAN |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
64 > hg $CMD > after |
33612
798f7beadbc9
tests: use pdiff instead of diff for portability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33542
diff
changeset
|
65 > "$RUNTESTDIR/pdiff" before after || echo "*** missing corruption" |
29041
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
66 > test -f $CACHE || echo "not rebuilt" |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
67 > } |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
68 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
69 Beat up tags caches: |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
70 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
71 $ damage "tags --hidden" tags2 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
72 $ damage tags tags2-visible |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
73 $ damage "tag -f t3" hgtagsfnodes1 |
35709
1a09dad8b85a
evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents:
34866
diff
changeset
|
74 1 new orphan changesets |
1a09dad8b85a
evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents:
34866
diff
changeset
|
75 1 new orphan changesets |
1a09dad8b85a
evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents:
34866
diff
changeset
|
76 1 new orphan changesets |
1a09dad8b85a
evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents:
34866
diff
changeset
|
77 1 new orphan changesets |
1a09dad8b85a
evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents:
34866
diff
changeset
|
78 1 new orphan changesets |
29041
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
79 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
80 Beat up branch caches: |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
81 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
82 $ damage branches branch2-base "rm .hg/cache/branch2-[vs]*" |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
83 $ damage branches branch2-served "rm .hg/cache/branch2-[bv]*" |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
84 $ damage branches branch2-visible |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
85 $ damage "log -r branch(.)" rbc-names-v1 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
86 $ damage "log -r branch(default)" rbc-names-v1 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
87 $ damage "log -r branch(b2)" rbc-revs-v1 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
88 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
89 We currently can't detect an rbc cache with unknown names: |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
90 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
91 $ damage "log -qr branch(b2)" rbc-names-v1 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
92 --- before * (glob) |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
93 +++ after * (glob) |
29255
b0b85d8695cb
test-cache-abuse: correct for different hunk headers between Solaris and GNU
Danek Duvall <danek.duvall@oracle.com>
parents:
29041
diff
changeset
|
94 @@ -1,8 +?,0 @@ (glob) |
29041
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
95 -2:5fb7d38b9dc4 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
96 -3:60b597ffdafa |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
97 -4:b1174d11b69e |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
98 -5:6354685872c0 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
99 -6:5ebc725f1bef |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
100 -7:7b76eec2f273 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
101 -8:ef3428d9d644 |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
102 -9:ba7a936bc03c |
b962ae0a0a05
tests: test a variety of cache invariants
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
103 *** append corruption |