tests/test-check-py3-compat.t
author Martin von Zweigbergk <martinvonz@google.com>
Wed, 17 Apr 2019 23:10:29 -0700
changeset 42230 fdbeacb9d456
parent 42070 675775c33ab6
child 43083 7054fd370430
permissions -rw-r--r--
copies: filter out copies from non-existent source later in _chain() _changesetforwardcopies() repeatedly calls _chain(). That is very expensive because _chain() does lookups in the manifest. I hope to split up the function in two parts: 1) simple chaining, not considering end points, and 2) filter out files that don't exist in the end points (and ping-pong copies/renames). This patches gets us closer to that by moving the check for non-existent source later in the function. Now there are no more checks for "src" and "dst" in the first loop; all the filtering of invalid copies is done in the second loop. The code also looks much more consistent now. No measureable impact on `hg debugpathcopies 4.0 4.8`. That shouldn't be surprising since the only case we're doing more checks now is in case of chained copies/renames, which are quire rare in practice. Differential Revision: https://phab.mercurial-scm.org/D6277
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
27279
40eb385f798f tests: add test for Python 3 compatibility
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     1
#require test-repo
40eb385f798f tests: add test for Python 3 compatibility
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     2
29219
3c9066ed557c tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents: 29195
diff changeset
     3
  $ . "$TESTDIR/helpers-testrepo.sh"
27279
40eb385f798f tests: add test for Python 3 compatibility
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     4
  $ cd "$TESTDIR"/..
40eb385f798f tests: add test for Python 3 compatibility
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     5
40263
8cf459d8b111 py3: use py3 as the test tag, dropping the k
Martijn Pieters <mj@octobus.net>
parents: 39830
diff changeset
     6
#if no-py3
33530
05e3fa254b6b demandimport: drop Py3 workarounds from Py2 implementation
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
     7
  $ testrepohg files 'set:(**.py)' \
42024
b05a3e28cf24 automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41921
diff changeset
     8
  > -X contrib/automation/ \
41907
9da97f49d4f4 packaging: establish hgpackaging package
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41853
diff changeset
     9
  > -X contrib/packaging/hgpackaging/ \
41853
d7dc4ac1ff84 inno: script to automate building Inno installer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41556
diff changeset
    10
  > -X contrib/packaging/inno/ \
41921
4371f543efda wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41907
diff changeset
    11
  > -X contrib/packaging/wix/ \
33530
05e3fa254b6b demandimport: drop Py3 workarounds from Py2 implementation
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
    12
  > -X hgdemandimport/demandimportpy2.py \
37127
0e06d8086295 cbor: fix core test-check*
Pulkit Goyal <7895pulkit@gmail.com>
parents: 33918
diff changeset
    13
  > -X mercurial/thirdparty/cbor \
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39402
diff changeset
    14
  > | sed 's|\\|/|g' | xargs "$PYTHON" contrib/check-py3-compat.py
30435
b86a448a2965 zstd: vendor python-zstandard 0.5.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30333
diff changeset
    15
  contrib/python-zstandard/setup.py not using absolute_import
b86a448a2965 zstd: vendor python-zstandard 0.5.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30333
diff changeset
    16
  contrib/python-zstandard/setup_zstd.py not using absolute_import
b86a448a2965 zstd: vendor python-zstandard 0.5.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30333
diff changeset
    17
  contrib/python-zstandard/tests/common.py not using absolute_import
31796
e0dc40530c5a zstd: vendor python-zstandard 0.8.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31480
diff changeset
    18
  contrib/python-zstandard/tests/test_buffer_util.py not using absolute_import
30435
b86a448a2965 zstd: vendor python-zstandard 0.5.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30333
diff changeset
    19
  contrib/python-zstandard/tests/test_compressor.py not using absolute_import
31796
e0dc40530c5a zstd: vendor python-zstandard 0.8.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31480
diff changeset
    20
  contrib/python-zstandard/tests/test_compressor_fuzzing.py not using absolute_import
30435
b86a448a2965 zstd: vendor python-zstandard 0.5.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30333
diff changeset
    21
  contrib/python-zstandard/tests/test_data_structures.py not using absolute_import
31796
e0dc40530c5a zstd: vendor python-zstandard 0.8.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31480
diff changeset
    22
  contrib/python-zstandard/tests/test_data_structures_fuzzing.py not using absolute_import
30435
b86a448a2965 zstd: vendor python-zstandard 0.5.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30333
diff changeset
    23
  contrib/python-zstandard/tests/test_decompressor.py not using absolute_import
31796
e0dc40530c5a zstd: vendor python-zstandard 0.8.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31480
diff changeset
    24
  contrib/python-zstandard/tests/test_decompressor_fuzzing.py not using absolute_import
30435
b86a448a2965 zstd: vendor python-zstandard 0.5.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30333
diff changeset
    25
  contrib/python-zstandard/tests/test_estimate_sizes.py not using absolute_import
b86a448a2965 zstd: vendor python-zstandard 0.5.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30333
diff changeset
    26
  contrib/python-zstandard/tests/test_module_attributes.py not using absolute_import
