[dvsim/syn/lint] Add options to selectively sanitize reports
Signed-off-by: Michael Schaffner <msf@google.com>
diff --git a/util/dvsim/SynCfg.py b/util/dvsim/SynCfg.py
index 1cddae3..4e329db 100644
--- a/util/dvsim/SynCfg.py
+++ b/util/dvsim/SynCfg.py
@@ -353,23 +353,33 @@
("Elab Errors", "elab_errors"),
("Compile Warnings", "compile_warnings"),
("Compile Errors", "compile_errors")]
-
+ fail_msgs = ""
has_msg = False
for _, key in hdr_key_pairs:
if key in self.result['messages']:
has_msg = True
break
- if has_msg and not self.args.publish:
- results_str += "\n### Errors and Warnings for Build Mode `'" + mode.name + "'`\n"
+ if has_msg:
+ fail_msgs += "\n### Errors and Warnings for Build Mode `'" + mode.name + "'`\n"
for hdr, key in hdr_key_pairs:
msgs = self.result['messages'].get(key)
- results_str += print_msg_list("#### " + hdr, msgs, self.max_msg_count)
+ fail_msgs += print_msg_list("#### " + hdr, msgs, self.max_msg_count)
+
+ # the email and published reports will default to self.results_md if they are
+ # empty. in case they need to be sanitized, override them and do not append
+ # detailed messages.
+ if self.sanitize_email_results:
+ self.email_results_md = results_str
+ if self.sanitize_publish_results:
+ self.publish_results_md = results_str
+
+ # locally generated result always contains all details
+ self.results_md = results_str + fail_msgs
# TODO: add support for pie / bar charts for area splits and
# QoR history
- self.results_md = results_str
# Write results to the scratch area
self.results_file = self.scratch_path + "/results_" + self.timestamp + ".md"
log.info("Detailed results are available at %s", self.results_file)