CDashReporter: remove unused argument (#34869)
* CDashReporter: remove unused argument * Removed extract_ctest_test_data
This commit is contained in:
parent
74901a3d0d
commit
b148a43f08
@ -2370,7 +2370,6 @@ def report_skipped(self, spec, directory_name, reason):
|
|||||||
site=self.site,
|
site=self.site,
|
||||||
buildstamp=self.build_stamp,
|
buildstamp=self.build_stamp,
|
||||||
track=None,
|
track=None,
|
||||||
ctest_parsing=False,
|
|
||||||
)
|
)
|
||||||
reporter = CDash(configuration=configuration)
|
reporter = CDash(configuration=configuration)
|
||||||
reporter.test_skipped_report(directory_name, spec, reason)
|
reporter.test_skipped_report(directory_name, spec, reason)
|
||||||
|
@ -155,7 +155,6 @@ def installed_specs(args):
|
|||||||
site=namespace.cdash_site,
|
site=namespace.cdash_site,
|
||||||
buildstamp=namespace.cdash_buildstamp,
|
buildstamp=namespace.cdash_buildstamp,
|
||||||
track=namespace.cdash_track,
|
track=namespace.cdash_track,
|
||||||
ctest_parsing=getattr(namespace, "ctest_parsing", False),
|
|
||||||
)
|
)
|
||||||
return spack.reporters.CDash(configuration=configuration)
|
return spack.reporters.CDash(configuration=configuration)
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
CDashConfiguration = collections.namedtuple(
|
CDashConfiguration = collections.namedtuple(
|
||||||
"CDashConfiguration",
|
"CDashConfiguration",
|
||||||
["upload_url", "packages", "build", "site", "buildstamp", "track", "ctest_parsing"],
|
["upload_url", "packages", "build", "site", "buildstamp", "track"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -106,7 +106,6 @@ def __init__(self, configuration: CDashConfiguration):
|
|||||||
self.revision = git("rev-parse", "HEAD", output=str).strip()
|
self.revision = git("rev-parse", "HEAD", output=str).strip()
|
||||||
self.generator = "spack-{0}".format(spack.main.get_version())
|
self.generator = "spack-{0}".format(spack.main.get_version())
|
||||||
self.multiple_packages = False
|
self.multiple_packages = False
|
||||||
self.ctest_parsing = configuration.ctest_parsing
|
|
||||||
|
|
||||||
def report_build_name(self, pkg_name):
|
def report_build_name(self, pkg_name):
|
||||||
return (
|
return (
|
||||||
@ -265,68 +264,6 @@ def build_report(self, directory_name, specs):
|
|||||||
self.build_report_for_package(directory_name, package, duration)
|
self.build_report_for_package(directory_name, package, duration)
|
||||||
self.finalize_report()
|
self.finalize_report()
|
||||||
|
|
||||||
def extract_ctest_test_data(self, package, phases, report_data):
|
|
||||||
"""Extract ctest test data for the package."""
|
|
||||||
# Track the phases we perform so we know what reports to create.
|
|
||||||
# We always report the update step because this is how we tell CDash
|
|
||||||
# what revision of Spack we are using.
|
|
||||||
assert "update" in phases
|
|
||||||
|
|
||||||
for phase in phases:
|
|
||||||
report_data[phase] = {}
|
|
||||||
report_data[phase]["loglines"] = []
|
|
||||||
report_data[phase]["status"] = 0
|
|
||||||
report_data[phase]["endtime"] = self.endtime
|
|
||||||
|
|
||||||
# Generate a report for this package.
|
|
||||||
# The first line just says "Testing package name-hash"
|
|
||||||
report_data["test"]["loglines"].append(
|
|
||||||
str("{0} output for {1}:".format("test", package["name"]))
|
|
||||||
)
|
|
||||||
for line in package["stdout"].splitlines()[1:]:
|
|
||||||
report_data["test"]["loglines"].append(xml.sax.saxutils.escape(line))
|
|
||||||
|
|
||||||
for phase in phases:
|
|
||||||
report_data[phase]["starttime"] = self.starttime
|
|
||||||
report_data[phase]["log"] = "\n".join(report_data[phase]["loglines"])
|
|
||||||
errors, warnings = parse_log_events(report_data[phase]["loglines"])
|
|
||||||
# Cap the number of errors and warnings at 50 each.
|
|
||||||
errors = errors[0:49]
|
|
||||||
warnings = warnings[0:49]
|
|
||||||
|
|
||||||
if phase == "test":
|
|
||||||
# Convert log output from ASCII to Unicode and escape for XML.
|
|
||||||
def clean_log_event(event):
|
|
||||||
event = vars(event)
|
|
||||||
event["text"] = xml.sax.saxutils.escape(event["text"])
|
|
||||||
event["pre_context"] = xml.sax.saxutils.escape("\n".join(event["pre_context"]))
|
|
||||||
event["post_context"] = xml.sax.saxutils.escape(
|
|
||||||
"\n".join(event["post_context"])
|
|
||||||
)
|
|
||||||
# source_file and source_line_no are either strings or
|
|
||||||
# the tuple (None,). Distinguish between these two cases.
|
|
||||||
if event["source_file"][0] is None:
|
|
||||||
event["source_file"] = ""
|
|
||||||
event["source_line_no"] = ""
|
|
||||||
else:
|
|
||||||
event["source_file"] = xml.sax.saxutils.escape(event["source_file"])
|
|
||||||
return event
|
|
||||||
|
|
||||||
# Convert errors to warnings if the package reported success.
|
|
||||||
if package["result"] == "success":
|
|
||||||
warnings = errors + warnings
|
|
||||||
errors = []
|
|
||||||
|
|
||||||
report_data[phase]["errors"] = []
|
|
||||||
report_data[phase]["warnings"] = []
|
|
||||||
for error in errors:
|
|
||||||
report_data[phase]["errors"].append(clean_log_event(error))
|
|
||||||
for warning in warnings:
|
|
||||||
report_data[phase]["warnings"].append(clean_log_event(warning))
|
|
||||||
|
|
||||||
if phase == "update":
|
|
||||||
report_data[phase]["revision"] = self.revision
|
|
||||||
|
|
||||||
def extract_standalone_test_data(self, package, phases, report_data):
|
def extract_standalone_test_data(self, package, phases, report_data):
|
||||||
"""Extract stand-alone test outputs for the package."""
|
"""Extract stand-alone test outputs for the package."""
|
||||||
|
|
||||||
@ -361,7 +298,7 @@ def report_test_data(self, directory_name, package, phases, report_data):
|
|||||||
tty.debug("Preparing to upload {0}".format(phase_report))
|
tty.debug("Preparing to upload {0}".format(phase_report))
|
||||||
self.upload(phase_report)
|
self.upload(phase_report)
|
||||||
|
|
||||||
def test_report_for_package(self, directory_name, package, duration, ctest_parsing=False):
|
def test_report_for_package(self, directory_name, package, duration):
|
||||||
if "stdout" not in package:
|
if "stdout" not in package:
|
||||||
# Skip reporting on packages that did not generate any output.
|
# Skip reporting on packages that did not generate any output.
|
||||||
tty.debug("Skipping report for {0}: No generated output".format(package["name"]))
|
tty.debug("Skipping report for {0}: No generated output".format(package["name"]))
|
||||||
@ -377,12 +314,8 @@ def test_report_for_package(self, directory_name, package, duration, ctest_parsi
|
|||||||
|
|
||||||
report_data = self.initialize_report(directory_name)
|
report_data = self.initialize_report(directory_name)
|
||||||
report_data["hostname"] = socket.gethostname()
|
report_data["hostname"] = socket.gethostname()
|
||||||
if ctest_parsing:
|
phases = ["testing"]
|
||||||
phases = ["test", "update"]
|
self.extract_standalone_test_data(package, phases, report_data)
|
||||||
self.extract_ctest_test_data(package, phases, report_data)
|
|
||||||
else:
|
|
||||||
phases = ["testing"]
|
|
||||||
self.extract_standalone_test_data(package, phases, report_data)
|
|
||||||
|
|
||||||
self.report_test_data(directory_name, package, phases, report_data)
|
self.report_test_data(directory_name, package, phases, report_data)
|
||||||
|
|
||||||
@ -394,12 +327,7 @@ def test_report(self, directory_name, specs):
|
|||||||
if "time" in spec:
|
if "time" in spec:
|
||||||
duration = int(spec["time"])
|
duration = int(spec["time"])
|
||||||
for package in spec["packages"]:
|
for package in spec["packages"]:
|
||||||
self.test_report_for_package(
|
self.test_report_for_package(directory_name, package, duration)
|
||||||
directory_name,
|
|
||||||
package,
|
|
||||||
duration,
|
|
||||||
self.ctest_parsing,
|
|
||||||
)
|
|
||||||
|
|
||||||
self.finalize_report()
|
self.finalize_report()
|
||||||
|
|
||||||
@ -414,7 +342,7 @@ def test_skipped_report(self, directory_name, spec, reason=None):
|
|||||||
"result": "skipped",
|
"result": "skipped",
|
||||||
"stdout": output,
|
"stdout": output,
|
||||||
}
|
}
|
||||||
self.test_report_for_package(directory_name, package, duration=0.0, ctest_parsing=False)
|
self.test_report_for_package(directory_name, package, duration=0.0)
|
||||||
|
|
||||||
def concretization_report(self, directory_name, msg):
|
def concretization_report(self, directory_name, msg):
|
||||||
self.buildname = self.base_buildname
|
self.buildname = self.base_buildname
|
||||||
|
@ -163,13 +163,12 @@ def upload(*args, **kwargs):
|
|||||||
site="fake-site",
|
site="fake-site",
|
||||||
buildstamp=None,
|
buildstamp=None,
|
||||||
track="fake-track",
|
track="fake-track",
|
||||||
ctest_parsing=False,
|
|
||||||
)
|
)
|
||||||
monkeypatch.setattr(tty, "_debug", 1)
|
monkeypatch.setattr(tty, "_debug", 1)
|
||||||
|
|
||||||
reporter = MockCDash(configuration=configuration)
|
reporter = MockCDash(configuration=configuration)
|
||||||
pkg_data = {"name": "fake-package"}
|
pkg_data = {"name": "fake-package"}
|
||||||
reporter.test_report_for_package(tmpdir.strpath, pkg_data, 0, False)
|
reporter.test_report_for_package(tmpdir.strpath, pkg_data, 0)
|
||||||
err = capfd.readouterr()[1]
|
err = capfd.readouterr()[1]
|
||||||
assert "Skipping report for" in err
|
assert "Skipping report for" in err
|
||||||
assert "No generated output" in err
|
assert "No generated output" in err
|
||||||
|
Loading…
Reference in New Issue
Block a user