aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authoryanxk <yanxk.fnst@fujitsu.com>2022-08-14 17:25:42 +0800
committerXinkuan Yan <yanxk.fnst@fujitsu.com>2022-11-11 09:37:28 +0000
commitf9f4b0ef5dfd10bf8a936b3eecc2407fe94fc305 (patch)
tree5d0b9d4498515bbc9a4426c67185bc57d7e8e84a /tests
parent2612ee28807b08c16f7c1502ff88e713c3897e9c (diff)
agl-test-framework: enable ptest of 'bc'
we have already submitted patches that enabled ptest of 'bc' to the OpenEmbedded community and the patches got merged. but it is not yet in the YP 4.0.5, so it would skip now. it can be seen in YP 4.1. we now add it into the test framework, for it would be available in the next YP release, maybe, or several versions later. Signed-off-by: yanxk <yanxk.fnst@fujitsu.com> Change-Id: Iffdef472c9449c9e3179c3b3bd1273fb2ec0e032
Diffstat (limited to 'tests')
-rw-r--r--tests/bc/__init__.py1
-rw-r--r--tests/bc/parser.py34
-rw-r--r--tests/bc/run_tests.py30
3 files changed, 65 insertions, 0 deletions
diff --git a/tests/bc/__init__.py b/tests/bc/__init__.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/tests/bc/__init__.py
@@ -0,0 +1 @@
+
diff --git a/tests/bc/parser.py b/tests/bc/parser.py
new file mode 100644
index 0000000..8c3cd95
--- /dev/null
+++ b/tests/bc/parser.py
@@ -0,0 +1,34 @@
+#
+# this is a parser function specially designed for the 'bc.log'
+#
+import re
+
+def log_parse(log_file):
+ # set up rule for regex
+ reObj = re.compile('^(PASS|FAIL+?):\\sbc/(.+)[.]b', re.MULTILINE)
+
+ # init a dictionary, it stores the return result
+ case_list = dict()
+
+ # open file
+ test_log = open(log_file, 'r')
+
+ # start to read the new line
+ line = test_log.readline()
+
+ while line:
+ # checking regex status in line
+ matchs = reObj.search(line)
+
+ # if the line fits the regex rule
+ if matchs:
+ # spliting elements into a tuple
+ groups = matchs.groups()
+ case_list[groups[1]] = [groups[1], groups[0], ""]
+
+ # jump out if-else, read next line
+ line = test_log.readline()
+
+ test_log.close()
+
+ return case_list
diff --git a/tests/bc/run_tests.py b/tests/bc/run_tests.py
new file mode 100644
index 0000000..6a0f86e
--- /dev/null
+++ b/tests/bc/run_tests.py
@@ -0,0 +1,30 @@
+import pytest
+
+import tests.bc.parser as parser
+
+from plugins.agl_test_ptest_base import PTESTBase
+
+class BCBase(PTESTBase):
+ def __init__(self):
+ super().__init__(test_name="bc")
+
+ def log_process(self):
+ log_file = self.get_logfile()
+ self.case_info_list = parser.log_parse(log_file)
+ self.init_case_status()
+
+instance = BCBase()
+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.case_info_list.keys())
+def test_bc(testbase: BCBase, case_name):
+ testbase.run_case(case_name)
+
+if __name__ == '__main__':
+ pytest.main("-s run_tests")