From 95ea8f3633f58cd5433e36c10074df5fe19a125a Mon Sep 17 00:00:00 2001
From: duerpei <duep.fnst@fujitsu.com>
Date: Sat, 22 Oct 2022 17:17:15 +0800
Subject: agl-test-framework: enable ptest of 'busybox'

Enable the test suite of 'busybox' from ptest

Bug-AGL: SPEC-4345

Signed-off-by: duerpei <duep.fnst@fujitsu.com>
Change-Id: I960f013d47f893f65766628da443ad6dce6f1009
---
 tests/busybox/run_tests.py | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100644 tests/busybox/run_tests.py

(limited to 'tests/busybox/run_tests.py')

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")
-- 
cgit