From 2fae2b2342beda8677ec4d55fcd2fcfe4d2a269d Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Wed, 21 Sep 2016 14:07:29 -0300 Subject: [PATCH] validate: Always print trace for critical issues And take into account issue details level to generate backtrace. --- validate/gst/validate/gst-validate-report.c | 23 +++++++++++++++-------- validate/gst/validate/gst-validate-runner.c | 9 ++++++--- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/validate/gst/validate/gst-validate-report.c b/validate/gst/validate/gst-validate-report.c index f01a0d7..8316e59 100644 --- a/validate/gst/validate/gst-validate-report.c +++ b/validate/gst/validate/gst-validate-report.c @@ -798,7 +798,9 @@ gst_validate_report_new (GstValidateIssue * issue, GstValidateReporter * reporter, const gchar * message) { GstValidateReport *report = g_slice_new0 (GstValidateReport); - GstValidateReportingDetails reporter_level; + GstValidateReportingDetails reporter_details, default_details, + issue_type_details; + GstValidateRunner *runner = gst_validate_reporter_get_runner (reporter); gst_mini_object_init (((GstMiniObject *) report), 0, _gst_validate_report_type, NULL, NULL, @@ -820,13 +822,18 @@ gst_validate_report_new (GstValidateIssue * issue, report->level = issue->default_level; report->reporting_level = GST_VALIDATE_SHOW_UNKNOWN; - reporter_level = gst_validate_reporter_get_reporting_level (reporter); - if (reporter_level == GST_VALIDATE_SHOW_ALL || - (reporter_level == GST_VALIDATE_SHOW_UNKNOWN - && - gst_validate_runner_get_default_reporting_details - (gst_validate_reporter_get_runner (reporter)) == - GST_VALIDATE_SHOW_ALL)) + reporter_details = gst_validate_reporter_get_reporting_level (reporter); + issue_type_details = gst_validate_runner_get_reporting_level_for_name (runner, + g_quark_to_string (issue->issue_id)); + default_details = gst_validate_runner_get_default_reporting_details (runner); + if (reporter_details != GST_VALIDATE_SHOW_ALL && + reporter_details != GST_VALIDATE_SHOW_UNKNOWN) + return report; + + if (default_details == GST_VALIDATE_SHOW_ALL || + issue_type_details == GST_VALIDATE_SHOW_ALL || + gst_validate_report_check_abort (report) || + report->level == GST_VALIDATE_REPORT_LEVEL_CRITICAL) report->trace = generate_trace (); return report; diff --git a/validate/gst/validate/gst-validate-runner.c b/validate/gst/validate/gst-validate-runner.c index 9474ee5..0934ab6 100644 --- a/validate/gst/validate/gst-validate-runner.c +++ b/validate/gst/validate/gst-validate-runner.c @@ -564,13 +564,16 @@ gst_validate_runner_add_report (GstValidateRunner * runner, return; case GST_VALIDATE_SHOW_SMART: if (!gst_validate_report_check_abort (report) && - report->level != GST_VALIDATE_REPORT_LEVEL_CRITICAL) { + report->level != GST_VALIDATE_REPORT_LEVEL_CRITICAL && + !report->trace) { synthesize_reports (runner, report); return; } case GST_VALIDATE_SHOW_SYNTHETIC: - synthesize_reports (runner, report); - return; + if (!report->trace) { + synthesize_reports (runner, report); + return; + } default: break; } -- 2.7.4