.. _Lint Waivers File Example:

Lint Waivers File Example
-------------------------


Example 1
~~~~~~~~~

.. code-block:: xml

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <waivers version="7">
   
        <waiver name="waiver_1">
            <status>WARNING</status>
            <description>
              Demote all errors in SVTB rule 11.2.1
              (single character loop iterator)
              to warning severity
            </description>
            <checks>
                <check>SVTB.11.2.1</check>
            </checks>
        </waiver>
   
        <waiver name="waiver_2">
            <status>DISABLE</status>
            <description>
              Disable UVM rule 2.8.1 failing
              on test_lib.sv for tests
              test_read_modify_write and test_2m_4s
            </description>
            <check>UVM.2.8.1</check>
            <path>/full_path_to_xbus/xbus/examples/test_lib.sv</path>
            <line-ranges>
                <line-range>64:67</line-range>
                <line-range>108:111</line-range>
            </line-ranges>
        </waiver>
   
        <waiver name="waiver_3">
            <status>INFO</status>
            <description>
              Demote to INFO error hits
              for 'trans_collected'
              in rule UVM.6.2
            </description>
            <check>UVM.6.2</check>
            <message-pattern>.*trans_collected.*</message-pattern>
        </waiver>
   
        <pre-waiver name="pre-waiver_1" >
            <description>
              Do not lint 3rd party IP in certain folder - applies to all checks
            </description>
            <paths regex="simple">
                <path>/full_path_to_project/ips/*</path>
            </paths>
        </pre-waiver>

        <pre-waiver name="pre-waiver_2" >
            <description>
              Lint only the specified tb folder - applies to SVTB.1.1.1 check
            </description>
            <check>SVTB.1.1.1</check>
            <paths regex="simple" apply-on="not-matched">
                <path>/full_path_to_project/tb/*</path>
            </paths>
        </pre-waiver>
   
    </waivers>


Example 2
~~~~~~~~~

.. code-block:: xml

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <waivers version="7">
   
        <waiver name="waiver_elements">
            <status>DISABLE</status>
            <description>
              Disable SVTB rule 29.1.4.1 failing
              on test.sv if all modules match
              the specified naming pattern
            </description>
            <check>SVTB.29.1.4.1</check>
            <path>/full_path_to_project/src/test.sv</path>
            <elements regex="simple">
                <element>
                    <type>module</type>
                    <name>test*</name>
                </element>
            </elements>
        </waiver>
   
    </waivers>


All failures of SVTB.29.1.4.1 will be disabled for the following file, because all modules declared in the file match the naming pattern.

.. code-block:: SystemVerilog
    :caption: test.sv

    module test_1();
        /* module code */
    endmodule;

    module test_2();
        /* module code */
    endmodule;
	

No failures of SVTB.29.1.4.1 will be disabled for this file. The waiver will be ignored because not all modules declared in the file match the naming pattern.

.. code-block:: SystemVerilog
    :caption: test.sv

    module my_test_1();
        /* module code */
    endmodule;

    module test_2();
        /* module code */
    endmodule;
	
