summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorduerpei <duep.fnst@fujitsu.com>2023-04-19 13:52:06 +0800
committerQiu Tingting <qiutt@fujitsu.com>2023-04-26 03:01:35 +0000
commitdd6a670eef2a3175a22831b503f71d5afcea063e (patch)
tree285a08f52c9a160103a31e64d0ed6f741761953e
parent8f83b67b8ac0a60ff4e3a5a5888474b3033f9b3a (diff)
tests: add precheck func for test suites under LTP
Add precheck func for test suites under LTP. Ensure that the test suites could be skipped if the test conditions are not met. Bug-AGL: SPEC-4755 Signed-off-by: duerpei <duep.fnst@fujitsu.com> Change-Id: Ib605a2109d04dd4f8544ef9a10f63c172489e827
-rw-r--r--tests/LTP/agl_test_ltp_base.py3
-rw-r--r--tests/LTP/cve/run_tests.py2
-rw-r--r--tests/LTP/math/run_tests.py2
-rw-r--r--tests/LTP/posix_conformance_tests/run_tests.py9
-rw-r--r--tests/LTP/syscalls/run_tests.py2
5 files changed, 15 insertions, 3 deletions
diff --git a/tests/LTP/agl_test_ltp_base.py b/tests/LTP/agl_test_ltp_base.py
index 982e60d..06f3642 100644
--- a/tests/LTP/agl_test_ltp_base.py
+++ b/tests/LTP/agl_test_ltp_base.py
@@ -37,6 +37,9 @@ class LTPBase(AGLBaseTest):
reObj = re.compile('^([\\w\\-]+)(\\s+)(\\w+)', re.MULTILINE)
test_file = self.LTPTEST + self.test_name
+ path_obj = pathlib.Path(test_file)
+ if not path_obj.is_file():
+ return case_list
test_cases = open(test_file, 'r')
line = test_cases.readline()
while line:
diff --git a/tests/LTP/cve/run_tests.py b/tests/LTP/cve/run_tests.py
index f8e864f..8ed99e5 100644
--- a/tests/LTP/cve/run_tests.py
+++ b/tests/LTP/cve/run_tests.py
@@ -21,6 +21,8 @@ class CveBase(LTPBase):
os.environ['KCONFIG_SKIP_CHECK'] = "True"
instance = CveBase()
+skip_msg = "The current environment does not match the test requirements."
+pytestmark = pytest.mark.skipif(instance.precheck() == False, reason = skip_msg)
test_case_list = instance.get_test_case_list()
@pytest.fixture(scope='module')
diff --git a/tests/LTP/math/run_tests.py b/tests/LTP/math/run_tests.py
index 9f82915..e288534 100644
--- a/tests/LTP/math/run_tests.py
+++ b/tests/LTP/math/run_tests.py
@@ -7,6 +7,8 @@ class MathBase(LTPBase):
super().__init__(test_name="math")
instance = MathBase()
+skip_msg = "The current environment does not match the test requirements."
+pytestmark = pytest.mark.skipif(instance.precheck() == False, reason = skip_msg)
test_case_list = instance.get_test_case_list()
@pytest.fixture(scope='module')
diff --git a/tests/LTP/posix_conformance_tests/run_tests.py b/tests/LTP/posix_conformance_tests/run_tests.py
index 9d8405d..a081743 100644
--- a/tests/LTP/posix_conformance_tests/run_tests.py
+++ b/tests/LTP/posix_conformance_tests/run_tests.py
@@ -24,6 +24,8 @@ class Conformance_Base(LTPBase):
case_name_list = []
# root path
root_dir = pathlib.Path(self.LTPDIR + "./conformance/interfaces/")
+ if not root_dir.is_dir():
+ return case_name_list
# search case name by .run-test/.sh files without run.sh
for child in root_dir.iterdir():
if child.is_file():
@@ -103,11 +105,12 @@ def local_precheck():
#write test suite info to file
instance.write_skip_info()
return output
+
+instance = Conformance_Base()
skip_msg = "The current environment does not match the test requirements."
-pytestmark = pytest.mark.skipif(local_precheck() == False, reason = skip_msg)
+pytestmark = pytest.mark.skipif(local_precheck() == False or instance.precheck() == False, reason = skip_msg)
-instance_paramtrize = Conformance_Base()
-@pytest.mark.parametrize('case_name', instance_paramtrize.init_param_list())
+@pytest.mark.parametrize('case_name', instance.init_param_list())
def test_posix_conformance(testbase: Conformance_Base, case_name):
testbase.run_case(case_name)
diff --git a/tests/LTP/syscalls/run_tests.py b/tests/LTP/syscalls/run_tests.py
index 37bd365..5421f28 100644
--- a/tests/LTP/syscalls/run_tests.py
+++ b/tests/LTP/syscalls/run_tests.py
@@ -40,6 +40,8 @@ class SyscallsBase(LTPBase):
cwd=cwd_buf, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
instance = SyscallsBase()
+skip_msg = "The current environment does not match the test requirements."
+pytestmark = pytest.mark.skipif(instance.precheck() == False, reason = skip_msg)
case_list = instance.get_test_case_list()
@pytest.fixture(scope='module')