diff options
Diffstat (limited to 'tests/bash/run_tests.py')
-rw-r--r-- | tests/bash/run_tests.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/bash/run_tests.py b/tests/bash/run_tests.py new file mode 100644 index 0000000..d18ecf0 --- /dev/null +++ b/tests/bash/run_tests.py @@ -0,0 +1,48 @@ +import pytest +import pathlib +import tests.bash.parser as parser +from plugins.agl_test_ptest_base import PTESTBase + +class BashBase(PTESTBase): + def __init__(self): + super().__init__(test_name="bash") + + 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/bash") + return super().precheck() and path_bash.is_file() + + def get_para(self): + #Due to the bug of "ptest-runner", the test case "run-read" may fail + xfail_list = ["run-read"] + return self.set_xfail_case(xfail_list) + + def set_xfail_case(self, xfail_list): + para = list(self.case_info_list.keys()) + for test_case in xfail_list: + para.remove(test_case) + para.append(pytest.param(test_case, marks=pytest.mark.xfail)) + if(self.case_info_list[test_case][1] == "PASS"): + self.case_info_list[test_case][2] = "xpassed" + else: + self.case_info_list[test_case][2] = "xfailed" + return para + +instance = BashBase() +instance.run_ptest() + +@pytest.fixture(scope='module') +def testbase(): + yield instance + #package log files and make report file + instance.log_report() + +@pytest.mark.parametrize('case_name', instance.get_para()) +def test_bash(testbase: BashBase, case_name): + testbase.run_case(case_name) + +if __name__ == '__main__': + pytest.main("-s run_tests") |