CDashReporter: remove unused argument (#34869)

* CDashReporter: remove unused argument
* Removed extract_ctest_test_data
This commit is contained in:
Massimiliano Culpo 2023-01-17 20:09:38 +01:00 committed by GitHub
parent 74901a3d0d
commit b148a43f08
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 7 additions and 82 deletions

View File

@ -2370,7 +2370,6 @@ def report_skipped(self, spec, directory_name, reason):
site=self.site,
buildstamp=self.build_stamp,
track=None,
ctest_parsing=False,
)
reporter = CDash(configuration=configuration)
reporter.test_skipped_report(directory_name, spec, reason)

View File

@ -155,7 +155,6 @@ def installed_specs(args):
site=namespace.cdash_site,
buildstamp=namespace.cdash_buildstamp,
track=namespace.cdash_track,
ctest_parsing=getattr(namespace, "ctest_parsing", False),
)
return spack.reporters.CDash(configuration=configuration)

View File

@ -48,7 +48,7 @@
CDashConfiguration = collections.namedtuple(
"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.generator = "spack-{0}".format(spack.main.get_version())
self.multiple_packages = False
self.ctest_parsing = configuration.ctest_parsing
def report_build_name(self, pkg_name):
return (
@ -265,68 +264,6 @@ def build_report(self, directory_name, specs):
self.build_report_for_package(directory_name, package, duration)
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):
"""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))
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:
# Skip reporting on packages that did not generate any output.
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["hostname"] = socket.gethostname()
if ctest_parsing:
phases = ["test", "update"]
self.extract_ctest_test_data(package, phases, report_data)
else:
phases = ["testing"]
self.extract_standalone_test_data(package, phases, report_data)
phases = ["testing"]
self.extract_standalone_test_data(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:
duration = int(spec["time"])
for package in spec["packages"]:
self.test_report_for_package(
directory_name,
package,
duration,
self.ctest_parsing,
)
self.test_report_for_package(directory_name, package, duration)
self.finalize_report()
@ -414,7 +342,7 @@ def test_skipped_report(self, directory_name, spec, reason=None):
"result": "skipped",
"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):
self.buildname = self.base_buildname

View File

@ -163,13 +163,12 @@ def upload(*args, **kwargs):
site="fake-site",
buildstamp=None,
track="fake-track",
ctest_parsing=False,
)
monkeypatch.setattr(tty, "_debug", 1)
reporter = MockCDash(configuration=configuration)
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]
assert "Skipping report for" in err
assert "No generated output" in err