mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
b44e2103d7
Summary: The simplecache test attempts to connect to a memcache instance on localhost. This means the test fails if a memcache instance is not available. Remove the use of memcache in the test. We still test local files, and assume that memcache itself works. Also corrupt the correct key when testing corruption handling, and document the config options. Reviewed By: quark-zju Differential Revision: D13818471 fbshipit-source-id: 6ca7f575aa813f95773144be5337796f029ffd90
257 lines
9.4 KiB
Raku
257 lines
9.4 KiB
Raku
#require no-osx
|
|
|
|
Setup the extension
|
|
|
|
$ cat >> $HGRCPATH << EOF
|
|
> [extensions]
|
|
> simplecache=
|
|
> [simplecache]
|
|
> showdebug=true
|
|
> cachedir=$TESTTMP/hgsimplecache
|
|
> EOF
|
|
|
|
Initialize the repo
|
|
|
|
$ hg init repo
|
|
$ cd repo
|
|
|
|
$ echo x >> x
|
|
$ hg commit -Am x
|
|
adding x
|
|
$ hg mv x y
|
|
$ echo x >> y
|
|
$ hg st -C
|
|
A y
|
|
x
|
|
R x
|
|
$ hg commit -Am xx
|
|
$ hg book foo
|
|
|
|
Test that output remains the same with multiple invocations.
|
|
$ hg --debug export
|
|
exporting patch:
|
|
# HG changeset patch
|
|
# User test
|
|
# Date 0 0
|
|
# Thu Jan 01 00:00:00 1970 +0000
|
|
# Node ID a5d935fe38ada2b984c29e4e02bffd7f19bf818d
|
|
# Parent b292c1e3311fd0f13ae83b409caae4a6d1fb348c
|
|
xx
|
|
|
|
no value found for key buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1 from local
|
|
falling back for value buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1
|
|
set value for key buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1 to local
|
|
diff -r b292c1e3311fd0f13ae83b409caae4a6d1fb348c -r a5d935fe38ada2b984c29e4e02bffd7f19bf818d x
|
|
--- a/x Thu Jan 01 00:00:00 1970 +0000
|
|
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
@@ -1,1 +0,0 @@
|
|
-x
|
|
diff -r b292c1e3311fd0f13ae83b409caae4a6d1fb348c -r a5d935fe38ada2b984c29e4e02bffd7f19bf818d y
|
|
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
+++ b/y Thu Jan 01 00:00:00 1970 +0000
|
|
@@ -0,0 +1,2 @@
|
|
+x
|
|
+x
|
|
$ hg --debug export
|
|
exporting patch:
|
|
# HG changeset patch
|
|
# User test
|
|
# Date 0 0
|
|
# Thu Jan 01 00:00:00 1970 +0000
|
|
# Node ID a5d935fe38ada2b984c29e4e02bffd7f19bf818d
|
|
# Parent b292c1e3311fd0f13ae83b409caae4a6d1fb348c
|
|
xx
|
|
|
|
got value for key buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1 from local
|
|
diff -r b292c1e3311fd0f13ae83b409caae4a6d1fb348c -r a5d935fe38ada2b984c29e4e02bffd7f19bf818d x
|
|
--- a/x Thu Jan 01 00:00:00 1970 +0000
|
|
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
@@ -1,1 +0,0 @@
|
|
-x
|
|
diff -r b292c1e3311fd0f13ae83b409caae4a6d1fb348c -r a5d935fe38ada2b984c29e4e02bffd7f19bf818d y
|
|
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
+++ b/y Thu Jan 01 00:00:00 1970 +0000
|
|
@@ -0,0 +1,2 @@
|
|
+x
|
|
+x
|
|
$ hg --debug log -vpC -r .
|
|
got value for key buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1 from local
|
|
got value for key buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1 from local
|
|
changeset: 1:a5d935fe38ada2b984c29e4e02bffd7f19bf818d
|
|
bookmark: foo
|
|
tag: tip
|
|
phase: draft
|
|
parent: 0:b292c1e3311fd0f13ae83b409caae4a6d1fb348c
|
|
parent: -1:0000000000000000000000000000000000000000
|
|
manifest: 1:87b34bbb5b48d4106fd2da95fbe8beb73c1850d2
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
files+: y
|
|
files-: x
|
|
copies: y (x)
|
|
extra: branch=default
|
|
description:
|
|
xx
|
|
|
|
|
|
diff -r b292c1e3311fd0f13ae83b409caae4a6d1fb348c -r a5d935fe38ada2b984c29e4e02bffd7f19bf818d x
|
|
--- a/x Thu Jan 01 00:00:00 1970 +0000
|
|
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
@@ -1,1 +0,0 @@
|
|
-x
|
|
diff -r b292c1e3311fd0f13ae83b409caae4a6d1fb348c -r a5d935fe38ada2b984c29e4e02bffd7f19bf818d y
|
|
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
+++ b/y Thu Jan 01 00:00:00 1970 +0000
|
|
@@ -0,0 +1,2 @@
|
|
+x
|
|
+x
|
|
|
|
$ hg log -vp -r .
|
|
changeset: 1:a5d935fe38ad
|
|
bookmark: foo
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
files: x y
|
|
description:
|
|
xx
|
|
|
|
|
|
diff -r b292c1e3311f -r a5d935fe38ad x
|
|
--- a/x Thu Jan 01 00:00:00 1970 +0000
|
|
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
@@ -1,1 +0,0 @@
|
|
-x
|
|
diff -r b292c1e3311f -r a5d935fe38ad y
|
|
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
+++ b/y Thu Jan 01 00:00:00 1970 +0000
|
|
@@ -0,0 +1,2 @@
|
|
+x
|
|
+x
|
|
|
|
|
|
Test that disabling the cache entirely doesn't break things
|
|
$ hg --debug --config simplecache.caches= export
|
|
exporting patch:
|
|
# HG changeset patch
|
|
# User test
|
|
# Date 0 0
|
|
# Thu Jan 01 00:00:00 1970 +0000
|
|
# Node ID a5d935fe38ada2b984c29e4e02bffd7f19bf818d
|
|
# Parent b292c1e3311fd0f13ae83b409caae4a6d1fb348c
|
|
xx
|
|
|
|
falling back for value buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1
|
|
diff -r b292c1e3311fd0f13ae83b409caae4a6d1fb348c -r a5d935fe38ada2b984c29e4e02bffd7f19bf818d x
|
|
--- a/x Thu Jan 01 00:00:00 1970 +0000
|
|
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
@@ -1,1 +0,0 @@
|
|
-x
|
|
diff -r b292c1e3311fd0f13ae83b409caae4a6d1fb348c -r a5d935fe38ada2b984c29e4e02bffd7f19bf818d y
|
|
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
+++ b/y Thu Jan 01 00:00:00 1970 +0000
|
|
@@ -0,0 +1,2 @@
|
|
+x
|
|
+x
|
|
|
|
Test that corrupt caches are gracefully ignored, and updated
|
|
$ printf "hello" > "$TESTTMP/hgsimplecache/buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1"
|
|
$ hg --debug log -vpC -r .
|
|
got value for key buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1 from local
|
|
error getting or deserializing key buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1: No JSON object could be decoded
|
|
no value found for key buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1 from local
|
|
falling back for value buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1
|
|
set value for key buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1 to local
|
|
got value for key buildstatus:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:b292c1e3311fd0f13ae83b409caae4a6d1fb348c:v1 from local
|
|
changeset: 1:a5d935fe38ada2b984c29e4e02bffd7f19bf818d
|
|
bookmark: foo
|
|
tag: tip
|
|
phase: draft
|
|
parent: 0:b292c1e3311fd0f13ae83b409caae4a6d1fb348c
|
|
parent: -1:0000000000000000000000000000000000000000
|
|
manifest: 1:87b34bbb5b48d4106fd2da95fbe8beb73c1850d2
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
files+: y
|
|
files-: x
|
|
copies: y (x)
|
|
extra: branch=default
|
|
description:
|
|
xx
|
|
|
|
|
|
diff -r b292c1e3311fd0f13ae83b409caae4a6d1fb348c -r a5d935fe38ada2b984c29e4e02bffd7f19bf818d x
|
|
--- a/x Thu Jan 01 00:00:00 1970 +0000
|
|
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
@@ -1,1 +0,0 @@
|
|
-x
|
|
diff -r b292c1e3311fd0f13ae83b409caae4a6d1fb348c -r a5d935fe38ada2b984c29e4e02bffd7f19bf818d y
|
|
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
+++ b/y Thu Jan 01 00:00:00 1970 +0000
|
|
@@ -0,0 +1,2 @@
|
|
+x
|
|
+x
|
|
|
|
|
|
Test strange (unicode) filenames
|
|
$ printf "delete cca.hg.buildstatus:f3a143469693894d291b7388ea8392a07492751f:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:v1\r\n" | nc localhost 11101
|
|
* (glob)
|
|
$ echo 'x' > Å
|
|
$ hg add Å
|
|
$ hg commit -m 'unicode test'
|
|
$ hg export --debug
|
|
exporting patch:
|
|
# HG changeset patch
|
|
# User test
|
|
# Date 0 0
|
|
# Thu Jan 01 00:00:00 1970 +0000
|
|
# Node ID f3a143469693894d291b7388ea8392a07492751f
|
|
# Parent a5d935fe38ada2b984c29e4e02bffd7f19bf818d
|
|
unicode test
|
|
|
|
no value found for key buildstatus:f3a143469693894d291b7388ea8392a07492751f:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:v1 from local
|
|
falling back for value buildstatus:f3a143469693894d291b7388ea8392a07492751f:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:v1
|
|
set value for key buildstatus:f3a143469693894d291b7388ea8392a07492751f:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:v1 to local
|
|
diff -r a5d935fe38ada2b984c29e4e02bffd7f19bf818d -r f3a143469693894d291b7388ea8392a07492751f \xc3\x85 (esc)
|
|
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
+++ b/\xc3\x85 Thu Jan 01 00:00:00 1970 +0000 (esc)
|
|
@@ -0,0 +1,1 @@
|
|
+x
|
|
$ hg --debug log -vpC -r .
|
|
got value for key buildstatus:f3a143469693894d291b7388ea8392a07492751f:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:v1 from local
|
|
got value for key buildstatus:f3a143469693894d291b7388ea8392a07492751f:a5d935fe38ada2b984c29e4e02bffd7f19bf818d:v1 from local
|
|
changeset: 2:f3a143469693894d291b7388ea8392a07492751f
|
|
bookmark: foo
|
|
tag: tip
|
|
phase: draft
|
|
parent: 1:a5d935fe38ada2b984c29e4e02bffd7f19bf818d
|
|
parent: -1:0000000000000000000000000000000000000000
|
|
manifest: 2:0640a75d79d252a6348f1e2316af42e7960b4a90
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
files+: \xc3\x85 (esc)
|
|
extra: branch=default
|
|
description:
|
|
unicode test
|
|
|
|
|
|
diff -r a5d935fe38ada2b984c29e4e02bffd7f19bf818d -r f3a143469693894d291b7388ea8392a07492751f \xc3\x85 (esc)
|
|
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
+++ b/\xc3\x85 Thu Jan 01 00:00:00 1970 +0000 (esc)
|
|
@@ -0,0 +1,1 @@
|
|
+x
|
|
|
|
Test local cache eviction
|
|
$ echo 'x' >> y && hg commit -qm "1" && hg export --debug > /dev/null
|
|
$ echo 'x' >> y && hg commit -qm "2" && hg export --debug > /dev/null
|
|
$ echo 'x' >> y && hg commit -qm "3" && hg export --debug > /dev/null
|
|
$ echo 'x' >> y && hg commit -qm "4" && hg export --debug > /dev/null
|
|
$ echo 'x' >> y && hg commit -qm "5" && hg export --debug > /dev/null
|
|
$ echo 'x' >> y && hg commit -qm "6" && hg export --debug > /dev/null
|
|
$ ls $TESTTMP/hgsimplecache | grep -c buildstatus
|
|
8
|
|
$ echo 'x' >> y && hg commit -qm "7"
|
|
$ hg --debug --config simplecache.maxcachesize=2 --config simplecache.evictionpercent=50 export > /dev/null
|
|
$ ls $TESTTMP/hgsimplecache | grep -c buildstatus
|
|
5
|