annotate tests/test-check-code-hg.py @ 14493:5cc7905bccc9

run-tests: allow whitelisting tests that should always run It's desirable to run some tests all the time, for example test-check-pyflakes.t and test-check-code-hg.py. This allows passing --whitelist as a path to a file (flag can be specified more than once) which contains a list of files to whitelist. Whitelisted tests are run even if they're blacklisted or wouldn't match a --keyword test run. For example, to do a quick test of usehttp2, one can now do $ cat > test-whitelist <<EOF > test-check-pyflakes.t > test-check-code-hg.py > EOF $ (cd tests && ./run-tests.py --extra-config-opt 'ui.usehttp2=true' > -k http -j 8 --whitelist test-whitelist) and have all http-specific tests run as well as the two code linters.
author Augie Fackler <durin42@gmail.com>
date Tue, 31 May 2011 20:39:04 -0500
parents b0e3d3973440
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11762
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
1 # Pass all working directory files through check-code.py
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
2
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
3 import sys, os, imp
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
4 rootdir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..'))
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
5 if not os.path.isdir(os.path.join(rootdir, '.hg')):
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
6 sys.stderr.write('skipped: cannot check code on non-repository sources\n')
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
7 sys.exit(80)
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
8
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
9 checkpath = os.path.join(rootdir, 'contrib/check-code.py')
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
10 checkcode = imp.load_source('checkcode', checkpath)
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
11
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
12 from mercurial import hg, ui
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
13 u = ui.ui()
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
14 repo = hg.repository(u, rootdir)
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
15 checked = 0
11771
b0e3d3973440 tests: only run check-code on tracked files
Matt Mackall <mpm@selenic.com>
parents: 11762
diff changeset
16 wctx = repo[None]
b0e3d3973440 tests: only run check-code on tracked files
Matt Mackall <mpm@selenic.com>
parents: 11762
diff changeset
17 for f in wctx:
b0e3d3973440 tests: only run check-code on tracked files
Matt Mackall <mpm@selenic.com>
parents: 11762
diff changeset
18 # ignore removed and unknown files
b0e3d3973440 tests: only run check-code on tracked files
Matt Mackall <mpm@selenic.com>
parents: 11762
diff changeset
19 if f not in wctx:
b0e3d3973440 tests: only run check-code on tracked files
Matt Mackall <mpm@selenic.com>
parents: 11762
diff changeset
20 continue
11762
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
21 checked += 1
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
22 checkcode.checkfile(os.path.join(rootdir, f))
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
23 if not checked:
8b03c988efb3 tests: run check-code.py on working directory files
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
24 sys.stderr.write('no file checked!\n')