import os
import pytest
import pathlib
import platform

from tests.LTP.agl_test_ltp_base import LTPBase

class CveBase(LTPBase):
    def __init__(self):
        super().__init__(test_name="cve")

    def set_test_env(self):
        # check into /proc/config.gz
        path_Obj_gz = pathlib.Path("/proc/config.gz")
        # check into /lib.modules/ for .config
        release_info = platform.release()
        config_file_path = "/lib/modules/" + release_info + "/build/.config"
        path_Obj_config = pathlib.Path(config_file_path)
        if not path_Obj_gz.is_file() and not path_Obj_config.is_file():
            # set ENV "KCONFIG_SKIP_CHECK" to skip .config check
            os.environ['KCONFIG_SKIP_CHECK'] = "True"

instance = CveBase()
skip_msg = "The current environment does not match the test requirements."
pytestmark = pytest.mark.skipif(instance.precheck() == False, reason = skip_msg)
test_case_list = instance.get_test_case_list()

@pytest.fixture(scope='module')
def testbase():
    instance.set_test_env()
    yield instance
    #package log files and make report file
    instance.log_report()

@pytest.mark.parametrize('case_name', test_case_list)
def test_ltp_cve(testbase: CveBase, case_name):
    testbase.run_ltp_test(case_name)
    testbase.run_case(case_name)

if __name__ == '__main__':
    pytest.main("-s run_tests")