tests/test-chg.t
author Gregory Szorc <gregory.szorc@gmail.com>
Sat, 04 Jun 2016 11:16:08 -0700
changeset 29293 1b3a0b0c414f
parent 29275 e53f961ac75f
child 29343 e095b9e753f7
permissions -rw-r--r--
sslutil: print the fingerprint from the last hash used Before, we would always print the unprefixed SHA-1 fingerprint when fingerprint comparison failed. Now, we print the fingerprint of the last hash used, including the prefix if necessary. This helps ensure that the printed hash type matches what is in the user configuration. There are still some cases where this can print a mismatched hash type. e.g. if there are both SHA-1 and SHA-256 fingerprints in the config, we could print a SHA-1 hash if it comes after the SHA-256 hash. But I'm inclined to ignore this edge case. While I was here, the "section" variable assignment has been moved to just above where it is used because it is now only needed for this error message and it makes the code easier to read.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29274
148a9a5379f0 test-chg: run only with chg
Yuya Nishihara <yuya@tcha.org>
parents: 29088
diff changeset
     1
#require chg
148a9a5379f0 test-chg: run only with chg
Yuya Nishihara <yuya@tcha.org>
parents: 29088
diff changeset
     2
29275
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
     3
  $ cp $HGRCPATH $HGRCPATH.orig
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
     4
28516
3bf2892f685f chgserver: handle ParseError during validate
Jun Wu <quark@fb.com>
parents:
diff changeset
     5
init repo
3bf2892f685f chgserver: handle ParseError during validate
Jun Wu <quark@fb.com>
parents:
diff changeset
     6
29274
148a9a5379f0 test-chg: run only with chg
Yuya Nishihara <yuya@tcha.org>
parents: 29088
diff changeset
     7
  $ chg init foo
28516
3bf2892f685f chgserver: handle ParseError during validate
Jun Wu <quark@fb.com>
parents:
diff changeset
     8
  $ cd foo
3bf2892f685f chgserver: handle ParseError during validate
Jun Wu <quark@fb.com>
parents:
diff changeset
     9
3bf2892f685f chgserver: handle ParseError during validate
Jun Wu <quark@fb.com>
parents:
diff changeset
    10
ill-formed config
3bf2892f685f chgserver: handle ParseError during validate
Jun Wu <quark@fb.com>
parents:
diff changeset
    11
29274
148a9a5379f0 test-chg: run only with chg
Yuya Nishihara <yuya@tcha.org>
parents: 29088
diff changeset
    12
  $ chg status
28516
3bf2892f685f chgserver: handle ParseError during validate
Jun Wu <quark@fb.com>
parents:
diff changeset
    13
  $ echo '=brokenconfig' >> $HGRCPATH
29274
148a9a5379f0 test-chg: run only with chg
Yuya Nishihara <yuya@tcha.org>
parents: 29088
diff changeset
    14
  $ chg status
28516
3bf2892f685f chgserver: handle ParseError during validate
Jun Wu <quark@fb.com>
parents:
diff changeset
    15
  hg: parse error at * (glob)
3bf2892f685f chgserver: handle ParseError during validate
Jun Wu <quark@fb.com>
parents:
diff changeset
    16
  [255]
29088
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    17
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    18
alias having an environment variable and set to use pager
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    19
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    20
  $ rm $HGRCPATH
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    21
  $ cat >> $HGRCPATH <<'EOF'
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    22
  > [ui]
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    23
  > formatted = yes
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    24
  > [extensions]
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    25
  > pager =
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    26
  > [pager]
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    27
  > pager = sed -e 's/^/P/'
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    28
  > attend = printa
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    29
  > [alias]
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    30
  > printa = log -T "$A\n" -r 0
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    31
  > EOF
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    32
29274
148a9a5379f0 test-chg: run only with chg
Yuya Nishihara <yuya@tcha.org>
parents: 29088
diff changeset
    33
  $ A=1 chg printa
29088
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    34
  P1
29274
148a9a5379f0 test-chg: run only with chg
Yuya Nishihara <yuya@tcha.org>
parents: 29088
diff changeset
    35
  $ A=2 chg printa
29088
983353035cec chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com>
parents: 28516
diff changeset
    36
  P2
29275
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    37
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    38
  $ cp $HGRCPATH.orig $HGRCPATH
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    39
  $ cd ..
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    40
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    41
server lifecycle
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    42
----------------
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    43
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    44
chg server should be restarted on code change, and old server will shut down
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    45
automatically. In this test, we use the following time parameters:
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    46
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    47
 - "sleep 1" to make mtime different
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    48
 - "sleep 2" to notice mtime change (polling interval is 1 sec)
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    49
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    50
set up repository with an extension:
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    51
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    52
  $ chg init extreload
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    53
  $ cd extreload
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    54
  $ touch dummyext.py
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    55
  $ cat <<EOF >> .hg/hgrc
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    56
  > [extensions]
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    57
  > dummyext = dummyext.py
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    58
  > EOF
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    59
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    60
isolate socket directory for stable result:
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    61
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    62
  $ OLDCHGSOCKNAME=$CHGSOCKNAME
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    63
  $ mkdir chgsock
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    64
  $ CHGSOCKNAME=`pwd`/chgsock/server
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    65
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    66
warm up server:
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    67
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    68
  $ CHGDEBUG= chg log 2>&1 | egrep 'instruction|start'
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    69
  chg: debug: start cmdserver at $TESTTMP/extreload/chgsock/server
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    70
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    71
new server should be started if extension modified:
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    72
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    73
  $ sleep 1
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    74
  $ touch dummyext.py
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    75
  $ CHGDEBUG= chg log 2>&1 | egrep 'instruction|start'
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    76
  chg: debug: instruction: unlink $TESTTMP/extreload/chgsock/server-* (glob)
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    77
  chg: debug: instruction: reconnect
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    78
  chg: debug: start cmdserver at $TESTTMP/extreload/chgsock/server
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    79
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    80
old server will shut down, while new server should still be reachable:
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    81
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    82
  $ sleep 2
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    83
  $ CHGDEBUG= chg log 2>&1 | (egrep 'instruction|start' || true)
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    84
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    85
socket file should never be unlinked by old server:
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    86
(simulates unowned socket by updating mtime, which makes sure server exits
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    87
at polling cycle)
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    88
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    89
  $ ls chgsock/server-*
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    90
  chgsock/server-* (glob)
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    91
  $ touch chgsock/server-*
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    92
  $ sleep 2
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    93
  $ ls chgsock/server-*
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    94
  chgsock/server-* (glob)
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    95
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    96
since no server is reachable from socket file, new server should be started:
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    97
(this test makes sure that old server shut down automatically)
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    98
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
    99
  $ CHGDEBUG= chg log 2>&1 | egrep 'instruction|start'
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
   100
  chg: debug: start cmdserver at $TESTTMP/extreload/chgsock/server
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
   101
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
   102
shut down servers and restore environment:
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
   103
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
   104
  $ rm -R chgsock
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
   105
  $ CHGSOCKNAME=$OLDCHGSOCKNAME
e53f961ac75f test-chg: add basic tests for server lifecycle
Yuya Nishihara <yuya@tcha.org>
parents: 29274
diff changeset
   106
  $ cd ..