reporter: updates for xfstests xunit generation changes
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
d080c04a5d
commit
d29b73180f
|
@ -38,7 +38,7 @@ class Results(Property):
|
||||||
class Model(GObject.GObject, Gio.ListModel):
|
class Model(GObject.GObject, Gio.ListModel):
|
||||||
def __init__(self, properties):
|
def __init__(self, properties):
|
||||||
GObject.GObject.__init__(self)
|
GObject.GObject.__init__(self)
|
||||||
self.properties = [ Property(p, properties[p]) for p in PROPERTIES ]
|
self.properties = [ Property(p, properties.get(p)) for p in PROPERTIES ]
|
||||||
self.properties.append(Results(properties))
|
self.properties.append(Results(properties))
|
||||||
|
|
||||||
def do_get_item_type(self): return GObject.TYPE_PYOBJECT
|
def do_get_item_type(self): return GObject.TYPE_PYOBJECT
|
||||||
|
@ -73,7 +73,9 @@ class Factory(Gtk.SignalListItemFactory):
|
||||||
label = listitem.get_child()
|
label = listitem.get_child()
|
||||||
match self.column:
|
match self.column:
|
||||||
case "Property": label.set_text(listitem.get_item().key)
|
case "Property": label.set_text(listitem.get_item().key)
|
||||||
case "Value": label.set_text(listitem.get_item().value)
|
case "Value":
|
||||||
|
value = listitem.get_item().value
|
||||||
|
label.set_text(value if value else "")
|
||||||
case _: label.set_text("=")
|
case _: label.set_text("=")
|
||||||
|
|
||||||
def on_unbind(self, factory, listitem):
|
def on_unbind(self, factory, listitem):
|
||||||
|
|
|
@ -3,6 +3,7 @@ from gi.repository import GObject
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk
|
||||||
import html
|
import html
|
||||||
import pathlib
|
import pathlib
|
||||||
|
import re
|
||||||
import tarfile
|
import tarfile
|
||||||
import xml.etree.ElementTree
|
import xml.etree.ElementTree
|
||||||
|
|
||||||
|
@ -23,20 +24,24 @@ class SkippedTest:
|
||||||
self.message = elm[0].attrib["message"]
|
self.message = elm[0].attrib["message"]
|
||||||
self.message = self.message.replace(test_dev, "$TEST_DEV")
|
self.message = self.message.replace(test_dev, "$TEST_DEV")
|
||||||
self.message = self.message.replace(test_dir, "$TEST_DIR")
|
self.message = self.message.replace(test_dir, "$TEST_DIR")
|
||||||
self.message = self.message.replace(scratch_dev, "$SCRATCH_DEV")
|
if scratch_dev:
|
||||||
self.message = self.message.replace(scratch_mnt, "$SCRATCH_MNT")
|
self.message = self.message.replace(scratch_dev, "$SCRATCH_DEV")
|
||||||
|
if scratch_mnt:
|
||||||
|
self.message = self.message.replace(scratch_mnt, "$SCRATCH_MNT")
|
||||||
|
|
||||||
|
|
||||||
class FailedTest:
|
class FailedTest:
|
||||||
def __init__(self, elm):
|
def __init__(self, ns, elm):
|
||||||
self.time = elm.attrib["time"]
|
self.time = elm.attrib["time"]
|
||||||
self.system_out = Gtk.TextBuffer()
|
self.system_out = Gtk.TextBuffer()
|
||||||
self.system_err = Gtk.TextBuffer()
|
self.system_err = Gtk.TextBuffer()
|
||||||
for e in elm:
|
for e in elm:
|
||||||
match e.tag:
|
if e.tag == f"{ns}failure":
|
||||||
case "failure": self.message = e.attrib["message"]
|
self.message = e.attrib["message"]
|
||||||
case "system-out": self.system_out.set_text(html.unescape(e.text))
|
elif e.tag == f"{ns}system-out":
|
||||||
case "system-err": self.system_err.set_text(html.unescape(e.text))
|
self.system_out.set_text(html.unescape(e.text))
|
||||||
|
elif e.tag == f"{ns}system-err":
|
||||||
|
self.system_err.set_text(html.unescape(e.text))
|
||||||
|
|
||||||
|
|
||||||
class TestCase(GObject.GObject):
|
class TestCase(GObject.GObject):
|
||||||
|
@ -66,26 +71,29 @@ class TestResults:
|
||||||
self.versions.append(pathlib.Path(name).stem)
|
self.versions.append(pathlib.Path(name).stem)
|
||||||
passed = 0
|
passed = 0
|
||||||
|
|
||||||
|
match = re.match(r"{.*?}", root.tag)
|
||||||
|
ns = match.group(0) if match else ""
|
||||||
|
|
||||||
for prop in root.attrib.keys():
|
for prop in root.attrib.keys():
|
||||||
self.set_property(prop, root.attrib[prop])
|
self.set_property(prop, root.attrib[prop])
|
||||||
|
|
||||||
for elm in root:
|
for elm in root:
|
||||||
if elm.tag == "properties":
|
if elm.tag == f"{ns}properties":
|
||||||
for prop in elm:
|
for prop in elm:
|
||||||
self.set_property(prop.attrib["name"], prop.attrib["value"])
|
self.set_property(prop.attrib["name"], prop.attrib["value"])
|
||||||
elif elm.tag == "testcase":
|
elif elm.tag == f"{ns}testcase":
|
||||||
if len(elm) == 0:
|
if len(elm) == 0:
|
||||||
result = PassingTest(elm)
|
result = PassingTest(elm)
|
||||||
passed += 1
|
passed += 1
|
||||||
elif elm[0].tag == "skipped":
|
elif elm[0].tag == f"{ns}skipped":
|
||||||
result = SkippedTest(elm,
|
result = SkippedTest(elm,
|
||||||
self.properties[self.versions[-1]]["TEST_DEV"],
|
self.properties[self.versions[-1]]["TEST_DEV"],
|
||||||
self.properties[self.versions[-1]]["TEST_DIR"],
|
self.properties[self.versions[-1]]["TEST_DIR"],
|
||||||
self.properties[self.versions[-1]]["SCRATCH_DEV"],
|
self.properties[self.versions[-1]].get("SCRATCH_DEV"),
|
||||||
self.properties[self.versions[-1]]["SCRATCH_MNT"])
|
self.properties[self.versions[-1]].get("SCRATCH_MNT"))
|
||||||
self.skipped.add(result.message)
|
self.skipped.add(result.message)
|
||||||
elif elm[0].tag == "failure":
|
elif elm[0].tag == f"{ns}failure":
|
||||||
result = FailedTest(elm)
|
result = FailedTest(ns, elm)
|
||||||
self.add_testcase(elm.attrib["name"], result)
|
self.add_testcase(elm.attrib["name"], result)
|
||||||
self.set_property("passed", str(passed))
|
self.set_property("passed", str(passed))
|
||||||
|
|
||||||
|
|
|
@ -124,6 +124,7 @@ class Filter(Gtk.Filter):
|
||||||
match type(testcase[key]):
|
match type(testcase[key]):
|
||||||
case testresults.PassingTest:
|
case testresults.PassingTest:
|
||||||
res = [ "passing", "passed" ]
|
res = [ "passing", "passed" ]
|
||||||
|
search.append(f"time={testcase[key].time}")
|
||||||
case testresults.SkippedTest:
|
case testresults.SkippedTest:
|
||||||
res = [ "skipped" ]
|
res = [ "skipped" ]
|
||||||
search.append(f"message={testcase[key].message}")
|
search.append(f"message={testcase[key].message}")
|
||||||
|
@ -171,7 +172,7 @@ class Viewer(Gtk.ScrolledWindow):
|
||||||
self.columnview = Gtk.ColumnView.new(model=self.selection)
|
self.columnview = Gtk.ColumnView.new(model=self.selection)
|
||||||
self.columnview.add_css_class("data-table")
|
self.columnview.add_css_class("data-table")
|
||||||
|
|
||||||
self.provider.load_from_data(CSS.encode())
|
self.provider.load_from_data(CSS, -1)
|
||||||
self.get_style_context().add_provider_for_display(self.get_display(), self.provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
|
self.get_style_context().add_provider_for_display(self.get_display(), self.provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
|
||||||
self.set_child(self.columnview)
|
self.set_child(self.columnview)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue