--- a/tests/test-chg.t Wed Oct 31 22:19:03 2018 +0900
+++ b/tests/test-chg.t Wed Oct 31 22:43:08 2018 +0900
@@ -1,6 +1,7 @@
#require chg
$ mkdir log
+ $ cp $HGRCPATH $HGRCPATH.unconfigured
$ cat <<'EOF' >> $HGRCPATH
> [cmdserver]
> log = $TESTTMP/log/server.log
@@ -13,6 +14,7 @@
> sed -e 's!^[0-9/]* [0-9:]* ([0-9]*)>!YYYY/MM/DD HH:MM:SS (PID)>!' \
> -e 's!\(setprocname\|received fds\|setenv\): .*!\1: ...!' \
> -e 's!\(confighash\|mtimehash\) = [0-9a-f]*!\1 = ...!g' \
+ > -e 's!\(in \)[0-9.]*s\b!\1 ...s!g' \
> -e 's!\(pid\)=[0-9]*!\1=...!g' \
> -e 's!\(/server-\)[0-9a-f]*!\1...!g'
> }
@@ -230,6 +232,7 @@
preserved:
$ cat log/server.log.1 log/server.log | tail -10 | filterlog
+ YYYY/MM/DD HH:MM:SS (PID)> forked worker process (pid=...)
YYYY/MM/DD HH:MM:SS (PID)> setprocname: ...
YYYY/MM/DD HH:MM:SS (PID)> received fds: ...
YYYY/MM/DD HH:MM:SS (PID)> chdir to '$TESTTMP/extreload'
@@ -237,6 +240,92 @@
YYYY/MM/DD HH:MM:SS (PID)> setenv: ...
YYYY/MM/DD HH:MM:SS (PID)> confighash = ... mtimehash = ...
YYYY/MM/DD HH:MM:SS (PID)> validate: []
- YYYY/MM/DD HH:MM:SS (PID)> repository: $TESTTMP/extreload
YYYY/MM/DD HH:MM:SS (PID)> worker process exited (pid=...)
YYYY/MM/DD HH:MM:SS (PID)> $TESTTMP/extreload/chgsock/server-... is not owned, exiting.
+
+repository cache
+----------------
+
+ $ rm log/server.log*
+ $ cp $HGRCPATH.unconfigured $HGRCPATH
+ $ cat <<'EOF' >> $HGRCPATH
+ > [cmdserver]
+ > log = $TESTTMP/log/server.log
+ > max-repo-cache = 1
+ > track-log = command, repocache
+ > EOF
+
+isolate socket directory for stable result:
+
+ $ OLDCHGSOCKNAME=$CHGSOCKNAME
+ $ mkdir chgsock
+ $ CHGSOCKNAME=`pwd`/chgsock/server
+
+create empty repo and cache it:
+
+ $ hg init cached
+ $ hg id -R cached
+ 000000000000 tip
+ $ sleep 1
+
+modify repo (and cache will be invalidated):
+
+ $ touch cached/a
+ $ hg ci -R cached -Am 'add a'
+ adding a
+ $ sleep 1
+
+read cached repo:
+
+ $ hg log -R cached
+ changeset: 0:ac82d8b1f7c4
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: add a
+
+ $ sleep 1
+
+discard cached from LRU cache:
+
+ $ hg clone cached cached2
+ updating to branch default
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg id -R cached2
+ ac82d8b1f7c4 tip
+ $ sleep 1
+
+read uncached repo:
+
+ $ hg log -R cached
+ changeset: 0:ac82d8b1f7c4
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: add a
+
+ $ sleep 1
+
+shut down servers and restore environment:
+
+ $ rm -R chgsock
+ $ sleep 2
+ $ CHGSOCKNAME=$OLDCHGSOCKNAME
+
+check server log:
+
+ $ cat log/server.log | filterlog
+ YYYY/MM/DD HH:MM:SS (PID)> init cached
+ YYYY/MM/DD HH:MM:SS (PID)> id -R cached
+ YYYY/MM/DD HH:MM:SS (PID)> loaded repo into cache: $TESTTMP/cached (in ...s)
+ YYYY/MM/DD HH:MM:SS (PID)> repo from cache: $TESTTMP/cached
+ YYYY/MM/DD HH:MM:SS (PID)> ci -R cached -Am 'add a'
+ YYYY/MM/DD HH:MM:SS (PID)> loaded repo into cache: $TESTTMP/cached (in ...s)
+ YYYY/MM/DD HH:MM:SS (PID)> repo from cache: $TESTTMP/cached
+ YYYY/MM/DD HH:MM:SS (PID)> log -R cached
+ YYYY/MM/DD HH:MM:SS (PID)> loaded repo into cache: $TESTTMP/cached (in ...s)
+ YYYY/MM/DD HH:MM:SS (PID)> clone cached cached2
+ YYYY/MM/DD HH:MM:SS (PID)> id -R cached2
+ YYYY/MM/DD HH:MM:SS (PID)> loaded repo into cache: $TESTTMP/cached2 (in ...s)
+ YYYY/MM/DD HH:MM:SS (PID)> log -R cached
+ YYYY/MM/DD HH:MM:SS (PID)> loaded repo into cache: $TESTTMP/cached (in ...s)