瀏覽代碼

Practracker: do not list problems when told to --list-overbroad.

Nick Mathewson 4 年之前
父節點
當前提交
25d55fa01e
共有 2 個文件被更改,包括 16 次插入0 次删除
  1. 9 0
      scripts/maint/practracker/practracker.py
  2. 7 0
      scripts/maint/practracker/util.py

+ 9 - 0
scripts/maint/practracker/practracker.py

@@ -224,6 +224,11 @@ def main(argv):
     filt.addThreshold(problem.DependencyViolationItem("*.c", int(args.max_dependency_violations)))
     filt.addThreshold(problem.DependencyViolationItem("*.h", int(args.max_dependency_violations)))
 
+    if args.list_overbroad and args.regen:
+        print("Cannot use --regen with --list-overbroad",
+              file=sys.stderr)
+        sys.exit(1)
+
     # 1) Get all the .c files we care about
     files_list = util.get_tor_c_files(TOR_TOPDIR, args.include_dir)
 
@@ -239,6 +244,10 @@ def main(argv):
         ProblemVault = problem.ProblemVault(exceptions_file)
         problem_file = sys.stdout
 
+    if args.list_overbroad:
+        # If we're listing overbroad exceptions, don't list problems.
+        problem_file = util.NullFile()
+
     # 2.1) Adjust the exceptions so that we warn only about small problems,
     # and produce errors on big ones.
     if not (args.regen or args.list_overbroad or args.strict):

+ 7 - 0
scripts/maint/practracker/util.py

@@ -41,3 +41,10 @@ def get_tor_c_files(tor_topdir, include_dirs=None):
                 files_list.append(full_path)
 
     return files_list
+
+class NullFile:
+    """A file-like object that we can us to suppress output."""
+    def __init__(self):
+        pass
+    def write(self, s):
+        pass