Repository: kudu
Updated Branches:
  refs/heads/master d4ded71bc -> 80ebaeda8


clang_tidy_gerrit.py: fix output when no changes found in first path

For a while now some patches weren't getting any Tidy Bot comments. These
comments originate in a standalone Jenkins job that runs clang-tidy and
converts its output into comments that are posted back to gerrit. Here's
what I saw in the console output of one such failed job run:

  Clang output
  No relevant changes found.
  No relevant changes found.
  ... <actual clang-tidy changes>
  Traceback (most recent call last):
    File "build-support/clang_tidy_gerrit.py", line 209, in <module>
      parsed = parse_clang_output(clang_output)
    File "build-support/clang_tidy_gerrit.py", line 103, in parse_clang_output
      raise Exception("bad warning: " + w)
  Exception: bad warning: No relevant changes found.
  No relevant changes found.

The "No relevant changes found." line is what clang-tidy prints when it has
no recommendations. That won't happen when clang-tidy's input includes at
least one "dirty" file, but as of commit a9271b05d we run clang-tidy in
parallel on a per-file basis, which makes it quite likely that a given patch
will include at least one completely tidy file.

Turns out that when the very first line of output parsed by this script is
that "No relevant..." line, split_warnings() generates a warning with a
non-warning string, which causes parse_clang_output() to raise an exception
and for the job to fail silently.

Change-Id: I111dff7508f841489ba1625a4ca4b7af92f3d8d0
Reviewed-on: http://gerrit.cloudera.org:8080/11457
Tested-by: Kudu Jenkins
Reviewed-by: Alexey Serbin <aser...@cloudera.com>
Reviewed-by: Andrew Wong <aw...@cloudera.com>


Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/80ebaeda
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/80ebaeda
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/80ebaeda

Branch: refs/heads/master
Commit: 80ebaeda8a8cbe2b39f6b686badf860bc30cac21
Parents: d4ded71
Author: Adar Dembo <a...@cloudera.com>
Authored: Mon Sep 17 15:54:29 2018 -0700
Committer: Adar Dembo <a...@cloudera.com>
Committed: Tue Sep 18 20:21:14 2018 +0000

----------------------------------------------------------------------
 build-support/clang_tidy_gerrit.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/80ebaeda/build-support/clang_tidy_gerrit.py
----------------------------------------------------------------------
diff --git a/build-support/clang_tidy_gerrit.py 
b/build-support/clang_tidy_gerrit.py
index d29a792..9c8552e 100755
--- a/build-support/clang_tidy_gerrit.py
+++ b/build-support/clang_tidy_gerrit.py
@@ -84,7 +84,7 @@ def run_tidy(sha="HEAD", is_rev_range=False):
 def split_warnings(clang_output):
     accumulated = ""
     for l in clang_output.splitlines():
-        if l == "":
+        if l == "" or l == "No relevant changes found.":
             continue
         if l.startswith(ROOT) and re.search(r'(warning|error): ', l):
             if accumulated:
@@ -149,11 +149,15 @@ def post_comments(revision_url_base, gerrit_json_obj):
 class TestClangTidyGerrit(unittest.TestCase):
     TEST_INPUT = \
 """
+No relevant changes found.
+
 
/home/todd/git/kudu/src/kudu/integration-tests/tablet_history_gc-itest.cc:579:55:
 warning: some warning [warning-name]
    some example line of code
 
 /home/todd/git/kudu/foo/../src/kudu/blah.cc:123:55: error: some error
    blah blah
+
+No relevant changes found.
 """
 
     def test_parse_clang_output(self):

Reply via email to