tests/test-check-pyflakes.t
author Arseniy Alekseyev <aalekseyev@janestreet.com>
Thu, 21 Dec 2023 20:30:03 +0000
changeset 51396 3f37d80d3ab4
parent 49283 44b26349127b
permissions -rw-r--r--
revlog: add a C implementation of `headrevsdiff` Python implementation of `headrevsdiff` can be very slow in the worst case compared with the `heads` computation it replaces, since the latter is done in C. Even the average case of this Python implementation is still noticeable in the profiles. This patch makes the computation much much faster by doing it in C.

#require test-repo pyflakes hg10

  $ . "$TESTDIR/helpers-testrepo.sh"

run pyflakes on all tracked files ending in .py or without a file ending
(skipping binary file random-seed)

  $ cat > test.py <<EOF
  > print(undefinedname)
  > EOF
  $ "$PYTHON" -m pyflakes test.py 2>/dev/null | "$TESTDIR/filterpyflakes.py"
  test.py:1:* undefined name 'undefinedname' (glob)
  
  $ cd "`dirname "$TESTDIR"`"

  $ testrepohg locate 'set:**.py or grep("^#!.*python")' \
  > -X hgext/fsmonitor/pywatchman \
  > -X contrib/python-zstandard \
  > -X mercurial/thirdparty \
  > 2>/dev/null \
  > | xargs "$PYTHON" -m pyflakes 2>/dev/null | "$TESTDIR/filterpyflakes.py"
  contrib/perf.py:*:* undefined name 'xrange' (glob) (?)
  mercurial/pycompat.py:*:* 'codecs' imported but unused (glob)
  mercurial/pycompat.py:*:* 'concurrent.futures' imported but unused (glob)
  mercurial/pycompat.py:*:* 'http.client as httplib' imported but unused (glob)
  mercurial/pycompat.py:*:* 'http.cookiejar as cookielib' imported but unused (glob)
  mercurial/pycompat.py:*:* 'io' imported but unused (glob)
  mercurial/pycompat.py:*:* 'queue' imported but unused (glob)
  mercurial/pycompat.py:*:* 'socketserver' imported but unused (glob)
  mercurial/pycompat.py:*:* 'xmlrpc.client as xmlrpclib' imported but unused (glob)
  mercurial/util.py:*:* 'pickle' imported but unused (glob)