import subprocess import pathlib from plugins.agl_test_base import AGLBaseTest PTEST_CMD = "/usr/bin/ptest-runner" class PTESTBase(AGLBaseTest): def __init__(self, test_name: str): super().__init__(name=test_name) #Run test by ptest-runner def run_test_fun(self): log_file = self.get_logfile() with open(log_file,'w') as log_f: subprocess.run(['ptest-runner', super().get_name()], stdout=log_f, stderr=log_f) log_f.close() def run_case(self, case_id): case_info = self.get_caseinfo_by_name(case_id) if (case_info[1] == "PASS"): case_info[2] = "passed" elif (case_info[1] == "FAIL"): case_info[2] = "failed" elif (case_info[1] == "SKIP"): case_info[2] = "skipped" else: case_info[2] = "failed" self.update_caseinfo_by_name(case_id, case_info) assert case_info[2] == "passed" or case_info[2] == "skipped" def precheck(self): # check for common check_common = super().precheck() # check for ptest-runner path = pathlib.Path(PTEST_CMD) check_ptest_cmd = path.is_file() # check self test scripts test_script = pathlib.Path("/usr/lib/" + super().get_name() + "/ptest/run-ptest") check_test_script = test_script.is_file() return check_common and check_ptest_cmd and check_test_script def run_ptest(self): if(self.precheck() == True): self.run_test_fun() self.log_process()