sapling/tests/test-check-code-hg.t
Jun Wu 781aea8725 arc: do not run lint on unrelated files
Summary:
"arc lint" runs the lint script for each file in parallel:

  >>> [5, pid=27257] <exec> $ scripts/lint.py 'scripts/lint.py'
  >>> [6, pid=27257] <exec> $ scripts/lint.py 'scripts/unit.py'
  >>> [7, pid=27257] <exec> $ scripts/lint.py 'tests/test-check-code-hg.t'
  >>> [8, pid=27257] <exec> $ scripts/lint.py 'tests/test-check-pyflakes-hg.t'

That looks fine but `lint.py` runs `test-check*.t` which will check all
files. This is a typical `N^2` behavior and needs to be fixed.

This diff changes the linter and test code so the test only checks the
single selected file.

Test Plan:
Run `arc lint --trace` and check `lint.py` time usage. It went down from
10 seconds to 2 seconds for this diff.

Reviewers: #sourcecontrol, durham

Reviewed By: durham

Subscribers: mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D4051080

Signature: t1:4051080:1476985355:45845c6eb0e66cbfa000e61b7b496f2d00aeb042
2016-10-20 15:44:29 +01:00

70 lines
3.9 KiB
Perl

#require test-repo
$ check_code="$RUNTESTDIR"/../contrib/check-code.py
$ cd "$TESTDIR"/..
New errors are not allowed. Warnings are strongly discouraged.
(The writing "no-che?k-code" is for not skipping this file when checking.)
$ echo ${LINTFILES:-`hg locate`} | sed 's-\\-/-g' |
> xargs "$check_code" --warnings --per-file=0 || false
Skipping CMakeLists.txt it has no-che?k-code (glob)
Skipping cdatapack/cdatapack.c it has no-che?k-code (glob)
Skipping cdatapack/cdatapack.h it has no-che?k-code (glob)
Skipping cdatapack/cdatapack_dump.c it has no-che?k-code (glob)
Skipping cdatapack/cdatapack_get.c it has no-che?k-code (glob)
Skipping cdatapack/py-cdatapack.c it has no-che?k-code (glob)
Skipping cfastmanifest.c it has no-che?k-code (glob)
Skipping cfastmanifest/bsearch.c it has no-che?k-code (glob)
Skipping cfastmanifest/bsearch.h it has no-che?k-code (glob)
Skipping cfastmanifest/bsearch_test.c it has no-che?k-code (glob)
Skipping cfastmanifest/checksum.c it has no-che?k-code (glob)
Skipping cfastmanifest/checksum.h it has no-che?k-code (glob)
Skipping cfastmanifest/checksum_test.c it has no-che?k-code (glob)
Skipping cfastmanifest/internal_result.h it has no-che?k-code (glob)
Skipping cfastmanifest/node.c it has no-che?k-code (glob)
Skipping cfastmanifest/node.h it has no-che?k-code (glob)
Skipping cfastmanifest/node_test.c it has no-che?k-code (glob)
Skipping cfastmanifest/path_buffer.h it has no-che?k-code (glob)
Skipping cfastmanifest/result.h it has no-che?k-code (glob)
Skipping cfastmanifest/tests.c it has no-che?k-code (glob)
Skipping cfastmanifest/tests.h it has no-che?k-code (glob)
Skipping cfastmanifest/tree.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree.h it has no-che?k-code (glob)
Skipping cfastmanifest/tree_arena.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_arena.h it has no-che?k-code (glob)
Skipping cfastmanifest/tree_convert.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_convert_rt.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_convert_test.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_copy.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_copy_test.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_diff.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_diff_test.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_disk.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_disk_test.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_dump.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_iterate_rt.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_iterator.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_iterator.h it has no-che?k-code (glob)
Skipping cfastmanifest/tree_iterator_test.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_path.c it has no-che?k-code (glob)
Skipping cfastmanifest/tree_path.h it has no-che?k-code (glob)
Skipping cfastmanifest/tree_test.c it has no-che?k-code (glob)
Skipping clib/buffer.c it has no-che?k-code (glob)
Skipping clib/buffer.h it has no-che?k-code (glob)
Skipping clib/convert.h it has no-che?k-code (glob)
Skipping clib/null_test.c it has no-che?k-code (glob)
Skipping ctreemanifest/convert.h it has no-che?k-code (glob)
Skipping ctreemanifest/manifest.h it has no-che?k-code (glob)
Skipping ctreemanifest/manifest_entry.h it has no-che?k-code (glob)
Skipping ctreemanifest/manifest_fetcher.h it has no-che?k-code (glob)
Skipping ctreemanifest/pythonutil.h it has no-che?k-code (glob)
Skipping ctreemanifest/treemanifest.h it has no-che?k-code (glob)
Skipping statprof.py it has no-che?k-code (glob)
Skipping tests/conduithttp.py it has no-che?k-code (glob)
Skipping tests/test-remotefilelog-bad-configs.t it has no-che?k-code (glob)
Check foreign extensions are only used after checks
$ hg locate 'test-*.t' | xargs $TESTDIR/check-foreignext.py