diff options
Diffstat (limited to 'tests/busybox/run_tests.py')
-rw-r--r-- | tests/busybox/run_tests.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/busybox/run_tests.py b/tests/busybox/run_tests.py new file mode 100644 index 0000000..c6f3b8d --- /dev/null +++ b/tests/busybox/run_tests.py @@ -0,0 +1,45 @@ +import pytest +import pathlib +import subprocess +import tests.busybox.parser as parser +from plugins.agl_test_ptest_base import PTESTBase + +class BusyboxBase(PTESTBase): + def __init__(self): + super().__init__(test_name="busybox") + + def log_process(self): + log_file = self.get_logfile() + self.case_info_list = parser.log_parse(log_file) + + def precheck(self): + path_bash = pathlib.Path("/usr/bin/busybox") + return super().precheck() and path_bash.is_file() + + def do_patch(self, patch_file, do_patch_dir): + patch_cmd = "patch -p1 < " + patch_file + subprocess.run(patch_cmd, shell = True, cwd = do_patch_dir) + + def un_patch(self, patch_file, do_patch_dir): + patch_cmd = "patch -R -p1 < " + patch_file + subprocess.run(patch_cmd, shell = True, cwd = do_patch_dir) + +instance = BusyboxBase() +patch_file = instance.get_workdir() + "fix_duplicate_case_names.patch" +do_patch_dir = "/usr/lib/busybox/ptest/" +instance.do_patch(patch_file, do_patch_dir) +instance.run_ptest() +instance.un_patch(patch_file, do_patch_dir) + +@pytest.fixture(scope='module') +def testbase(): + yield instance + #package log files and make report file + instance.log_report() + +@pytest.mark.parametrize('case_name', instance.case_info_list.keys()) +def test_busybox(testbase: BusyboxBase, case_name): + testbase.run_case(case_name) + +if __name__ == '__main__': + pytest.main("-s run_tests") |