annotate tests/test-check-py3-compat.t @ 31846:1064a296a2a7

fsmonitor: match watchman and filesystem encoding watchman's paths encoding can differ from filesystem encoding. For example, on Windows, it's always utf-8. Before this patch, on Windows, mismatch in path comparison between fsmonitor state and osutil.statfiles would yield a clean status for added/modified files. In addition to status reporting wrong results, this leads to files being discarded from changesets while doing history editing operations such as rebase. Benchmark: There is a little overhead at module import: python -m timeit "import hgext.fsmonitor" Windows before patch: 1000000 loops, best of 3: 0.563 usec per loop Windows after patch: 1000000 loops, best of 3: 0.583 usec per loop Linx before patch: 1000000 loops, best of 3: 0.579 usec per loop Linux after patch: 1000000 loops, best of 3: 0.588 usec per loop 10000 calls to _watchmantofsencoding: python -m timeit -s "from hgext.fsmonitor import _watchmantofsencoding, _fixencoding" "fname = '/path/to/file'" "for i in range(10000):" " if _fixencoding: fname = _watchmantofsencoding(fname)" Windows (_fixencoding is True): 100 loops, best of 3: 19.5 msec per loop Linux (_fixencoding is False): 100 loops, best of 3: 3.08 msec per loop
author Olivier Trempe <oliviertrempe@gmail.com>
date Wed, 08 Mar 2017 09:03:42 -0500
parents e0dc40530c5a
children 9ed70525fd6e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
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
27438
f121cf57ca9a tests: convert directory separators to '/' for MSYS in test-check-py-compat
Matt Harbison <matt_harbison@yahoo.com>
parents: 27361
diff changeset
6 $ hg files 'set:(**.py)' | 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
7 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
8 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
9 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
10 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
11 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
12 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
13 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
14 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
15 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
16 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
17 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
18 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
19 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
20 i18n/check-translation.py not using absolute_import
40eb385f798f tests: add test for Python 3 compatibility
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
21 setup.py not using absolute_import
40eb385f798f tests: add test for Python 3 compatibility
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
22 tests/test-demandimport.py not using absolute_import
28583
260ce2eed951 tests: perform an ast parse with Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28564
diff changeset
23
260ce2eed951 tests: perform an ast parse with Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28564
diff changeset
24 #if py3exe
30673
81bf1a686b99 py3: exclude pywatchman from test-check-py3-compat.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30672
diff changeset
25 $ hg files 'set:(**.py) - grep(pygments)' -X hgext/fsmonitor/pywatchman \
81bf1a686b99 py3: exclude pywatchman from test-check-py3-compat.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30672
diff changeset
26 > | sed 's|\\|/|g' | xargs $PYTHON3 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
27 > | sed 's/[0-9][0-9]*)$/*)/'
31480
07fe520280d2 tests: allow ModuleNotFoundError in addition to ImportError
Martin von Zweigbergk <martinvonz@google.com>
parents: 30895
diff changeset
28 hgext/convert/transport.py: error importing: <*Error> No module named 'svn.client' (error at transport.py:*) (glob)
31846
1064a296a2a7 fsmonitor: match watchman and filesystem encoding
Olivier Trempe <oliviertrempe@gmail.com>
parents: 31796
diff changeset
29 hgext/fsmonitor/state.py: error importing: <SyntaxError> from __future__ imports must occur at the beginning of the file (__init__.py, line 30) (error at __init__.py:*)
1064a296a2a7 fsmonitor: match watchman and filesystem encoding
Olivier Trempe <oliviertrempe@gmail.com>
parents: 31796
diff changeset
30 hgext/fsmonitor/watchmanclient.py: error importing: <SyntaxError> from __future__ imports must occur at the beginning of the file (__init__.py, line 30) (error at __init__.py:*)
31480
07fe520280d2 tests: allow ModuleNotFoundError in addition to ImportError
Martin von Zweigbergk <martinvonz@google.com>
parents: 30895
diff changeset
31 mercurial/cffi/bdiff.py: error importing: <*Error> No module named 'mercurial.cffi' (error at check-py3-compat.py:*) (glob)
07fe520280d2 tests: allow ModuleNotFoundError in addition to ImportError
Martin von Zweigbergk <martinvonz@google.com>
parents: 30895
diff changeset
32 mercurial/cffi/mpatch.py: error importing: <*Error> No module named 'mercurial.cffi' (error at check-py3-compat.py:*) (glob)
07fe520280d2 tests: allow ModuleNotFoundError in addition to ImportError
Martin von Zweigbergk <martinvonz@google.com>
parents: 30895
diff changeset
33 mercurial/cffi/osutil.py: error importing: <*Error> No module named 'mercurial.cffi' (error at check-py3-compat.py:*) (glob)
07fe520280d2 tests: allow ModuleNotFoundError in addition to ImportError
Martin von Zweigbergk <martinvonz@google.com>
parents: 30895
diff changeset
34 mercurial/scmwindows.py: error importing: <*Error> No module named 'msvcrt' (error at win32.py:*) (glob)
07fe520280d2 tests: allow ModuleNotFoundError in addition to ImportError
Martin von Zweigbergk <martinvonz@google.com>
parents: 30895
diff changeset
35 mercurial/win32.py: error importing: <*Error> No module named 'msvcrt' (error at win32.py:*) (glob)
07fe520280d2 tests: allow ModuleNotFoundError in addition to ImportError
Martin von Zweigbergk <martinvonz@google.com>
parents: 30895
diff changeset
36 mercurial/windows.py: error importing: <*Error> No module named 'msvcrt' (error at windows.py:*) (glob)
28583
260ce2eed951 tests: perform an ast parse with Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28564
diff changeset
37
260ce2eed951 tests: perform an ast parse with Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28564
diff changeset
38 #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
39
e2c086f147ef py3: split check of pygments-using files from the rest of the tree
Augie Fackler <augie@google.com>
parents: 29810
diff changeset
40 #if py3exe py3pygments
e2c086f147ef py3: split check of pygments-using files from the rest of the tree
Augie Fackler <augie@google.com>
parents: 29810
diff changeset
41 $ hg files 'set:(**.py) and grep(pygments)' | sed 's|\\|/|g' \
e2c086f147ef py3: split check of pygments-using files from the rest of the tree
Augie Fackler <augie@google.com>
parents: 29810
diff changeset
42 > | xargs $PYTHON3 contrib/check-py3-compat.py \
e2c086f147ef py3: split check of pygments-using files from the rest of the tree
Augie Fackler <augie@google.com>
parents: 29810
diff changeset
43 > | 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
44 #endif