##// END OF EJS Templates
internals: extract frame-based protocol docs to own document...
internals: extract frame-based protocol docs to own document wireprotocol.txt is quite long and difficult to digest. The frame-based protocol is effectively a standalone concept (and could even be used outside of Mercurial). So this commit extracts its docs to a standalone file. The first few paragraphs were rewritten as part of the extraction. Sections headers were adjusted accordingly. Existing referalls in wireprotocol.txt were updated to refer to the new doc / concept, which I've started referring to as `hgrpc`. I'm on the fence as to whether to move the HTTP and SSH transport details to the new doc as well. For now, I'm leaving them in wireprotocol.txt. Differential Revision: https://phab.mercurial-scm.org/D4443

File last commit:

r35727:1a09dad8 default
r39594:b0e0db15 default
Show More
test-cache-abuse.t
102 lines | 2.5 KiB | text/troff | Tads3Lexer
/ tests / test-cache-abuse.t
Matt Mackall
tests: test a variety of cache invariants...
r29041 Enable obsolete markers
$ cat >> $HGRCPATH << EOF
> [experimental]
Boris Feld
config: use 'experimental.evolution.create-markers'...
r34867 > evolution.createmarkers=True
Matt Mackall
tests: test a variety of cache invariants...
r29041 > [phases]
> publish=False
> EOF
Build a repo with some cacheable bits:
$ hg init a
$ cd a
$ echo a > a
$ hg ci -qAm0
$ hg tag t1
$ hg book -i bk1
$ hg branch -q b2
$ hg ci -Am1
$ hg tag t2
$ echo dumb > dumb
$ hg ci -qAmdumb
$ hg debugobsolete b1174d11b69e63cb0c5726621a43c859f0858d7f
Boris Feld
debugobsolete: also report the number of obsoleted changesets...
r33542 obsoleted 1 changesets
Matt Mackall
tests: test a variety of cache invariants...
r29041
$ hg phase -pr t1
$ hg phase -fsr t2
Make a helper function to check cache damage invariants:
- command output shouldn't change
- cache should be present after first use
- corruption/repair should be silent (no exceptions or warnings)
- cache should survive deletion, overwrite, and append
- unreadable / unwriteable caches should be ignored
- cache should be rebuilt after corruption
$ damage() {
> CMD=$1
> CACHE=.hg/cache/$2
> CLEAN=$3
> hg $CMD > before
> test -f $CACHE || echo "not present"
> echo bad > $CACHE
> test -z "$CLEAN" || $CLEAN
> hg $CMD > after
FUJIWARA Katsunori
tests: use pdiff instead of diff for portability...
r33614 > "$RUNTESTDIR/pdiff" before after || echo "*** overwrite corruption"
Matt Mackall
tests: test a variety of cache invariants...
r29041 > echo corruption >> $CACHE
> test -z "$CLEAN" || $CLEAN
> hg $CMD > after
FUJIWARA Katsunori
tests: use pdiff instead of diff for portability...
r33614 > "$RUNTESTDIR/pdiff" before after || echo "*** append corruption"
Matt Mackall
tests: test a variety of cache invariants...
r29041 > rm $CACHE
> mkdir $CACHE
> test -z "$CLEAN" || $CLEAN
> hg $CMD > after
FUJIWARA Katsunori
tests: use pdiff instead of diff for portability...
r33614 > "$RUNTESTDIR/pdiff" before after || echo "*** read-only corruption"
Matt Mackall
tests: test a variety of cache invariants...
r29041 > test -d $CACHE || echo "*** directory clobbered"
> rmdir $CACHE
> test -z "$CLEAN" || $CLEAN
> hg $CMD > after
FUJIWARA Katsunori
tests: use pdiff instead of diff for portability...
r33614 > "$RUNTESTDIR/pdiff" before after || echo "*** missing corruption"
Matt Mackall
tests: test a variety of cache invariants...
r29041 > test -f $CACHE || echo "not rebuilt"
> }
Beat up tags caches:
$ damage "tags --hidden" tags2
$ damage tags tags2-visible
$ damage "tag -f t3" hgtagsfnodes1
Martin von Zweigbergk
evolution: report new unstable changesets...
r35727 1 new orphan changesets
1 new orphan changesets
1 new orphan changesets
1 new orphan changesets
1 new orphan changesets
Matt Mackall
tests: test a variety of cache invariants...
r29041
Beat up branch caches:
$ damage branches branch2-base "rm .hg/cache/branch2-[vs]*"
$ damage branches branch2-served "rm .hg/cache/branch2-[bv]*"
$ damage branches branch2-visible
$ damage "log -r branch(.)" rbc-names-v1
$ damage "log -r branch(default)" rbc-names-v1
$ damage "log -r branch(b2)" rbc-revs-v1
We currently can't detect an rbc cache with unknown names:
$ damage "log -qr branch(b2)" rbc-names-v1
--- before * (glob)
+++ after * (glob)
Danek Duvall
test-cache-abuse: correct for different hunk headers between Solaris and GNU...
r29255 @@ -1,8 +?,0 @@ (glob)
Matt Mackall
tests: test a variety of cache invariants...
r29041 -2:5fb7d38b9dc4
-3:60b597ffdafa
-4:b1174d11b69e
-5:6354685872c0
-6:5ebc725f1bef
-7:7b76eec2f273
-8:ef3428d9d644
-9:ba7a936bc03c
*** append corruption