CDash report for concretization errors
Capture any concretization errors and record them in a CTest Update.xml file.
This commit is contained in:

committed by
Todd Gamblin

parent
d7581697a5
commit
ae0ba373b8
@@ -36,6 +36,7 @@
|
||||
import spack.cmd.common.arguments as arguments
|
||||
import spack.fetch_strategy
|
||||
import spack.report
|
||||
from spack.error import SpackError
|
||||
|
||||
|
||||
description = "build and install packages"
|
||||
@@ -203,7 +204,11 @@ def install(parser, args, **kwargs):
|
||||
for spec in specs:
|
||||
spack.package_testing.test(spec.name)
|
||||
|
||||
specs = spack.cmd.parse_specs(args.package, concretize=True)
|
||||
try:
|
||||
specs = spack.cmd.parse_specs(args.package, concretize=True)
|
||||
except SpackError as e:
|
||||
reporter.concretization_report(e.message)
|
||||
raise
|
||||
|
||||
# 2. Concrete specs from yaml files
|
||||
for file in args.specfiles:
|
||||
|
@@ -360,6 +360,24 @@ def cdash_build_report(self, report_data):
|
||||
t = env.get_template(phase_template)
|
||||
f.write(t.render(report_data))
|
||||
|
||||
def concretization_report(self, msg):
|
||||
if not self.format_name == 'cdash':
|
||||
return
|
||||
|
||||
report_data = {}
|
||||
report_data['starttime'] = self.starttime
|
||||
report_data['endtime'] = self.starttime
|
||||
self.cdash_initialize_report(report_data)
|
||||
|
||||
report_data['msg'] = msg
|
||||
env = spack.tengine.make_environment()
|
||||
update_template = os.path.join(templates[self.format_name],
|
||||
'Update.xml')
|
||||
t = env.get_template(update_template)
|
||||
output_filename = os.path.join(self.filename, 'Update.xml')
|
||||
with open(output_filename, 'w') as f:
|
||||
f.write(t.render(report_data))
|
||||
|
||||
def __exit__(self, exc_type, exc_val, exc_tb):
|
||||
if self.format_name:
|
||||
# Close the collector and restore the
|
||||
|
Reference in New Issue
Block a user