summaryrefslogtreecommitdiffstats
path: root/bin/find-most-common-warn-messages.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
commited5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch)
tree7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /bin/find-most-common-warn-messages.py
parentInitial commit. (diff)
downloadlibreoffice-cb75148ebd0135178ff46f89a30139c44f8d2040.tar.xz
libreoffice-cb75148ebd0135178ff46f89a30139c44f8d2040.zip
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'bin/find-most-common-warn-messages.py')
-rwxr-xr-xbin/find-most-common-warn-messages.py39
1 files changed, 39 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 000000000..dc2ecf8ab
--- /dev/null
+++ b/bin/find-most-common-warn-messages.py
@@ -0,0 +1,39 @@
+#!/usr/bin/python3
+
+# 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
+sampleOfMessage = dict() # dict of sourceAndLine->string
+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
+ sampleOfMessage[sourceAndLine] = line[line.find(tokens[6]):]
+
+tmplist = list() # set of tuple (count, sourceAndLine)
+for key, value in messages.items():
+ tmplist.append([value,key])
+
+print( "The top 20 warnings" )
+print("")
+for i in sorted(tmplist, key=lambda v: v[0])[-20:]:
+ print( "%6d %s %s" % (i[0], i[1], sampleOfMessage[i[1]]) )
+
+