mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-28 20:05:38 +00:00
validate:launcher: Use the new validatelog file
Making the output cleaner and clearer in junit XML file
This commit is contained in:
parent
38eda37341
commit
7133e4b4e0
3 changed files with 43 additions and 6 deletions
|
@ -82,6 +82,17 @@ class Test(Loggable):
|
|||
|
||||
return string
|
||||
|
||||
def get_extra_log_content(self, extralog):
|
||||
if extralog not in self.extra_logfiles:
|
||||
return ""
|
||||
|
||||
f = open(extralog, 'r+')
|
||||
value = f.read()
|
||||
f.close()
|
||||
|
||||
return value
|
||||
|
||||
|
||||
def get_classname(self):
|
||||
name = self.classname.split('.')[-1]
|
||||
classname = self.classname.replace('.%s' % name, '')
|
||||
|
@ -247,6 +258,7 @@ class GstValidateTest(Test):
|
|||
# segment / seek
|
||||
self._sent_eos_pos = None
|
||||
|
||||
self.validatelogs = None
|
||||
if scenario is None or scenario.name.lower() == "none":
|
||||
self.scenario = None
|
||||
else:
|
||||
|
@ -255,6 +267,11 @@ class GstValidateTest(Test):
|
|||
def get_subproc_env(self):
|
||||
subproc_env = os.environ.copy()
|
||||
|
||||
self.validatelogs = self.logfile + '.validate.logs'
|
||||
utils.touch(self.validatelogs)
|
||||
subproc_env["GST_VALIDATE_FILE"] = self.validatelogs
|
||||
self.extra_logfiles.append(self.validatelogs)
|
||||
|
||||
if 'GST_DEBUG' in os.environ:
|
||||
gstlogsfile = self.logfile + '.gstdebug'
|
||||
self.extra_logfiles.append(gstlogsfile)
|
||||
|
@ -270,10 +287,18 @@ class GstValidateTest(Test):
|
|||
if self.scenario is not None:
|
||||
self.add_arguments("--set-scenario", self.scenario.name)
|
||||
|
||||
def get_extra_log_content(self, extralog):
|
||||
value = Test.get_extra_log_content(self, extralog)
|
||||
|
||||
if extralog == self.validatelogs:
|
||||
value = re.sub("<position:.*/>\r", "", value)
|
||||
|
||||
return value
|
||||
|
||||
def get_validate_criticals_errors(self):
|
||||
ret = "["
|
||||
errors = []
|
||||
for l in open(self.logfile, 'r').readlines():
|
||||
for l in open(self.validatelogs, 'r').readlines():
|
||||
if "critical : " in l:
|
||||
if ret != "[":
|
||||
ret += ", "
|
||||
|
@ -330,7 +355,7 @@ class GstValidateTest(Test):
|
|||
|
||||
self.debug("Getting position")
|
||||
m = None
|
||||
for l in reversed(open(self.logfile, 'r').readlines()):
|
||||
for l in reversed(open(self.validatelogs, 'r').readlines()):
|
||||
l = l.lower()
|
||||
if "<position:" in l or "buffering" in l:
|
||||
m = l
|
||||
|
@ -355,7 +380,7 @@ class GstValidateTest(Test):
|
|||
m = None
|
||||
rate = start = stop = None
|
||||
|
||||
for l in reversed(open(self.logfile, 'r').readlines()):
|
||||
for l in reversed(open(self.validatelogs, 'r').readlines()):
|
||||
l = l.lower()
|
||||
if "seeking to: " in l:
|
||||
m = l
|
||||
|
@ -383,7 +408,7 @@ class GstValidateTest(Test):
|
|||
m = None
|
||||
rate = start = stop = None
|
||||
|
||||
for l in reversed(open(self.logfile, 'r').readlines()):
|
||||
for l in reversed(open(self.validatelogs, 'r').readlines()):
|
||||
l = l.lower()
|
||||
if "sending eos" in l:
|
||||
m = l
|
||||
|
|
|
@ -132,13 +132,22 @@ class XunitReporter(Reporter):
|
|||
super(XunitReporter, self).final_report()
|
||||
|
||||
def _get_captured(self):
|
||||
captured = ""
|
||||
if self.out:
|
||||
self.out.seek(0)
|
||||
value = self.out.read()
|
||||
if value:
|
||||
return '<system-out><![CDATA[%s]]></system-out>' % \
|
||||
captured += '<system-out><![CDATA[%s' % \
|
||||
escape_cdata(value)
|
||||
return ''
|
||||
|
||||
for extralog in self._current_test.extra_logfiles:
|
||||
captured += "\n\n===== %s =====\n\n" % escape_cdata(os.path.basename(extralog))
|
||||
value = self._current_test.get_extra_log_content(extralog)
|
||||
captured += escape_cdata(value)
|
||||
|
||||
captured += "]]></system-out>"
|
||||
|
||||
return captured
|
||||
|
||||
def _quoteattr(self, attr):
|
||||
"""Escape an XML attribute. Value can be unicode."""
|
||||
|
|
|
@ -147,6 +147,9 @@ def isuri(string):
|
|||
|
||||
return False
|
||||
|
||||
def touch(fname, times=None):
|
||||
with open(fname, 'a'):
|
||||
os.utime(fname, times)
|
||||
|
||||
##############################
|
||||
# Encoding related utils #
|
||||
|
|
Loading…
Reference in a new issue