Skip to content

Commit 8cf32a4

Browse files
authored
Merge pull request #105 from psklenar/avocado_logging
Avocado logging
2 parents 1cef136 + 0ee037c commit 8cf32a4

File tree

5 files changed

+68
-1
lines changed

5 files changed

+68
-1
lines changed

meta-test-family.spec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ install -d -p -m 755 %{buildroot}%{_datadir}/%{framework_name}
4747
%{_bindir}/mtf-generator
4848
%{_bindir}/mtf-env-set
4949
%{_bindir}/mtf-env-clean
50+
%{_bindir}/mtf-log-parser
5051
%{python2_sitelib}/moduleframework/
5152
%{python2_sitelib}/meta_test_family-*.egg-info/
5253
%{_datadir}/moduleframework/

moduleframework/avocado_testers/avocado_test.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ def __init__(self, *args, **kwargs):
6262
"Module Type: %s - Backend: %s - Profile: %s" %
6363
(self.moduleType, self.moduleType_base, self.moduleProfile))
6464

65+
def __print_breaks(self, message):
66+
delimiterStart = '\n::::::::::::::::::::::::'
67+
delimiterEnd = '::::::::::::::::::::::::\n'
68+
self.log.debug("\n{0} {1} {2}".format(delimiterStart, message, delimiterEnd))
69+
6570
def cancel(self, *args, **kwargs):
6671
try:
6772
super(AvocadoTest, self).cancel(*args, **kwargs)
@@ -77,6 +82,7 @@ def setUp(self):
7782
7883
:return: None
7984
"""
85+
self.__print_breaks("SETUP")
8086
return self.backend.setUp()
8187

8288
def tearDown(self, *args, **kwargs):
@@ -88,6 +94,7 @@ def tearDown(self, *args, **kwargs):
8894
8995
:return: None
9096
"""
97+
self.__print_breaks("TEARDOWN")
9198
return self.backend.tearDown(*args, **kwargs)
9299

93100
def start(self, *args, **kwargs):
@@ -99,6 +106,7 @@ def start(self, *args, **kwargs):
99106
:param kwargs: Do not use it directly (It is defined in config.yaml)
100107
:return: None
101108
"""
109+
self.__print_breaks("START MODULE")
102110
return self.backend.start(*args, **kwargs)
103111

104112
def stop(self, *args, **kwargs):
@@ -111,6 +119,7 @@ def stop(self, *args, **kwargs):
111119
:param kwargs: Do not use it directly (It is defined in config.yaml)
112120
:return: None
113121
"""
122+
self.__print_breaks("STOP")
114123
return self.backend.stop(*args, **kwargs)
115124

116125
def run(self, *args, **kwargs):
@@ -121,6 +130,7 @@ def run(self, *args, **kwargs):
121130
:param kwargs: shell, ignore_status, verbose
122131
:return: object avocado.process.run
123132
"""
133+
self.__print_breaks("COMMAND IN MODULE <->")
124134
return self.backend.run(*args, **kwargs)
125135

126136
def runCheckState(self, command="ls /", expected_state=0,
@@ -171,6 +181,7 @@ def runHost(self, *args, **kwargs):
171181
:param kwargs: pass thru
172182
:return: object of avocado.process.run
173183
"""
184+
self.__print_breaks("COMMAND ON HOST <!>")
174185
return self.backend.runHost(*args, **kwargs)
175186

176187
def getModulemdYamlconfig(self, *args, **kwargs):

moduleframework/mtf_log_parser.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#!/usr/bin/python
2+
# -*- coding: utf-8 -*-
3+
#
4+
# Meta test family (MTF) is a tool to test components of a modular Fedora:
5+
# https://docs.pagure.org/modularity/
6+
# Copyright (C) 2017 Red Hat, Inc.
7+
#
8+
# This program is free software; you can redistribute it and/or modify
9+
# it under the terms of the GNU General Public License as published by
10+
# he Free Software Foundation; either version 2 of the License, or
11+
# (at your option) any later version.
12+
#
13+
# This program is distributed in the hope that it will be useful,
14+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16+
# GNU General Public License for more details.
17+
#
18+
# You should have received a copy of the GNU General Public License along
19+
# with this program; if not, write to the Free Software Foundation, Inc.,
20+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21+
#
22+
# Authors: Petr Sklenar <[email protected]>
23+
#
24+
25+
"""
26+
Utility for reading avocado json files.
27+
"""
28+
29+
import sys
30+
import json
31+
32+
def main():
33+
try:
34+
json_data=open(sys.argv[1]).read()
35+
data = json.loads(json_data)
36+
except (IOError, ValueError) as e:
37+
# file is not readable as json: No JSON object could be decoded
38+
print(e)
39+
exit(1)
40+
except:
41+
print("no file: specify 1 argument as existing json file")
42+
exit(3)
43+
delimiter=""
44+
for i in data['tests']:
45+
if i.get('status') in ['ERROR','FAIL']:
46+
print(delimiter)
47+
print("TEST: {0}".format(i.get('id')))
48+
print("ERROR: {0}".format(i.get('fail_reason')))
49+
print(" {0}".format(i.get('logfile')))
50+
delimiter = "-------------------------"
51+

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ def get_dir(system_path=None, virtual_path=None):
8080
'mtf-generator = moduleframework.mtf_generator:main',
8181
'mtf-env-set = moduleframework.mtf_environment:mtfenvset',
8282
'mtf-env-clean = moduleframework.mtf_environment:mtfenvclean',
83+
'mtf-log-parser = moduleframework.mtf_log_parser:main',
8384
]
8485
},
8586
setup_requires=[],

tools/mtf

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
SITE_LIB=$(python -c "import moduleframework, os; print os.path.dirname(moduleframework.__file__)")
44
MTF_TOOLS="tools"
5-
AVOCADO_ARGS=""
5+
JSON_LOG=$(mktemp)
6+
AVOCADO_ARGS="--json $JSON_LOG"
67

78
function print_help {
89
cat <<EOF
@@ -34,3 +35,5 @@ while [[ $# -gt 0 ]]; do
3435
done
3536

3637
avocado run $AVOCADO_ARGS
38+
mtf-log-parser $JSON_LOG
39+
rm -f $JSON_LOG

0 commit comments

Comments
 (0)