b86a448a2965 zstd: vendor python-zstandard 0.5.0
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30333
diff changeset
    27
  contrib/python-zstandard/tests/test_train_dictionary.py not using absolute_import
27279
40eb385f798f tests: add test for Python 3 compatibility
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    28
  setup.py not using absolute_import
39401
0cbcf962847e test-check-py3-compat: don't run py2 part if $PYTHON is python3
Yuya Nishihara <yuya@tcha.org>
parents: 39386
diff changeset
    29
#endif
28583
260ce2eed951 tests: perform an ast parse with Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28564
diff changeset
    30
40263
8cf459d8b111 py3: use py3 as the test tag, dropping the k
Martijn Pieters <mj@octobus.net>
parents: 39830
diff changeset
    31
#if py3
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33116
diff changeset
    32
  $ testrepohg files 'set:(**.py) - grep(pygments)' \
33530
05e3fa254b6b demandimport: drop Py3 workarounds from Py2 implementation
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
    33
  > -X hgdemandimport/demandimportpy2.py \
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33116
diff changeset
    34
  > -X hgext/fsmonitor/pywatchman \
39384
722eab64f1ed test-check-py3-compat: exclude thirdparty and cffi which are known to fail
Yuya Nishihara <yuya@tcha.org>
parents: 39383
diff changeset
    35
  > -X mercurial/cffi \
722eab64f1ed test-check-py3-compat: exclude thirdparty and cffi which are known to fail
Yuya Nishihara <yuya@tcha.org>
parents: 39383
diff changeset
    36
  > -X mercurial/thirdparty \
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39402
diff changeset
    37
  > | sed 's|\\|/|g' | xargs "$PYTHON" contrib/check-py3-compat.py \
29810
ceff91dea404 py3: automatically glob out line numbers from check-py3-compat output
Yuya Nishihara <yuya@tcha.org>
parents: 29809
diff changeset
    38
  > | sed 's/[0-9][0-9]*)$/*)/'
39385
34ef6a5a7bcd test-check-py3-compat: update "python3 check-py3-compat.py" output
Yuya Nishihara <yuya@tcha.org>
parents: 39384
diff changeset
    39
  hgext/convert/transport.py: error importing: <*Error> No module named 'svn.client' (error at transport.py:*) (glob) (?)
34ef6a5a7bcd test-check-py3-compat: update "python3 check-py3-compat.py" output
Yuya Nishihara <yuya@tcha.org>
parents: 39384
diff changeset
    40
  hgext/infinitepush/sqlindexapi.py: error importing: <*Error> No module named 'mysql' (error at sqlindexapi.py:*) (glob) (?)
34ef6a5a7bcd test-check-py3-compat: update "python3 check-py3-compat.py" output
Yuya Nishihara <yuya@tcha.org>
parents: 39384
diff changeset
    41
  mercurial/scmwindows.py: error importing: <ValueError> _type_ 'v' not supported (error at win32.py:*) (no-windows !)
34ef6a5a7bcd test-check-py3-compat: update "python3 check-py3-compat.py" output
Yuya Nishihara <yuya@tcha.org>
parents: 39384
diff changeset
    42
  mercurial/win32.py: error importing: <ValueError> _type_ 'v' not supported (error at win32.py:*) (no-windows !)
34ef6a5a7bcd test-check-py3-compat: update "python3 check-py3-compat.py" output
Yuya Nishihara <yuya@tcha.org>
parents: 39384
diff changeset
    43
  mercurial/windows.py: error importing: <ModuleNotFoundError> No module named 'msvcrt' (error at windows.py:*) (no-windows !)
39830
e5871e8fbb57 py3: update missing module list in test-check-py3-compat.t for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 39707
diff changeset
    44
  mercurial/posix.py: error importing: <ModuleNotFoundError> No module named 'fcntl' (error at posix.py:*) (windows !)
e5871e8fbb57 py3: update missing module list in test-check-py3-compat.t for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 39707
diff changeset
    45
  mercurial/scmposix.py: error importing: <ModuleNotFoundError> No module named 'fcntl' (error at scmposix.py:*) (windows !)
28583
260ce2eed951 tests: perform an ast parse with Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28564
diff changeset
    46
#endif
29886
e2c086f147ef py3: split check of pygments-using files from the rest of the tree
Augie Fackler <augie@google.com>
parents: 29810
diff changeset
    47
40263
8cf459d8b111 py3: use py3 as the test tag, dropping the k
Martijn Pieters <mj@octobus.net>
parents: 39830
diff changeset
    48
#if py3 pygments
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33116
diff changeset
    49
  $ testrepohg files 'set:(**.py) and grep(pygments)' | sed 's|\\|/|g' \
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39402
diff changeset
    50
  > | xargs "$PYTHON" contrib/check-py3-compat.py \
29886
e2c086f147ef py3: split check of pygments-using files from the rest of the tree
Augie Fackler <augie@google.com>
parents: 29810
diff changeset
    51
  > | sed 's/[0-9][0-9]*)$/*)/'
e2c086f147ef py3: split check of pygments-using files from the rest of the tree
Augie Fackler <augie@google.com>
parents: 29810
diff changeset
    52
#endif