summaryrefslogtreecommitdiffstats
path: root/tools/checkdeps/checkdeps_test.py
Commit message (Collapse)AuthorAgeFilesLines
* Fix a bug in checkdeps due to a shallow copy.joi@chromium.org2012-12-061-0/+23
| | | | | | | | | | | | | | | | | | Add regression test that now passes and would have caught the bug. Kudos to jam@ for spotting the symptoms of the bug, which primarily would manifest when specific_include_rules are being used, and only (I think) when running presubmit or doing checkdeps for a specific directory since in that case rules get built up in child->parent order rather than the parent->child order that the normal checkdeps run would use. BUG=None Review URL: https://chromiumcodereview.appspot.com/11440013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171516 0039d316-1c4b-4281-b951-d872f2087c98
* Add functionality to checkdeps to generate "number of intended DEPS ↵joi@chromium.org2012-09-251-8/+55
| | | | | | | | | | | violated" metric. BUG=138280 Review URL: https://chromiumcodereview.appspot.com/10956070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158609 0039d316-1c4b-4281-b951-d872f2087c98
* Add ability to write include rules specific to subsets of files in a directory.joi@chromium.org2012-08-131-3/+6
| | | | | | | | | | | | | This is useful e.g. to limit a set of allowed or temporarily-allowed include rules to test files, or to allow certain includes in .cc files but not in .h files. BUG=138280 Review URL: https://chromiumcodereview.appspot.com/10823271 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151301 0039d316-1c4b-4281-b951-d872f2087c98
* Add ability to format errors as a list of temp-allow rules to pastejoi@chromium.org2012-08-011-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into a DEPS file. The idea behind this change is that the tool now lets you do this: a) Update a DEPS file for some directory with the intended rules for the directory, e.g. rules disallowing certain directories (say "chrome/browser") and allowing others (e.g. "chrome/browser/apis"). b) Run this tool on that particular directory to generate a list of temp-allow rules. c) Paste the temp-allow rules into the DEPS file for the directory. d) Work on eliminating dependencies until the temp-allow rules list in the DEPS file reaches zero. To accomplish this change, and fix the bug that existed that the checkdeps tool didn't work correctly if you specified a start directory, I refactored the code to always use the approach I had introduced in CheckAddedCppIncludes, which when you request rules for a given directory generates all parent directories' rules first, up to the base directory. Also, to enable better extraction of error information for the eventual formatter, I externalized formatting to separate classes and had the code collect only the logical error information. While in there, fixed use of quotes to match coding standard. BUG=138280 Review URL: https://chromiumcodereview.appspot.com/10832062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149455 0039d316-1c4b-4281-b951-d872f2087c98
* Implement ability to specify temporarily-allowed dependencies in DEPSjoi@chromium.org2012-07-311-0/+91
files, and use this ability in a few DEPS files where appropriate. This has no effect on the normal running of checkdeps; "!" dependencies are treated just like "+" dependencies when checkdeps is run on our bots. An upcoming change will use the new checkdeps.CheckAddedIncludes function, and will error out if you add a new include that violates a "-" rule, and show a presubmit warning when you add a new include that violates a "!" rule (the warning will say something like "We are in the process of removing dependencies from this directory to that file, can you avoid adding more?" While I was in there, fixed path handling so that checkdeps will work on case-sensitive platforms with paths that include upper-case characters (e.g. a checkout of Chrome at ~/c/Chrome/src rather than ~/c/chrome/src). Since the pipes.quote method seems unreliable on Windows (it failed on my setup), switched to subprocess.list2cmdline which I believe is stable. Added a small manual testing mode to checkdeps. It currently only verifies the CheckAddedIncludes function. TBR=jam@chromium.org BUG=138280 Review URL: https://chromiumcodereview.appspot.com/10805042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149163 0039d316-1c4b-4281-b951-d872f2087c98