Commit e85b9589 authored by norvell's avatar norvell
Browse files

Added record_property to EncoderFrontend/DecoderFrontend to reduce clutter

parent ead242c6
Loading
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -139,7 +139,6 @@ def convert_test_string_to_tag(test_string):
# hack to have stv/ltv/evs in the test name
@pytest.mark.parametrize("param_file_id", [PARAM_FILE_ID])
def test_param_file_tests(
    record_property,
    props_to_record,
    encoder_only,
    decoder_only,
@@ -200,7 +199,6 @@ def test_param_file_tests(

    if not decoder_only:
        encode(
            record_property,
            dut_encoder_frontend,
            ref_encoder_frontend,
            reference_path,
@@ -235,7 +233,7 @@ def test_param_file_tests(
            cmp_result_msg += enc_test_result_msg
            props = parse_properties(cmp_result_msg, False, props_to_record)
            for k, v in props.items():
                record_property(k, v)
                dut_encoder_frontend.record_property(k, v)

            if enc_test_result:
                pytest.fail("Too high difference in encoder statistics found.")
@@ -421,7 +419,7 @@ def test_param_file_tests(

        props = parse_properties(cmp_result_msg, output_differs, props_to_record)
        for k, v in props.items():
            record_property(k, v)
            dut_decoder_frontend.record_property(k, v)

        metadata_differs = False
        for md_file in md_out_files:
@@ -477,7 +475,6 @@ def test_param_file_tests(


def encode(
    record_property,
    dut_encoder_frontend,
    ref_encoder_frontend,
    reference_path,
@@ -513,7 +510,6 @@ def encode(

        # call REF encoder
        ref_encoder_frontend.run(
            record_property,
            bitrate,
            sampling_rate,
            testv_file,
@@ -527,7 +523,6 @@ def encode(

        # call DUT encoder
        dut_encoder_frontend.run(
            record_property,
            bitrate,
            sampling_rate,
            testv_file,
+5 −27
Original line number Diff line number Diff line
@@ -92,7 +92,6 @@ def check_and_makedir(dir_path):
@pytest.mark.parametrize("tag", tag_list)
@pytest.mark.parametrize("sampling_rate", sample_rate_list)
def test_pca_enc(
    record_property,
    props_to_record,
    dut_encoder_frontend: EncoderFrontend,
    dut_decoder_frontend: DecoderFrontend,
@@ -138,7 +137,6 @@ def test_pca_enc(

    if not decoder_only:
        sba_enc(
            record_property,
            dut_encoder_frontend,
            test_vector_path,
            ref_encoder_frontend,
@@ -164,7 +162,6 @@ def test_pca_enc(

    if not encoder_only:
        sba_dec(
            record_property,
            props_to_record,
            dut_decoder_frontend,
            ref_decoder_frontend,
@@ -198,7 +195,6 @@ def test_pca_enc(
@pytest.mark.parametrize("gain_flag", gain_list)
@pytest.mark.parametrize("sid", SID_list)
def test_sba_enc_system(
    record_property,
    props_to_record,
    dut_encoder_frontend: EncoderFrontend,
    dut_decoder_frontend: DecoderFrontend,
@@ -272,7 +268,6 @@ def test_sba_enc_system(

    if not decoder_only:
        ref_stats_file, dut_stats_file = sba_enc(
            record_property,
            dut_encoder_frontend,
            test_vector_path,
            ref_encoder_frontend,
@@ -325,7 +320,7 @@ def test_sba_enc_system(
                    enc_test_result_msg, enc_test_result != 0, props_to_record
                )
                for k, v in props.items():
                    record_property(k, v)
                    dut_encoder_frontend.record_property(k, v)

                # report compare result
                if enc_test_result != 0:
@@ -333,7 +328,6 @@ def test_sba_enc_system(

    if not encoder_only:
        sba_dec(
            record_property,
            props_to_record,
            dut_decoder_frontend,
            ref_decoder_frontend,
@@ -363,7 +357,6 @@ def test_sba_enc_system(
@pytest.mark.parametrize("bitrate", ivas_br_HOA2)
@pytest.mark.parametrize("tag", tag_list_HOA2)
def test_spar_hoa2_enc_system(
    record_property,
    props_to_record,
    dut_encoder_frontend: EncoderFrontend,
    dut_decoder_frontend: DecoderFrontend,
@@ -407,7 +400,6 @@ def test_spar_hoa2_enc_system(

    if not decoder_only:
        ref_stats_file, dut_stats_file = sba_enc(
            record_property,
            dut_encoder_frontend,
            test_vector_path,
            ref_encoder_frontend,
@@ -460,7 +452,7 @@ def test_spar_hoa2_enc_system(
                    enc_test_result_msg, enc_test_result != 0, props_to_record
                )
                for k, v in props.items():
                    record_property(k, v)
                    dut_encoder_frontend.record_property(k, v)

                # report compare result
                if enc_test_result != 0:
@@ -468,7 +460,6 @@ def test_spar_hoa2_enc_system(

    if not encoder_only:
        sba_dec(
            record_property,
            props_to_record,
            dut_decoder_frontend,
            ref_decoder_frontend,
@@ -498,7 +489,6 @@ def test_spar_hoa2_enc_system(
@pytest.mark.parametrize("bitrate", ivas_br_HOA3)
@pytest.mark.parametrize("tag", tag_list_HOA3)
def test_spar_hoa3_enc_system(
    record_property,
    props_to_record,
    dut_encoder_frontend: EncoderFrontend,
    dut_decoder_frontend: DecoderFrontend,
@@ -542,7 +532,6 @@ def test_spar_hoa3_enc_system(

    if not decoder_only:
        ref_stats_file, dut_stats_file = sba_enc(
            record_property,
            dut_encoder_frontend,
            test_vector_path,
            ref_encoder_frontend,
@@ -589,7 +578,7 @@ def test_spar_hoa3_enc_system(
                    enc_test_result_msg, enc_test_result != 0, props_to_record
                )
                for k, v in props.items():
                    record_property(k, v)
                    dut_encoder_frontend.record_property(k, v)

                # report compare result
                if enc_test_result != 0:
@@ -597,7 +586,6 @@ def test_spar_hoa3_enc_system(

    if not encoder_only:
        sba_dec(
            record_property,
            props_to_record,
            dut_decoder_frontend,
            ref_decoder_frontend,
@@ -629,7 +617,6 @@ def test_spar_hoa3_enc_system(
@pytest.mark.parametrize("tag", tag_list_bw_force)
@pytest.mark.parametrize("sample_rate_bw_idx", sample_rate_bw_idx_list)
def test_sba_enc_BWforce_system(
    record_property,
    props_to_record,
    dut_encoder_frontend: EncoderFrontend,
    dut_decoder_frontend: DecoderFrontend,
@@ -685,7 +672,6 @@ def test_sba_enc_BWforce_system(

    if not decoder_only:
        ref_stats_file, dut_stats_file = sba_enc(
            record_property,
            dut_encoder_frontend,
            test_vector_path,
            ref_encoder_frontend,
@@ -738,7 +724,7 @@ def test_sba_enc_BWforce_system(
                    enc_test_result_msg, enc_test_result != 0, props_to_record
                )
                for k, v in props.items():
                    record_property(k, v)
                    dut_encoder_frontend.record_property(k, v)

                # report compare result
                if enc_test_result != 0:
@@ -746,7 +732,6 @@ def test_sba_enc_BWforce_system(

    if not encoder_only:
        sba_dec(
            record_property,
            props_to_record,
            dut_decoder_frontend,
            ref_decoder_frontend,
@@ -780,7 +765,6 @@ def test_sba_enc_BWforce_system(
@pytest.mark.parametrize("sampling_rate", sample_rate_list)
@pytest.mark.parametrize("gain_flag", gain_list)
def test_sba_plc_system(
    record_property,
    props_to_record,
    dut_encoder_frontend: EncoderFrontend,
    dut_decoder_frontend: DecoderFrontend,
@@ -850,7 +834,6 @@ def test_sba_plc_system(

    if not decoder_only:
        sba_enc(
            record_property,
            dut_encoder_frontend,
            test_vector_path,
            ref_encoder_frontend,
@@ -876,7 +859,6 @@ def test_sba_plc_system(

    if not encoder_only:
        sba_dec(
            record_property,
            props_to_record,
            dut_decoder_frontend,
            ref_decoder_frontend,
@@ -907,7 +889,6 @@ def test_sba_plc_system(


def sba_enc(
    record_property,
    dut_encoder_frontend,
    test_vector_path,
    ref_encoder_frontend,
@@ -984,7 +965,6 @@ def sba_enc(
    if update_ref == 1:
        # call REF encoder
        ref_encoder_frontend.run(
            record_property,
            bitrate,
            sampling_rate,
            input_path,
@@ -999,7 +979,6 @@ def sba_enc(
    if update_ref == 0:
        # call DUT encoder
        dut_encoder_frontend.run(
            record_property,
            bitrate,
            sampling_rate,
            input_path,
@@ -1033,7 +1012,6 @@ def sba_enc(


def sba_dec(
    record_property,
    props_to_record,
    dut_decoder_frontend,
    ref_decoder_frontend,
@@ -1140,7 +1118,7 @@ def sba_dec(
        text_to_parse = reason
        props = parse_properties(text_to_parse, cmp_result != 0, props_to_record)
        for k, v in props.items():
            record_property(k, v)
            dut_decoder_frontend.record_property(k, v)

        # report compare result
        if cmp_result != 0:
+13 −12
Original line number Diff line number Diff line
@@ -379,13 +379,14 @@ def dut_encoder_path(request) -> str:


class EncoderFrontend:
    def __init__(self, path, enc_type, timeout=None) -> None:
    def __init__(self, path, enc_type, record_property, timeout=None) -> None:
        self._path = Path(path).absolute()
        self._type = enc_type
        self.returncode = None
        self.stdout = None
        self.stderr = None
        self.timeout = timeout
        self.record_property = record_property

    def extract_enc_stats(
        self,
@@ -463,7 +464,6 @@ class EncoderFrontend:

    def run(
        self,
        record_property,
        bitrate: Union[int, Path],
        input_sampling_rate: int,
        input_path: Path,
@@ -542,7 +542,7 @@ class EncoderFrontend:
            search_result = re.search(pattern, self.stdout)
            if search_result:
                val = search_result.group(1)
            record_property( prop, val )
            self.record_property( prop, val )

        if self.stdout:
            stdout_str = textwrap.indent(self.stdout, prefix="\t")
@@ -570,7 +570,7 @@ class EncoderFrontend:


@pytest.fixture(scope="function")
def dut_encoder_frontend(dut_encoder_path, request) -> Union[None, EncoderFrontend]:
def dut_encoder_frontend(dut_encoder_path, request, record_property) -> Union[None, EncoderFrontend]:
    """
    Return a :class:`conftest.EncoderFrontend` instance as DUT for the test session.
    """
@@ -578,7 +578,7 @@ def dut_encoder_frontend(dut_encoder_path, request) -> Union[None, EncoderFronte

    if dut_encoder_path:
        timeout = request.config.getoption("--testcase_timeout")
        encoder = EncoderFrontend(dut_encoder_path, "DUT", timeout=timeout)
        encoder = EncoderFrontend(dut_encoder_path, "DUT", record_property, timeout=timeout)
    yield encoder

    if encoder is not None:
@@ -617,7 +617,7 @@ def ref_encoder_path(request) -> str:


@pytest.fixture(scope="function")
def ref_encoder_frontend(ref_encoder_path, request) -> Union[None, EncoderFrontend]:
def ref_encoder_frontend(ref_encoder_path, request, record_property) -> Union[None, EncoderFrontend]:
    """
    Return a :class:`conftest.EncoderFrontend` instance as REF for the test session.
    """
@@ -625,7 +625,7 @@ def ref_encoder_frontend(ref_encoder_path, request) -> Union[None, EncoderFronte

    if ref_encoder_path:
        timeout = request.config.getoption("--testcase_timeout")
        encoder = EncoderFrontend(ref_encoder_path, "REF", timeout=timeout)
        encoder = EncoderFrontend(ref_encoder_path, "REF", record_property, timeout=timeout)

    yield encoder

@@ -664,7 +664,7 @@ def dut_decoder_path(request) -> str:


class DecoderFrontend:
    def __init__(self, path, dec_type, timeout=None, fr=20) -> None:
    def __init__(self, path, dec_type, record_property, timeout=None, fr=20) -> None:
        self._path = str(Path(path).absolute())
        self._type = dec_type
        self.returncode = None
@@ -672,6 +672,7 @@ class DecoderFrontend:
        self.stderr = None
        self.timeout = timeout
        self.fr = fr
        self.record_property = record_property

    def run(
        self,
@@ -839,7 +840,7 @@ class DecoderFrontend:


@pytest.fixture(scope="function")
def dut_decoder_frontend(dut_decoder_path, request) -> Union[None, DecoderFrontend]:
def dut_decoder_frontend(dut_decoder_path, request, record_property) -> Union[None, DecoderFrontend]:
    """
    Return a :class:`conftest.DecoderFrontend` instance as DUT for the test session.
    """
@@ -847,7 +848,7 @@ def dut_decoder_frontend(dut_decoder_path, request) -> Union[None, DecoderFronte

    if dut_decoder_path:
        timeout = request.config.getoption("--testcase_timeout")
        decoder = DecoderFrontend(dut_decoder_path, "DUT", timeout=timeout, fr=request.config.option.dut_fr)
        decoder = DecoderFrontend(dut_decoder_path, "DUT", record_property, timeout=timeout, fr=request.config.option.dut_fr)

    yield decoder

@@ -887,7 +888,7 @@ def ref_decoder_path(request) -> str:


@pytest.fixture(scope="function")
def ref_decoder_frontend(ref_decoder_path, request) -> Union[None, DecoderFrontend]:
def ref_decoder_frontend(ref_decoder_path, request, record_property) -> Union[None, DecoderFrontend]:
    """
    Return a :class:`conftest.DecoderFrontend` instance as DUT for the test session.
    """
@@ -895,7 +896,7 @@ def ref_decoder_frontend(ref_decoder_path, request) -> Union[None, DecoderFronte

    if ref_decoder_path:
        timeout = request.config.getoption("--testcase_timeout")
        decoder = DecoderFrontend(ref_decoder_path, "REF", timeout=timeout)
        decoder = DecoderFrontend(ref_decoder_path, "REF", record_property, timeout=timeout)

    yield decoder

+0 −2
Original line number Diff line number Diff line
@@ -74,7 +74,6 @@ def get_options(inp_format):
@pytest.mark.parametrize("inp_format,inp_file", zip(INPUT_FORMATS, INPUT_FILES))
@pytest.mark.parametrize("bitrate", BITRATES)
def test_be_for_ext_output(
    record_property,
    inp_format,
    inp_file,
    bitrate,
@@ -93,7 +92,6 @@ def test_be_for_ext_output(
        input_file = TESTV_DIR.joinpath(inp_file)
        options = get_options(inp_format)
        dut_encoder_frontend.run(
            record_property,
            bitrate,
            sampling_rate,
            input_file,
+1 −2
Original line number Diff line number Diff line
@@ -150,7 +150,7 @@ INPUT_FILES = {

@pytest.mark.parametrize("in_format,bitrate,out_format,dtx", TESTCASES)
def test_be_for_jbm_neutral_dly_profile(
    record_property, in_format, bitrate, out_format, dtx, dut_encoder_frontend, dut_decoder_frontend
    in_format, bitrate, out_format, dtx, dut_encoder_frontend, dut_decoder_frontend
):
    with TemporaryDirectory() as tmp_dir:
        tmp_dir = pathlib.Path(tmp_dir)
@@ -161,7 +161,6 @@ def test_be_for_jbm_neutral_dly_profile(
        input_file = TESTV_DIR.joinpath(INPUT_FILES[in_format])
        options = get_options(in_format, bitrate, dtx == DTX_ON)
        dut_encoder_frontend.run(
            record_property,
            bitrate,
            sampling_rate_khz,
            input_file,