Go to the documentation of this file.
21 BaseTest.__init__(self)
28 Parse a QMTest XML test description (.qmt file) to initialize the test
31 from string
import Template
33 log = logging.getLogger(
"QMTest.XMLParser")
34 import xml.etree.ElementTree
as ET
36 log.debug(
"parsing %s", path)
39 os.path.relpath(path, self.
basedir)
46 for child
in tree.getroot():
47 name = child.attrib[
"name"]
48 if hasattr(self, name):
49 log.debug(
"setting %s", name)
51 if name
in (
"args",
"unsupported_platforms"):
52 setattr(self, name, [el.text
for el
in value.findall(
"text")])
53 elif name ==
"environment":
54 for el
in value.findall(
"text"):
55 key, value = el.text.split(
"=", 1)
56 self.
environment[key] = Template(value).safe_substitute(
62 if value.tag ==
"integer":
64 setattr(self, name, data)
69 class CallWrapper(object):
71 Small wrapper class to dynamically bind some default arguments
75 def __init__(self, callable, extra_args={}):
79 from inspect
import getargspec
95 if a
not in positional
and a
not in kwargs:
97 return self.
callable(*args, **kwargs)
108 "reference": stdout_ref,
109 "error_reference": stderr_ref,
110 "findReferenceBlock": CallWrapper(
112 {
"stdout": stdout,
"result": result,
"causes": self.
causes},
114 "validateWithReference": CallWrapper(
123 "validateJSONWithReference": CallWrapper(
130 "countErrorLines": CallWrapper(
132 {
"stdout": stdout,
"result": result,
"causes": self.
causes},
134 "checkTTreesSummaries": CallWrapper(
136 {
"stdout": stdout,
"result": result,
"causes": self.
causes},
138 "checkHistosSummaries": CallWrapper(
140 {
"stdout": stdout,
"result": result,
"causes": self.
causes},
144 exec(self.
validator, globals(), exported_symbols)
145 return result, self.
causes
147 return super(QMTTest, self).
ValidateOutput(stdout, stderr, result)
def CheckHistosSummaries(self, stdout=None, result=None, causes=None, dict=None, ignore=None)
def validateWithReference(self, stdout=None, stderr=None, result=None, causes=None, preproc=None)
def validateJSONWithReference(self, output_file, reference_file, result=None, causes=None, detailed=True)
def ValidateOutput(self, stdout, stderr, result)
def _expandReferenceFileName(self, reffile)
def findReferenceBlock(self, reference=None, stdout=None, result=None, causes=None, signature_offset=0, signature=None, id=None)
def CheckTTreesSummaries(self, stdout=None, result=None, causes=None, trees_dict=None, ignore=r"Basket|.*size|Compression")
def countErrorLines(self, expected={"ERROR":0, "FATAL":0}, stdout=None, result=None, causes=None)
def XMLParser(self, path)
def __init__(self, path=None)