test-bugzilla-files/analyze-logs.py | 93 ++++++++++++++++++++++++++++++++++++ test-bugzilla-files/new-control.py | 1 2 files changed, 93 insertions(+), 1 deletion(-)
New commits: commit 3e32ecbea121b0ba8eb3862e1a537875cbda872a Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Jun 2 09:03:28 2014 +0200 remove unused import diff --git a/test-bugzilla-files/new-control.py b/test-bugzilla-files/new-control.py index cf9b4c9..25617a7 100644 --- a/test-bugzilla-files/new-control.py +++ b/test-bugzilla-files/new-control.py @@ -19,7 +19,6 @@ import os import os.path import concurrent.futures -import urllib.request import time import subprocess commit 9b436983db944229728c88cb2baf1ad273fd9c0d Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Jun 2 09:03:02 2014 +0200 add script for analyzing the results of the crash testing diff --git a/test-bugzilla-files/analyze-logs.py b/test-bugzilla-files/analyze-logs.py new file mode 100644 index 0000000..d675214 --- /dev/null +++ b/test-bugzilla-files/analyze-logs.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python + +# Libreoffice test-bugzilla-files control script +# Copyright (C) 2014 Markus Mohrhard +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +import os +import os.path +import collections +import csv + +def analyze_import_crash(directory): + crashtest_file = os.path.join(directory, "crashlog.txt") + if not os.path.exists(crashtest_file): + return 0 + num_lines = sum(1 for line in open(crashtest_file)) + return num_lines + +def analyze_export_crash(directory): + crashtest_file = os.path.join(directory, "exportCrash.txt") + if not os.path.exists(crashtest_file): + return collections.Counter() + exts = [] + for line in open(crashtest_file): + ext = os.path.splitext(line)[1] + exts.append(ext.replace(".","").replace("\n","")) + return collections.Counter(exts) + +def analyze_validation_errors(directory): + exts = [] + for root, dirs, files in os.walk(directory): + for file in files: + filebase, fileext = os.path.splitext(file) + if fileext == ".log": + exts.append(os.path.splitext(filebase)[1].replace(".","")) + return collections.Counter(exts) + +def get_directories(): + d='.' + directories = [o for o in os.listdir(d) if os.path.isdir(os.path.join(d,o))] + return directories + +def import_csv(filename): + if not os.path.exists(filename): + return None + reader = csv.DictReader(open(filename)) + return reader + +def export_csv(filename, data, reader): + fieldnames = set(data.keys()) + if not reader is None: + fieldnames &= set(reader.fieldnames) + writer = csv.DictWriter(open(filename, "w"), fieldnames) + writer.writeheader() + if not reader is None: + for row in reader: + writer.writerow(row) + writer.writerow(data) + +def update_import(): + import_crashes = dict() + for directory in get_directories(): + import_crashes[directory] = analyze_import_crash(directory) + reader = import_csv("importCrash.csv") + export_csv("importCrash.csv", import_crashes, reader) + +def update_export(): + export_crashes = collections.Counter() + for directory in get_directories(): + export_crashes += analyze_export_crash(directory) + reader = import_csv("exportCrashes.csv") + export_csv("exportCrashes.csv", export_crashes, reader) + +def update_validation(): + validation_errors = analyze_validation_errors("./validation") + reader = import_csv("validationErrors.csv") + export_csv("validationErrors.csv", validation_errors, reader) + +update_import() +update_export() +update_validation() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits