Commit 2dcf95c1 authored by norvell's avatar norvell
Browse files

Add option to use MLD limit to pass test

parent bf3f5796
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -26,10 +26,5 @@ if __name__ == '__main__':
    with open(csv_file,'w') as outfile:
        for testcase in testcases:
            fulltestname = testcase.get('file') + "::" + testcase.get('name')
            system_out = testcase.find(".//system-out")
            mld_val = 0
            if system_out is not None:
                for line in system_out.text.split('\n'):
                    if line.startswith('MLD:'):
                        mld_val = float(line.split()[1])
            mld_val = testcase.find('.//property').get('value')
            outfile.write(fulltestname + ';' + str(mld_val)+'\n')
+7 −3
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ import pyivastest
import numpy as np


def cmp_pcm(file1, file2, out_config, fs, get_mld = False) -> (int, str):
def cmp_pcm(file1, file2, out_config, fs, get_mld = False, mld_lim = 0) -> (int, str):
    """
    Compare 2 PCM files for bitexactness
    """
@@ -55,7 +55,11 @@ def cmp_pcm(file1, file2, out_config, fs, get_mld = False) -> (int, str):
        if get_mld:
            mld_msg = f"MLD: {cmp_result['MLD']}"
            print(mld_msg)
        return 1, "FAIL: Files have different content"
            if cmp_result['MLD'] <= mld_lim:
                return 0, f"MLD: {cmp_result['MLD']} <= {mld_lim}"
            else:    
                return 1, f"MLD: {cmp_result['MLD']} > {mld_lim}"
        return 1, "Non-BE"


if __name__ == "__main__":
+11 −3
Original line number Diff line number Diff line
@@ -125,6 +125,7 @@ def convert_test_string_to_tag(test_string):
@pytest.mark.create_ref
@pytest.mark.parametrize("test_tag", list(param_file_test_dict.keys()))
def test_param_file_tests(
    record_property,
    dut_encoder_frontend: EncoderFrontend,
    dut_decoder_frontend: DecoderFrontend,
    ref_encoder_frontend: EncoderFrontend,
@@ -137,6 +138,7 @@ def test_param_file_tests(
    keep_files,
    test_tag,
    get_mld,
    get_mld_lim,
):
    enc_opts, dec_opts, sim_opts, eid_opts = param_file_test_dict[test_tag]

@@ -325,10 +327,16 @@ def test_param_file_tests(
        ref_output_file = f"{reference_path}/param_file/dec/{output_file}"
        fs = int(sampling_rate) * 1000
        output_differs, reason = cmp_pcm(
            dut_output_file, ref_output_file, output_config, fs, get_mld=get_mld
            dut_output_file, ref_output_file, output_config, fs, get_mld=get_mld, mld_lim=get_mld_lim
        )
        md_out_files = get_expected_md_files(ref_output_file, enc_split, output_config)

        if get_mld:
            mld = 0
            if "MLD" in reason:
                mld = float(reason.split(':')[1].split()[0])
            record_property("MLD",mld)

        metadata_differs = False
        for md_file in md_out_files:
            dut_metadata_file = Path(f"{dut_base_path}/param_file/dec/{md_file}")
@@ -347,9 +355,9 @@ def test_param_file_tests(
        if output_differs or metadata_differs:
            msg = "Difference between ref and dut in "
            if output_differs and metadata_differs:
                msg += "output and metadata"
                msg += f"output ({reason}) and metadata"
            elif output_differs:
                msg += "output only"
                msg += f"output only ({reason})"
            elif metadata_differs:
                msg += "metadata only"

+12 −0
Original line number Diff line number Diff line
@@ -158,6 +158,12 @@ def pytest_addoption(parser):
        help="Run the MLD tool instead of just comparing for bitexactness",
    )

    parser.addoption(
        "--mld-lim",
        action="store",
        help="MLD limit for comparison (default: 0)",
        default="0",
    )

@pytest.fixture(scope="session", autouse=True)
def update_ref(request):
@@ -177,6 +183,12 @@ def get_mld(request):
    """
    return request.config.option.mld

@pytest.fixture(scope="session", autouse=True)
def get_mld_lim(request):
    """
    Return MLD limit for MLD comparison
    """
    return float(request.config.getoption("--mld-lim"))

@pytest.fixture(scope="session")
def keep_files(request) -> bool: