accellera-official / uvm-core

Apache License 2.0
45 stars 19 forks source link

The uvm_report_object's reset_report_handler() does not reset set_report_severity_id_override() overrides #15

Closed rolec6 closed 1 month ago

rolec6 commented 2 months ago

If message severity override is set in uvm_report_object.svh via set_report_severity_id_override(), it cannot be reset using reset_report_handler(). The reset_report_handler calls m_rh.initialize(); that resets various aspects of report handler, but sev_id_overrides used by set_report_severity_id_override is excluded.

Example code reproducing the issue:

    uvm_root r;
    r = uvm_root::get();
    `uvm_error ("TEST", "Test error report. Initial.")
    r.set_report_severity_id_override(UVM_ERROR, "TEST", UVM_WARNING);
    `uvm_error ("TEST", "Test error report. Downgraded.")    
    r.reset_report_handler();
    `uvm_error ("TEST", "Test error report. Reset.") 

The IEEE1800.2-2020 states _6.3.8.3 reset_report_handler function void reset_reporthandler() Resets the underlying report handler to its default settings (see 6.4.2.1). This clears any changes made with the override configuration methods (see 6.3.7).

Where 6.3.7 Override configuration includes set_report_severity_id_override.

Also there seems to be minor inconsequential typo in uvm_report_handler.svh set_report_severity_id_override implementation where uvm_sev_override_array arr; is declared but never used.

mstrickland-mrvl commented 2 months ago

Thanks for submitting this issue. The UVM WG will initiate a bug report to track fixing reset_report_handler(). We can throw dealing with the typo in with that.

mstrickland-mrvl commented 1 month ago

We opened https://accellera.mantishub.io/view.php?id=8478 and will close this issue. Thanks again for the submission