tests/test-dispatch.py
author Boris Feld <boris.feld@octobus.net>
Mon, 14 Jan 2019 17:15:21 +0100
changeset 41277 61f9ef23a12f
parent 37924 32106c474086
child 43076 2372284d9457
permissions -rw-r--r--
dagop: minor python optimization to `headrevs` Less lookup and less function call never hurt. This provides a small speedup on various run of the 'heads()' revset. This also buys back some of the slow down we observed in the previous changesets for single value lookup. Performance number: 0) before dagop.headrevs usage 1) after dagop.headrevs usage 2) after this change revset: heads(all()) plain min max first last reverse rev..rst rev..ast sort sor..rst sor..ast 0) 0.036503 0.032564 0.030024 0.032378 0.030887 0.036367 0.031713 0.032205 0.036467 0.032286 0.030300 1) 0.036668 0.035347 108% 0.035611 118% 0.035358 109% 0.035726 115% 0.036411 0.035261 111% 0.036096 112% 0.036052 0.035095 108% 0.035792 118% 2) 0.034254 93% 0.034482 0.035003 0.034353 0.033754 94% 0.034689 0.034361 0.035059 0.034636 0.034662 0.035465 revset: heads(-10000:-1) plain min max first last reverse rev..rst rev..ast sort sor..rst sor..ast 0) 0.003936 0.003218 0.003227 0.003302 0.003328 0.003848 0.003305 0.003252 0.003839 0.003306 0.003279 1) 0.003870 0.003785 117% 0.003821 118% 0.003780 114% 0.003769 113% 0.003776 0.003792 114% 0.003805 117% 0.003810 0.003798 114% 0.003840 117% 2) 0.003666 94% 0.003577 94% 0.003632 0.003644 0.003614 0.003638 0.003652 0.003632 0.003661 0.003660 0.003658 revset: (-5000:-1000) and heads(-10000:-1) plain min max first last reverse rev..rst rev..ast sort sor..rst sor..ast 0) 0.004244 0.003368 0.003313 0.003367 0.003327 0.004325 0.003401 0.003379 0.004310 0.003359 0.003396 1) 0.003969 93% 0.003862 114% 0.003834 115% 0.003810 113% 0.003822 114% 0.003940 91% 0.003908 114% 0.003814 112% 0.003986 92% 0.003954 117% 0.003816 112% 2) 0.003728 93% 0.003638 94% 0.003659 0.003685 0.003628 94% 0.003716 94% 0.003653 93% 0.003655 0.003748 94% 0.003740 94% 0.003686 revset: heads(matching(tip, "author")) plain min max first last reverse rev..rst rev..ast sort sor..rst sor..ast 0) 7.574666 7.545950 7.570743 7.578697 7.525725 7.509929 7.443854 7.488442 7.452880 7.445411 7.689107 1) 7.549390 7.389162 7.529790 7.536297 7.450467 7.555347 7.404586 7.514948 7.542794 7.524787 7.536918 2) 7.568294 7.479326 7.578624 7.380375 7.440102 7.454218 7.515189 7.556511 7.524585 7.537566 7.507418 revset: heads(matching(tip, "author")) and -10000:-1 plain min max first last reverse rev..rst rev..ast sort sor..rst sor..ast 0) 7.512533 7.605877 7.382894 7.462109 7.420086 7.575034 7.448452 7.549374 7.457880 7.450308 7.515019 1) 7.548677 7.551832 7.629598 7.494857 7.550554 7.521838 7.451794 error 7.321781 7.546885 7.557523 2) 7.451985 7.541044 7.506563 7.470928 7.512618 7.474988 7.498887 7.547930 7.560276 7.618599 7.465442 revset: (-10000:-1) and heads(matching(tip, "author")) plain min max first last reverse rev..rst rev..ast sort sor..rst sor..ast 0) 7.465419 7.570089 7.439594 7.521221 7.498716 7.492922 7.479108 7.552397 7.407888 error 7.468264 1) 7.539866 7.548045 7.491761 7.517170 7.469824 7.501990 7.579102 7.502568 7.578102 7.555754 7.567622 2) 7.370463 7.514712 7.497024 7.679428 7.638138 7.490775 7.472273 7.652587 7.584139 7.511893 7.466384
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28405
1d9d29d4813a tests: test-dispatch use print_function
timeless <timeless@mozdev.org>
parents: 28404
diff changeset
     1
from __future__ import absolute_import, print_function
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
     2
import os
37924
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36374
diff changeset
     3
import sys
28404
06245740b408 tests: test-dispatch use absolute_import
timeless <timeless@mozdev.org>
parents: 14438
diff changeset
     4
from mercurial import (
06245740b408 tests: test-dispatch use absolute_import
timeless <timeless@mozdev.org>
parents: 14438
diff changeset
     5
    dispatch,
06245740b408 tests: test-dispatch use absolute_import
timeless <timeless@mozdev.org>
parents: 14438
diff changeset
     6
)
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
     7
37924
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36374
diff changeset
     8
def printb(data, end=b'\n'):
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36374
diff changeset
     9
    out = getattr(sys.stdout, 'buffer', sys.stdout)
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36374
diff changeset
    10
    out.write(data + end)
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36374
diff changeset
    11
    out.flush()
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36374
diff changeset
    12
5178
18a9fbb5cd78 dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents: 5095
diff changeset
    13
def testdispatch(cmd):
18a9fbb5cd78 dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents: 5095
diff changeset
    14
    """Simple wrapper around dispatch.dispatch()
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    15
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    16
    Prints command and result value, but does not handle quoting.
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    17
    """
37924
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36374
diff changeset
    18
    printb(b"running: %s" % (cmd,))
14438
08bfec2ef031 dispatch: wrap dispatch related information in a request class
Idan Kamara <idankk86@gmail.com>
parents: 9031
diff changeset
    19
    req = dispatch.request(cmd.split())
08bfec2ef031 dispatch: wrap dispatch related information in a request class
Idan Kamara <idankk86@gmail.com>
parents: 9031
diff changeset
    20
    result = dispatch.dispatch(req)
37924
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36374
diff changeset
    21
    printb(b"result: %r" % (result,))
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    22
36374
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    23
testdispatch(b"init test1")
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    24
os.chdir('test1')
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    25
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    26
# create file 'foo', add and commit
9031
3b76321aa0de compat: use open() instead of file() everywhere
Alejandro Santos <alejolp@alejolp.com>
parents: 5178
diff changeset
    27
f = open('foo', 'wb')
36374
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    28
f.write(b'foo\n')
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    29
f.close()
36374
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    30
testdispatch(b"add foo")
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    31
testdispatch(b"commit -m commit1 -d 2000-01-01 foo")
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    32
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    33
# append to file 'foo' and commit
9031
3b76321aa0de compat: use open() instead of file() everywhere
Alejandro Santos <alejolp@alejolp.com>
parents: 5178
diff changeset
    34
f = open('foo', 'ab')
36374
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    35
f.write(b'bar\n')
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    36
f.close()
36374
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    37
testdispatch(b"commit -m commit2 -d 2000-01-02 foo")
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    38
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    39
# check 88803a69b24 (fancyopts modified command table)
36374
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    40
testdispatch(b"log -r 0")
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    41
testdispatch(b"log -r tip")