diff --git a/docs/system_base/nss-devel/tc_nss_config_fun001.yaml b/docs/system_base/nss-devel/tc_nss_config_fun001.yaml new file mode 100644 index 0000000000000000000000000000000000000000..feeb1105816bc22f610fb40645f348a3f719b200 --- /dev/null +++ b/docs/system_base/nss-devel/tc_nss_config_fun001.yaml @@ -0,0 +1,35 @@ +作者: douzhichong +优先级: P1 +支持架构: noarch +执行方式: 自动 +测试类型: 功能测试 +通用标签: local,nss +用例描述: 验证nss-config工具功能 +修改人: douzhichong + +测试步骤: +- 环境准备: + - 安装nss-devel软件包 +- 功能测试: + - 验证nss-config --libs输出包含lib64路径 + - 验证nss-config --version与rpm包版本基本一致(允许尾随.0差异) + - 验证nss-config --cflags输出包含nss相关标志 + - 验证nss-config --libdir输出包含usr路径 + - 验证nss-config --includedir输出包含include路径 + - 验证nss-config --exec-prefix输出包含usr路径 +- 环境清理: + - 卸载测试安装的软件包 + +期望结果: +- 所有nss-config命令返回码为0 +- 版本检查: + - nss-config --version输出与rpm包版本基本一致(如3.101.0视为与3.101相同) +- 路径检查: + - --libs输出包含lib64 + - --libdir输出包含usr + - --includedir输出包含include + - --exec-prefix输出包含usr +- 标志检查: + - --cflags输出包含nss相关标志 +- 环境清理: + - 测试完成后卸载nss-devel软件包 \ No newline at end of file diff --git a/tests/system_base/nss-devel/tc_nss_config_fun001.py b/tests/system_base/nss-devel/tc_nss_config_fun001.py new file mode 100644 index 0000000000000000000000000000000000000000..4348af2c845de6df2cd612f6d10a1a81f29cd888 --- /dev/null +++ b/tests/system_base/nss-devel/tc_nss_config_fun001.py @@ -0,0 +1,81 @@ +# -*- encoding: utf-8 -*- + +""" +@File: tc_nss_config_fun001.py +@Time: 2025/07/21 13:30:00 +@Author: douzhichong +@Version: 1.0 +@Contact: douzhichong@inspur.com +@License: Mulan PSL v2 +@Modify: douzhichong +""" +import subprocess +import re +from common.basetest import LocalTest + + +class Test(LocalTest): + """ + See tc_nss_config_fun001.yaml for details + + :avocado: tags=P1,noarch,local,nss + """ + PARAM_DIC = {"pkg_name": "nss-devel"} + + def setUp(self): + print("Start environmental preparation.") + super().setUp(self.PARAM_DIC) + print("End of environmental preparation!") + + def test(self): + print("Start to run test.") + + ret = subprocess.run(["nss-config", "--libs"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + universal_newlines=True) + self.assertIn("lib64", ret.stdout, "Error retrieving library file") + + rpm_ver = subprocess.run(["rpm", "-q", "nss-devel", "--qf", "%{VERSION}"], + stdout=subprocess.PIPE, + universal_newlines=True) + rpm_ver = rpm_ver.stdout.strip() + rpm_ver = re.sub(r'\.0+$', '', rpm_ver) + + nss_ver = subprocess.run(["nss-config", "--version"], + stdout=subprocess.PIPE, + universal_newlines=True) + nss_ver = nss_ver.stdout.strip() + nss_ver = re.sub(r'\.0+$', '', nss_ver) + + self.assertEqual(nss_ver, rpm_ver, + f"Version mismatch: nss-config={nss_ver} vs rpm={rpm_ver}") + + ret = subprocess.run(["nss-config", "--cflags"], + stdout=subprocess.PIPE, + universal_newlines=True) + self.assertIn("nss", ret.stdout, "Error in obtaining flags") + + ret = subprocess.run(["nss-config", "--libdir"], + stdout=subprocess.PIPE, + universal_newlines=True) + self.assertIn("usr", ret.stdout, "Error getting library file directory") + + ret = subprocess.run(["nss-config", "--includedir"], + stdout=subprocess.PIPE, + universal_newlines=True) + self.assertIn("include", ret.stdout, + "Error in obtaining display header file") + + ret = subprocess.run(["nss-config", "--exec-prefix"], + stdout=subprocess.PIPE, + universal_newlines=True) + self.assertIn("usr", ret.stdout, + "Error getting prefix for displaying executable file installation directory") + + print("End of the test.") + + def tearDown(self): + print("Start environment cleanup.") + super().tearDown(self.PARAM_DIC) + print("Finish environment cleanup!") \ No newline at end of file