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):
|
||||
def __init__(self, properties):
|
||||
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))
|
||||
|
||||
def do_get_item_type(self): return GObject.TYPE_PYOBJECT
|
||||
|
@ -73,7 +73,9 @@ class Factory(Gtk.SignalListItemFactory):
|
|||
label = listitem.get_child()
|
||||
match self.column:
|
||||
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("=")
|
||||
|
||||
def on_unbind(self, factory, listitem):
|
||||
|
|
|
@ -3,6 +3,7 @@ from gi.repository import GObject
|
|||
from gi.repository import Gtk
|
||||
import html
|
||||
import pathlib
|
||||
import re
|
||||
import tarfile
|
||||
import xml.etree.ElementTree
|
||||
|
||||
|
@ -23,20 +24,24 @@ class SkippedTest:
|
|||
self.message = elm[0].attrib["message"]
|
||||
self.message = self.message.replace(test_dev, "$TEST_DEV")
|
||||
self.message = self.message.replace(test_dir, "$TEST_DIR")
|
||||
self.message = self.message.replace(scratch_dev, "$SCRATCH_DEV")
|
||||
self.message = self.message.replace(scratch_mnt, "$SCRATCH_MNT")
|
||||
if scratch_dev:
|
||||
self.message = self.message.replace(scratch_dev, "$SCRATCH_DEV")
|
||||
if scratch_mnt:
|
||||
self.message = self.message.replace(scratch_mnt, "$SCRATCH_MNT")
|
||||
|
||||
|
||||
class FailedTest:
|
||||
def __init__(self, elm):
|
||||
def __init__(self, ns, elm):
|
||||
self.time = elm.attrib["time"]
|
||||
self.system_out = Gtk.TextBuffer()
|
||||
self.system_err = Gtk.TextBuffer()
|
||||
for e in elm:
|
||||
match e.tag:
|
||||
case "failure": self.message = e.attrib["message"]
|
||||
case "system-out": self.system_out.set_text(html.unescape(e.text))
|
||||
case "system-err": self.system_err.set_text(html.unescape(e.text))
|
||||
if e.tag == f"{ns}failure":
|
||||
self.message = e.attrib["message"]
|
||||
elif e.tag == f"{ns}system-out":
|
||||
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):
|
||||
|
@ -66,26 +71,29 @@ class TestResults:
|
|||
self.versions.append(pathlib.Path(name).stem)
|
||||
passed = 0
|
||||
|
||||
match = re.match(r"{.*?}", root.tag)
|
||||
ns = match.group(0) if match else ""
|
||||
|
||||
for prop in root.attrib.keys():
|
||||
self.set_property(prop, root.attrib[prop])
|
||||
|
||||
for elm in root:
|
||||
if elm.tag == "properties":
|
||||
if elm.tag == f"{ns}properties":
|
||||
for prop in elm:
|
||||
self.set_property(prop.attrib["name"], prop.attrib["value"])
|
||||
elif elm.tag == "testcase":
|
||||
elif elm.tag == f"{ns}testcase":
|
||||
if len(elm) == 0:
|
||||
result = PassingTest(elm)
|
||||
passed += 1
|
||||
elif elm[0].tag == "skipped":
|
||||
elif elm[0].tag == f"{ns}skipped":
|
||||
result = SkippedTest(elm,
|
||||
self.properties[self.versions[-1]]["TEST_DEV"],
|
||||
self.properties[self.versions[-1]]["TEST_DIR"],
|
||||
self.properties[self.versions[-1]]["SCRATCH_DEV"],
|
||||
self.properties[self.versions[-1]]["SCRATCH_MNT"])
|
||||
self.properties[self.versions[-1]].get("SCRATCH_DEV"),
|
||||
self.properties[self.versions[-1]].get("SCRATCH_MNT"))
|
||||
self.skipped.add(result.message)
|
||||
elif elm[0].tag == "failure":
|
||||
result = FailedTest(elm)
|
||||
elif elm[0].tag == f"{ns}failure":
|
||||
result = FailedTest(ns, elm)
|
||||
self.add_testcase(elm.attrib["name"], result)
|
||||
self.set_property("passed", str(passed))
|
||||
|
||||
|
|
|
@ -124,6 +124,7 @@ class Filter(Gtk.Filter):
|
|||
match type(testcase[key]):
|
||||
case testresults.PassingTest:
|
||||
res = [ "passing", "passed" ]
|
||||
search.append(f"time={testcase[key].time}")
|
||||
case testresults.SkippedTest:
|
||||
res = [ "skipped" ]
|
||||
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.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.set_child(self.columnview)
|
||||
|
||||
|
|
Loading…
Reference in New Issue