blob: 31c5c5b6e34138cb43b60196b5ebe27175f27bc5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
import pytest
import pathlib
import subprocess
import plugins.agl_test_log as log
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 = log.log_process_gnu(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")
|