tests/revnamesext.py
author Martin von Zweigbergk <martinvonz@google.com>
Tue, 10 Dec 2019 14:40:44 -0800
changeset 43838 a47ccdcce4f9
parent 43076 2372284d9457
child 48875 6000f5b25c9b
permissions -rw-r--r--
dirs: fix out-of-bounds access in Py3 The hack for mutating Python's variable-length integers that was ported to py3 in cb3048746dae (dirs: port PyInt code to work on Python 3, 2016-10-08) was reading from ob_digit[1] instead of ob_digit[0] for some reason. Space for ob_digit[1] would only be allocated for integers larger than 30 bits, so we ended up writing to unallocated memory. Also, we would write an integer that's 2^30 times too large, so we would never free these integers. Found by AddressSanitizer. Differential Revision: https://phab.mercurial-scm.org/D7597
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33048
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     1
# Dummy extension to define a namespace containing revision names
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     2
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     3
from __future__ import absolute_import
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     4
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
     5
from mercurial import namespaces
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
     6
33048
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     7
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     8
def reposetup(ui, repo):
36548
086fc71fbb09 py3: mark all string literals in test-command-template.t as bytes
Yuya Nishihara <yuya@tcha.org>
parents: 33048
diff changeset
     9
    names = {b'r%d' % rev: repo[rev].node() for rev in repo}
33048
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    10
    namemap = lambda r, name: names.get(name)
36548
086fc71fbb09 py3: mark all string literals in test-command-template.t as bytes
Yuya Nishihara <yuya@tcha.org>
parents: 33048
diff changeset
    11
    nodemap = lambda r, node: [b'r%d' % repo[node].rev()]
33048
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    12
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    13
    ns = namespaces.namespace(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    14
        b'revnames',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    15
        templatename=b'revname',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    16
        logname=b'revname',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    17
        listnames=lambda r: names.keys(),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    18
        namemap=namemap,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    19
        nodemap=nodemap,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    20
    )
33048
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    21
    repo.names.addnamespace(ns)