tests/test-check-pyflakes.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Mon, 25 Mar 2024 02:09:15 +0100
branchstable
changeset 51517 4ee50d98d35c
parent 49283 44b26349127b
permissions -rw-r--r--
phases: update the phase set as we go during retract boundary Apparently iterating over the `changed_revs` dictionary is very expensive. On mozilla-try-2019-02-18, a perf::unbundle call with a 10 000 changesets bundle gives give use the following timing. e57d4b868a3e: 4.6 seconds ac1c75188440: 102.5 seconds prev-changeset: 30.0 seconds this-changeset: 4.6 seconds So, the performance regression is gone. Once again: thanks to marvelous Python!

#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)