diff options
author | Noel Grandin <noel@peralex.com> | 2016-06-03 11:42:32 +0200 |
---|---|---|
committer | Noel Grandin <noel@peralex.com> | 2016-06-03 11:43:02 +0200 |
commit | 623de75b6515b8e9b6ce2766e7d90277c8714d82 (patch) | |
tree | 7dace822331e946dbc63098c9ed1a78c8da5fe89 | |
parent | 00ea075e86ee6dfcb6162b673c8e717e4186dd68 (diff) |
script for grouping warning messages by most common
A script to search our test logs and sort the messages by how common
they are so we can start to reduce the noise a little.
Change-Id: I8a6e6167c42447f9869ac700300d1b243f055e2b
-rwxr-xr-x | bin/find-most-common-warn-messages.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/bin/find-most-common-warn-messages.py b/bin/find-most-common-warn-messages.py new file mode 100755 index 000000000000..3cbf2114041b --- /dev/null +++ b/bin/find-most-common-warn-messages.py @@ -0,0 +1,35 @@ +#!/usr/bin/python + +# A script to search our test logs and sort the messages by how common they are so we can start to +# reduce the noise a little. + +import sys +import re +import io +import subprocess + +# find . -name '*.log' | xargs grep -h 'warn:' | sort | uniq -c | sort -n --field-separator=: --key=5,6 + +process = subprocess.Popen("find workdir -name '*.log' | xargs grep -h 'warn:' | sort", + shell=True, stdout=subprocess.PIPE, universal_newlines=True) + +messages = dict() # dict of sourceAndLine->count +for line in process.stdout: + line = line.strip() + # a sample line is: + # warn:sw:18790:1:sw/source/core/doc/DocumentRedlineManager.cxx:98: redline table corrupted: overlapping redlines + tokens = line.split(":") + sourceAndLine = tokens[4] + ":" + tokens[5] + if (sourceAndLine in messages): + messages[sourceAndLine] = messages[sourceAndLine] + 1 + else: + messages[sourceAndLine] = 1 + +tmplist = list() # set of tuple (count, sourceAndLine) +for key, value in messages.iteritems(): + tmplist.append([value,key]) + +for i in sorted(tmplist, key=lambda v: v[0]): + print i + + |