test-chg.t
100 lines
| 2.5 KiB
| text/troff
|
Tads3Lexer
/ tests / test-chg.t
|
r29274 | #require chg | ||
|
r29275 | $ cp $HGRCPATH $HGRCPATH.orig | ||
|
r28516 | init repo | ||
|
r29274 | $ chg init foo | ||
|
r28516 | $ cd foo | ||
ill-formed config | ||||
|
r29274 | $ chg status | ||
|
r28516 | $ echo '=brokenconfig' >> $HGRCPATH | ||
|
r29274 | $ chg status | ||
|
r28516 | hg: parse error at * (glob) | ||
[255] | ||||
|
r29088 | |||
|
r29275 | $ cp $HGRCPATH.orig $HGRCPATH | ||
|
r30677 | |||
long socket path | ||||
$ sockpath=$TESTTMP/this/path/should/be/longer/than/one-hundred-and-seven/characters/where/107/is/the/typical/size/limit/of/unix-domain-socket | ||||
$ mkdir -p $sockpath | ||||
$ bakchgsockname=$CHGSOCKNAME | ||||
$ CHGSOCKNAME=$sockpath/server | ||||
$ export CHGSOCKNAME | ||||
$ chg root | ||||
$TESTTMP/foo | ||||
$ rm -rf $sockpath | ||||
$ CHGSOCKNAME=$bakchgsockname | ||||
$ export CHGSOCKNAME | ||||
|
r29275 | $ cd .. | ||
server lifecycle | ||||
---------------- | ||||
chg server should be restarted on code change, and old server will shut down | ||||
automatically. In this test, we use the following time parameters: | ||||
- "sleep 1" to make mtime different | ||||
- "sleep 2" to notice mtime change (polling interval is 1 sec) | ||||
set up repository with an extension: | ||||
$ chg init extreload | ||||
$ cd extreload | ||||
$ touch dummyext.py | ||||
$ cat <<EOF >> .hg/hgrc | ||||
> [extensions] | ||||
> dummyext = dummyext.py | ||||
> EOF | ||||
isolate socket directory for stable result: | ||||
$ OLDCHGSOCKNAME=$CHGSOCKNAME | ||||
$ mkdir chgsock | ||||
$ CHGSOCKNAME=`pwd`/chgsock/server | ||||
warm up server: | ||||
$ CHGDEBUG= chg log 2>&1 | egrep 'instruction|start' | ||||
|
r30620 | chg: debug: start cmdserver at $TESTTMP/extreload/chgsock/server.* (glob) | ||
|
r29275 | |||
new server should be started if extension modified: | ||||
$ sleep 1 | ||||
$ touch dummyext.py | ||||
$ CHGDEBUG= chg log 2>&1 | egrep 'instruction|start' | ||||
chg: debug: instruction: unlink $TESTTMP/extreload/chgsock/server-* (glob) | ||||
chg: debug: instruction: reconnect | ||||
|
r30620 | chg: debug: start cmdserver at $TESTTMP/extreload/chgsock/server.* (glob) | ||
|
r29275 | |||
old server will shut down, while new server should still be reachable: | ||||
$ sleep 2 | ||||
$ CHGDEBUG= chg log 2>&1 | (egrep 'instruction|start' || true) | ||||
socket file should never be unlinked by old server: | ||||
(simulates unowned socket by updating mtime, which makes sure server exits | ||||
at polling cycle) | ||||
$ ls chgsock/server-* | ||||
chgsock/server-* (glob) | ||||
$ touch chgsock/server-* | ||||
$ sleep 2 | ||||
$ ls chgsock/server-* | ||||
chgsock/server-* (glob) | ||||
since no server is reachable from socket file, new server should be started: | ||||
(this test makes sure that old server shut down automatically) | ||||
$ CHGDEBUG= chg log 2>&1 | egrep 'instruction|start' | ||||
|
r30620 | chg: debug: start cmdserver at $TESTTMP/extreload/chgsock/server.* (glob) | ||
|
r29275 | |||
shut down servers and restore environment: | ||||
$ rm -R chgsock | ||||
$ CHGSOCKNAME=$OLDCHGSOCKNAME | ||||
$ cd .. | ||||