tests/test-schemes.t
author Simon Sapin <simon.sapin@octobus.net>
Fri, 21 Jan 2022 17:54:03 +0100
changeset 48745 94e36b230990
parent 40034 393e44324037
permissions -rw-r--r--
status: prefer relative paths in Rust code … when the repository root is under the current directory, so the kernel needs to traverse fewer directory in every call to `read_dir` or `symlink_metadata`. Better yet would be to use libc functions like `openat` and `fstatat` to remove such repeated traversals entirely, but the standard library does not provide APIs based on those. Maybe with a crate like https://crates.io/crates/openat instead? Benchmarks of `rhg status` show that this patch is neutral in some configurations, and makes the command up to ~20% faster in others. Below is semi-arbitrary subset of results. The four numeric columns are: time (in seconds) with this changeset’s parent, time with this changeset, time difference (negative is better), time ratio (less than 1 is better). ``` mercurial-dirstate-v1 | default-plain-clean.no-iu.pbr | 0.0061 -> 0.0059: -0.0002 (0.97) mercurial-dirstate-v2 | default-plain-clean.no-iu.pbr | 0.0029 -> 0.0028: -0.0001 (0.97) mozilla-dirstate-v1 | default-plain-clean.no-iu.pbr | 0.2110 -> 0.2102: -0.0007 (1.00) mozilla-dirstate-v2 | default-copies-clean.ignored.pbr | 0.0489 -> 0.0401: -0.0088 (0.82) mozilla-dirstate-v2 | default-copies-clean.no-iu.pbr | 0.0479 -> 0.0393: -0.0085 (0.82) mozilla-dirstate-v2 | default-copies-large.all.pbr | 0.1262 -> 0.1210: -0.0051 (0.96) mozilla-dirstate-v2 | default-copies-small.ignored-unknown.pbr | 0.1262 -> 0.1200: -0.0062 (0.95) mozilla-dirstate-v2 | default-copies-small.ignored.pbr | 0.0536 -> 0.0417: -0.0119 (0.78) mozilla-dirstate-v2 | default-copies-small.no-iu.pbr | 0.0482 -> 0.0393: -0.0089 (0.81) mozilla-dirstate-v2 | default-plain-clean.ignored.pbr | 0.0518 -> 0.0402: -0.0116 (0.78) mozilla-dirstate-v2 | default-plain-clean.no-iu.pbr | 0.0481 -> 0.0392: -0.0088 (0.82) mozilla-dirstate-v2 | default-plain-large.all.pbr | 0.1271 -> 0.1218: -0.0052 (0.96) mozilla-dirstate-v2 | default-plain-small.ignored-unknown.pbr | 0.1225 -> 0.1202: -0.0022 (0.98) mozilla-dirstate-v2 | default-plain-small.ignored.pbr | 0.0510 -> 0.0418: -0.0092 (0.82) mozilla-dirstate-v2 | default-plain-small.no-iu.pbr | 0.0480 -> 0.0394: -0.0086 (0.82) netbeans-dirstate-v1 | default-plain-clean.no-iu.pbr | 0.1442 -> 0.1422: -0.0020 (0.99) netbeans-dirstate-v2 | default-plain-clean.no-iu.pbr | 0.0325 -> 0.0282: -0.0043 (0.87) ``` Differential Revision: https://phab.mercurial-scm.org/D12175
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 18910
diff changeset
     1
#require serve
9964
e600ad9bc257 schemes extension
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
     2
12486
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
     3
  $ cat <<EOF >> $HGRCPATH
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
     4
  > [extensions]
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
     5
  > schemes=
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
     6
  > 
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
     7
  > [schemes]
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
     8
  > l = http://localhost:$HGPORT/
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
     9
  > parts = http://{1}:$HGPORT/
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    10
  > z = file:\$PWD/
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    11
  > EOF
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    12
  $ hg init test
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    13
  $ cd test
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    14
  $ echo a > a
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    15
  $ hg ci -Am initial
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    16
  adding a
18910
b52404a914a9 scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
    17
b52404a914a9 scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
    18
invalid scheme
b52404a914a9 scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
    19
b52404a914a9 scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
    20
  $ hg log -R z:z
b52404a914a9 scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
    21
  abort: no '://' in scheme url 'z:z'
b52404a914a9 scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
    22
  [255]
b52404a914a9 scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
    23
b52404a914a9 scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
    24
http scheme
b52404a914a9 scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
    25
12486
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    26
  $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    27
  $ cat hg.pid >> $DAEMON_PIDS
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    28
  $ hg incoming l://
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    29
  comparing with l://
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    30
  searching for changes
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    31
  no changes found
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    32
  [1]
9964
e600ad9bc257 schemes extension
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    33
12486
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    34
check that {1} syntax works
9964
e600ad9bc257 schemes extension
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    35
12486
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    36
  $ hg incoming --debug parts://localhost
12643
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12486
diff changeset
    37
  using http://localhost:$HGPORT/
13603
395a84f78736 httprepo: use caps instead of between for compat check
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 12643
diff changeset
    38
  sending capabilities command
13815
d066d8d652c8 url: add trailing slashes to URLs with hostnames that don't have one
Brodie Rao <brodie@bitheap.org>
parents: 13742
diff changeset
    39
  comparing with parts://localhost/
14164
cb98fed52495 discovery: add new set-based discovery
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13815
diff changeset
    40
  query 1; heads
14624
f03c82d1f50a setdiscovery: batch heads and known(ownheads)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 14164
diff changeset
    41
  sending batch command
12486
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    42
  searching for changes
14164
cb98fed52495 discovery: add new set-based discovery
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13815
diff changeset
    43
  all remote heads known locally
12486
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    44
  no changes found
40034
393e44324037 httppeer: report http statistics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 27982
diff changeset
    45
  (sent 2 HTTP requests and * bytes; received * bytes in responses) (glob)
12486
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    46
  [1]
9964
e600ad9bc257 schemes extension
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    47
12486
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    48
check that paths are expanded
10070
9d1195b2f00d schemes: url parts are counted from 1
Alexander Solovyov <piranha@piranha.org.ua>
parents: 9964
diff changeset
    49
12486
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    50
  $ PWD=`pwd` hg incoming z://
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    51
  comparing with z://
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    52
  searching for changes
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    53
  no changes found
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    54
  [1]
11154
17031fea4e95 expand paths to local repository or bundle in appropriate classes
Alexander Solovyov <piranha@piranha.org.ua>
parents: 10070
diff changeset
    55
27982
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    56
check that debugexpandscheme outputs the canonical form
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    57
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    58
  $ hg debugexpandscheme bb://user/repo
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    59
  https://bitbucket.org/user/repo
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    60
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    61
expanding an unknown scheme emits the input
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    62
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    63
  $ hg debugexpandscheme foobar://this/that
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    64
  foobar://this/that
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    65
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    66
expanding a canonical URL emits the input
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    67
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    68
  $ hg debugexpandscheme https://bitbucket.org/user/repo
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    69
  https://bitbucket.org/user/repo
bf1d5c223ac0 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com>
parents: 22046
diff changeset
    70
12486
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    71
errors
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    72
95b4af4eaa06 tests: unify test-schemes
Matt Mackall <mpm@selenic.com>
parents: 11154
diff changeset
    73
  $ cat errors.log
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15446
diff changeset
    74
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15446
diff changeset
    75
  $ cd ..