diff --git a/docs/system_base/papi/tc_papi_fun001.yaml b/docs/system_base/papi/tc_papi_fun001.yaml new file mode 100644 index 0000000000000000000000000000000000000000..669fb1651d0f367b154be0ee221e99331482c614 --- /dev/null +++ b/docs/system_base/papi/tc_papi_fun001.yaml @@ -0,0 +1,38 @@ +作者: douzhichong +优先级: P1 +支持架构: noarch +执行方式: 自动 +测试类型: 功能测试 +通用标签: local,papi +用例描述: PAPI工具基本功能测试 +修改人: douzhichong + +前置条件: +- 系统已安装papi包 + +测试步骤: +- 检查papi_avail命令基本功能是否正常 +- 验证papi_avail帮助信息显示是否正确 +- 测试papi_avail各种参数选项的功能完整性 +- 检查papi_avail --avail参数显示可用PAPI事件 +- 验证papi_avail -a参数显示所有可用事件 +- 测试papi_avail -c参数检查事件功能 +- 验证papi_avail --check参数的事件检查功能 +- 检查papi_avail -d参数显示详细信息 +- 测试papi_avail --detail参数的详细信息显示 +- 验证papi_avail -e参数指定特定事件的功能 +- 检查papi_avail --br参数显示分支相关事件 + +期望结果: +- papi_avail命令能够正常执行并显示"Available PAPI"相关信息 +- papi_avail帮助信息正确显示"This is the PAPI avail program" +- papi_avail所有参数选项都能正常工作并返回正确信息 +- --avail参数能够正确列出所有可用的PAPI性能事件 +- -a参数能够显示完整的可用事件列表 +- -c参数能够正确执行事件检查功能 +- --check参数能够验证事件的可用性 +- -d参数能够显示事件的详细信息 +- --detail参数能够提供事件的详细描述信息 +- -e参数能够正确过滤和显示指定的事件信息 +- --br参数能够正确显示分支预测相关的事件 +- 所有测试步骤均通过,无错误返回码 diff --git a/docs/system_base/papi/tc_papi_fun002.yaml b/docs/system_base/papi/tc_papi_fun002.yaml new file mode 100644 index 0000000000000000000000000000000000000000..530272a9731747cb3b85d218400a0de5fda4bee7 --- /dev/null +++ b/docs/system_base/papi/tc_papi_fun002.yaml @@ -0,0 +1,39 @@ +作者: douzhichong +优先级: P1 +支持架构: noarch +执行方式: 自动 +测试类型: 功能测试 +通用标签: local,papi +用例描述: PAPI工具基本功能测试 +修改人: douzhichong + +前置条件: +- 系统已安装papi包 + +测试步骤: +- 检查papi_avail --cache参数显示缓存相关性能事件 +- 验证papi_avail --cnd参数显示条件指令相关性能事件 +- 测试papi_avail --fp参数显示浮点运算相关性能事件 +- 检查papi_avail --ins参数显示指令相关性能事件 +- 验证papi_avail --idl参数显示空闲周期相关性能事件 +- 测试papi_avail --l1参数显示L1缓存相关性能事件 +- 检查papi_avail --l2参数显示L2缓存相关性能事件 +- 验证papi_avail --l3参数显示L3缓存相关性能事件 +- 测试papi_avail --mem参数显示内存访问相关性能事件 +- 检查papi_avail --msc参数显示杂项硬件性能事件 +- 验证papi_avail --tlb参数显示TLB相关性能事件 + +期望结果: +- --cache参数正确显示CPU缓存命中/失效等缓存相关性能事件 +- --cnd参数正确显示条件分支、条件执行等条件指令相关性能事件 +- --fp参数正确显示浮点运算、浮点异常等浮点操作相关性能事件 +- --ins参数正确显示指令计数、指令类型等指令相关性能事件 +- --idl参数正确显示CPU空闲周期、等待状态等空闲相关性能事件 +- --l1参数正确显示L1数据缓存、指令缓存等一级缓存相关性能事件 +- --l2参数正确显示L2统一缓存、L2访问等二级缓存相关性能事件 +- --l3参数正确显示L3共享缓存、L3命中率等三级缓存相关性能事件 +- --mem参数正确显示内存加载、存储、带宽等内存访问相关性能事件 +- --msc参数正确显示其他杂项硬件性能监控事件 +- --tlb参数正确显示TLB命中、失效等地址转换相关性能事件 +- 所有分类参数都能正常执行并返回"Available PAPI"确认信息 +- 各硬件事件分类显示正确,无错误返回码 diff --git a/docs/system_base/papi/tc_papi_fun003.yaml b/docs/system_base/papi/tc_papi_fun003.yaml new file mode 100644 index 0000000000000000000000000000000000000000..542f2b05ce2a0d0942b1a35245d5dacccf0ea9f0 --- /dev/null +++ b/docs/system_base/papi/tc_papi_fun003.yaml @@ -0,0 +1,35 @@ +作者: douzhichong +优先级: P1 +支持架构: noarch +执行方式: 自动 +测试类型: 功能测试 +通用标签: local,papi +用例描述: PAPI工具基本功能测试 +修改人: douzhichong + +前置条件: +- 系统已安装papi包 + +测试步骤: +- 验证papi_command_line工具帮助信息显示正确 +- 测试papi_command_line执行特定事件测量功能 +- 检查papi_clockres时钟分辨率检测功能 +- 验证papi_component_avail组件可用性检查工具 +- 测试papi_component_avail帮助信息显示 +- 检查papi_component_avail详细模式显示网络组件信息 +- 验证papi_cost性能代价分析工具帮助信息 +- 根据事件可用性条件测试papi_cost最小化基准测量 +- 检查papi_decode事件解码工具帮助信息 +- 验证papi_decode显示所有事件功能及特定事件解码 + +期望结果: +- papi_command_line帮助信息正确显示"Usage: papi_command_line"格式 +- papi_command_line能够成功执行PAPI_TLB_DM事件测量并显示相应结果 +- papi_clockres正确返回时钟分辨率信息,包含"PAPI_get_real_cyc"相关输出 +- papi_component_avail帮助信息正确显示组件可用性工具用法 +- papi_component_avail详细模式正确显示包含"net"网络组件信息 +- papi_cost帮助信息正确显示"This is the PAPI cost"标识 +- 当无可用事件时papi_cost测量应失败,有可用事件时应成功执行 +- papi_decode帮助信息正确显示"decode [options]"命令格式 +- papi_decode能够正确解码并显示PAPI_L1_DCM等缓存相关事件 +- 所有工具命令均能正常执行,返回正确的状态码和输出信息 diff --git a/docs/system_base/papi/tc_papi_fun004.yaml b/docs/system_base/papi/tc_papi_fun004.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8a97e92ae7433ad363656bbf7e04317259b413f3 --- /dev/null +++ b/docs/system_base/papi/tc_papi_fun004.yaml @@ -0,0 +1,37 @@ +作者: douzhichong +优先级: P1 +支持架构: noarch +执行方式: 自动 +测试类型: 功能测试 +通用标签: local,papi +用例描述: PAPI工具基本功能测试 +修改人: douzhichong + +前置条件: +- 系统已安装papi包 + +测试步骤: +- 验证papi_native_avail工具帮助信息显示正确性 +- 检查papi_native_avail --help参数功能一致性 +- 测试papi_native_avail -c参数事件检查功能 +- 验证papi_native_avail --check参数事件统计功能 +- 检查papi_native_avail -e参数特定事件查询功能 +- 测试papi_native_avail -i参数事件信息显示功能 +- 验证papi_native_avail -x参数事件排除功能 +- 检查papi_native_avail --noqual参数无限定符事件显示 +- 测试papi_native_avail --darr参数数据地址范围事件 +- 验证papi_native_avail --dear参数数据地址事件范围功能 + +期望结果: +- papi_native_avail帮助信息正确显示"Usage: papi_native_avail"格式 +- --help参数与-h参数功能一致,显示相同的用法信息 +- -c参数正确执行事件检查并返回"Total events"统计信息 +- --check参数正确显示事件总数和检查结果 +- -e参数能够正确查询并显示PAPI_REF_CYC特定事件信息 +- -i参数正确显示PAPI_REF_CYC事件的详细信息 +- -x参数正确排除指定事件并显示剩余事件总数 +- --noqual参数正确显示无限定符的所有原生事件 +- --darr参数正确显示数据地址范围相关事件统计 +- --dear参数正确显示数据地址事件范围相关信息 +- 所有参数选项都能正常执行,返回正确的事件统计信息 +- 命令执行成功,无错误返回码 diff --git a/docs/system_base/papi/tc_papi_fun005.yaml b/docs/system_base/papi/tc_papi_fun005.yaml new file mode 100644 index 0000000000000000000000000000000000000000..221f25183e00910966c580bd4154cf63d34ba2ce --- /dev/null +++ b/docs/system_base/papi/tc_papi_fun005.yaml @@ -0,0 +1,34 @@ +作者: douzhichong +优先级: P1 +支持架构: noarch +执行方式: 自动 +测试类型: 功能测试 +通用标签: local,papi +用例描述: PAPI工具基本功能测试 +修改人: douzhichong + +前置条件: +- 系统已安装papi包 + +测试步骤: +- 检查papi_native_avail --iarr指令地址范围事件功能 +- 验证papi_native_avail --iear指令事件地址范围功能 +- 测试papi_native_avail --opcm操作码匹配事件功能 +- 检查papi_native_avail --nogroups无分组事件显示功能 +- 验证papi_multiplex_cost多路复用代价工具帮助信息 +- 测试papi_multiplex_cost静默模式多路复用代价测量 +- 检查papi_multiplex_cost内核模式多路复用代价测量 +- 验证papi_error_codes错误代码查询功能 +- 测试papi_mem_info内存缓存信息查询功能 + +期望结果: +- --iarr参数正确显示指令地址范围相关事件统计信息 +- --iear参数正确显示指令事件地址范围相关事件总数 +- --opcm参数正确显示操作码匹配相关性能事件统计 +- --nogroups参数正确显示未分组事件的总数信息 +- papi_multiplex_cost帮助信息正确显示"Usage"格式 +- 静默模式多路复用代价测量正常执行,显示工具标识信息 +- 内核模式多路复用代价测量成功完成,返回基准测试信息 +- papi_error_codes正确显示"Error code"错误代码列表 +- papi_mem_info正确显示"Cache Information"缓存结构信息 +- 所有工具命令均能正常执行,返回正确的状态码和输出格式 diff --git a/docs/system_base/papi/tc_papi_fun006.yaml b/docs/system_base/papi/tc_papi_fun006.yaml new file mode 100644 index 0000000000000000000000000000000000000000..730893962b20f72ca38ebb1d8917b52ff8045575 --- /dev/null +++ b/docs/system_base/papi/tc_papi_fun006.yaml @@ -0,0 +1,30 @@ +作者: douzhichong +优先级: P1 +支持架构: noarch +执行方式: 自动 +测试类型: 功能测试 +通用标签: local,papi +用例描述: PAPI工具基本功能测试 +修改人: douzhichong + +前置条件: +- 系统已安装papi包 + +测试步骤: +- 验证papi_xml_event_info工具帮助信息显示正确性 +- 检查papi_xml_event_info -p参数显示CPU组件信息 +- 测试papi_xml_event_info -n参数显示未知组件信息 +- 验证papi_xml_event_info -c参数显示特定组件详细信息 +- 检查papi_version版本信息显示功能 +- 根据事件可用性条件测试papi_event_chooser事件选择器功能 + +期望结果: +- papi_xml_event_info帮助信息正确显示"Usage: papi_xml_event_info"格式 +- -p参数正确显示CPU组件信息,包含'component index="0" type="CPU"'标识 +- -n参数正确显示未知组件信息,包含'component index="1" type="Unknown"'标识 +- -c参数正确显示组件1的详细信息,包含'cpuMaxMegahertz value'CPU频率信息 +- papi_version正确显示PAPI版本信息,格式为"PAPI Version: 数字" +- 当系统无可用事件时,papi_event_chooser应执行失败 +- 当系统有可用事件时,papi_event_chooser应成功执行NATIVE事件选择 +- 所有XML格式输出应符合标准格式要求 +- 条件测试逻辑能够正确处理不同系统配置情况 diff --git a/tests/system_base/papi/tc_papi_fun001.py b/tests/system_base/papi/tc_papi_fun001.py new file mode 100644 index 0000000000000000000000000000000000000000..7a1e7ca96a912b3123de430dafebdd698e5b0d43 --- /dev/null +++ b/tests/system_base/papi/tc_papi_fun001.py @@ -0,0 +1,58 @@ +""" +@File: tc_papi_fun001.py +@Time: 2025/11/13 15:30:20 +@Author: douzhichong +@Version: 1.0 +@Contact: douzhichong@inspur.com +@License: Mulan PSL v2 +@Modify: douzhichong +""" +import subprocess + +from common.basetest import LocalTest + + +class Test(LocalTest): + """ + See tc_papi_fun001.yaml for details + + :avocado: tags=P1,noarch,local,papi + """ + PARAM_DIC = {"pkg_name": "papi"} + + def setUp(self): + super().setUp(self.PARAM_DIC) + + def test(self): + code, result = self.cmd('papi_avail 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail failed") + + code, result = self.cmd('papi_avail -h 2>&1 | grep "This is the PAPI avail program"') + self.assertFalse(code, "Check papi_avail -h failed") + + code, result = self.cmd('papi_avail --avail 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --avail failed") + + code, result = self.cmd('papi_avail -a 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail -a failed") + + code, result = self.cmd('papi_avail -c 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail -c failed") + + code, result = self.cmd('papi_avail --check 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --check failed") + + code, result = self.cmd('papi_avail -d 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail -d failed") + + code, result = self.cmd('papi_avail --detail 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --detail failed") + + code, result = self.cmd('papi_avail -e PAPI_TLB_DM | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail -e PAPI_TLB_DM failed") + + code, result = self.cmd('papi_avail --br 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --br failed") + + def tearDown(self): + super().tearDown(self.PARAM_DIC) diff --git a/tests/system_base/papi/tc_papi_fun002.py b/tests/system_base/papi/tc_papi_fun002.py new file mode 100644 index 0000000000000000000000000000000000000000..95a01b1e446f2318d1067c681b1c1e6294242900 --- /dev/null +++ b/tests/system_base/papi/tc_papi_fun002.py @@ -0,0 +1,62 @@ +""" +@File: tc_papi_fun002.py +@Time: 2025/11/13 15:30:20 +@Author: douzhichong +@Version: 1.0 +@Contact: douzhichong@inspur.com +@License: Mulan PSL v2 +@Modify: douzhichong +""" +import subprocess + +from common.basetest import LocalTest + + +class Test(LocalTest): + """ + See tc_papi_fun002.yaml for details + + :avocado: tags=P1,noarch,local,papi + """ + PARAM_DIC = {"pkg_name": "papi"} + + def setUp(self): + super().setUp(self.PARAM_DIC) + + def test(self): + code, result = self.cmd('papi_avail --cache 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --cache failed") + + code, result = self.cmd('papi_avail --cnd 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --cnd failed") + + code, result = self.cmd('papi_avail --fp 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --fp failed") + + code, result = self.cmd('papi_avail --ins 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --ins failed") + + code, result = self.cmd('papi_avail --idl 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --idl failed") + + code, result = self.cmd('papi_avail --l1 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --l1 failed") + + code, result = self.cmd('papi_avail --l2 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --l2 failed") + + code, result = self.cmd('papi_avail --l3 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --l3 failed") + + code, result = self.cmd('papi_avail --mem 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --mem failed") + + code, result = self.cmd('papi_avail --msc 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --msc failed") + + code, result = self.cmd('papi_avail --tlb 2>&1 | grep "Available PAPI"') + self.assertFalse(code, "Check papi_avail --tlb failed") + + def tearDown(self): + super().tearDown(self.PARAM_DIC) + diff --git a/tests/system_base/papi/tc_papi_fun003.py b/tests/system_base/papi/tc_papi_fun003.py new file mode 100644 index 0000000000000000000000000000000000000000..9108331b28d906297a46ba9332d202ddcbc2f754 --- /dev/null +++ b/tests/system_base/papi/tc_papi_fun003.py @@ -0,0 +1,64 @@ +""" +@File: tc_papi_fun003.py +@Time: 2025/11/13 15:30:20 +@Author: douzhichong +@Version: 1.0 +@Contact: douzhichong@inspur.com +@License: Mulan PSL v2 +@Modify: douzhichong +""" +import subprocess + +from common.basetest import LocalTest + + +class Test(LocalTest): + """ + See tc_papi_fun003.yaml for details + + :avocado: tags=P1,noarch,local,papi + """ + PARAM_DIC = {"pkg_name": "papi"} + + def setUp(self): + super().setUp(self.PARAM_DIC) + + def test(self): + code, result = self.cmd('papi_command_line -h 2>&1 | grep "Usage: papi_command_line"') + self.assertFalse(code, "Check papi_command_line -h failed") + + code, result = self.cmd('papi_command_line PAPI_TLB_DM -u -x | grep "PAPI_TLB_DM"') + self.assertFalse(code, "Check papi_command_line -u failed") + + code, result = self.cmd('papi_clockres | grep "PAPI_get_real_cyc"') + self.assertFalse(code, "Check papi_avail clockres failed") + + code, result = self.cmd('papi_component_avail -h 2>&1 | grep "Usage: papi_component_avail"') + self.assertFalse(code, "Check papi_component_avail -h failed") + + code, result = self.cmd('papi_component_avail --help 2>&1 | grep "Usage: papi_component_avail"') + self.assertFalse(code, "Check papi_component_avail --help failed") + + code, result = self.cmd('papi_component_avail -d | grep "net"') + self.assertFalse(code, "Check papi_component_avail -d failed") + + code, result = self.cmd('papi_cost -h 2>&1 | grep "This is the PAPI cost"') + self.assertFalse(code, "Check papi_cost -h failed") + command=f'papi_avail -a | grep -q "Of 0 available events, 0 are derived"' + result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + if not result.returncode: + command = f'papi_cost -b min -s -t min' + result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + self.assertTrue(result.returncode, "Check papi_cost -b -s -t failed") + else: + code, result = self.cmd('papi_cost -b min -s -t min') + self.assertFalse(code, "Check papi_cost -b -s -t failed") + + code, result = self.cmd('papi_decode -h 2>&1 | grep "decode [options]"') + self.assertFalse(code, "Check papi_decode -h failed") + + code, result = self.cmd('papi_decode -a | grep "PAPI_L1_DCM"') + self.assertFalse(code, "Check papi_decode -a failed") + + def tearDown(self): + super().tearDown(self.PARAM_DIC) diff --git a/tests/system_base/papi/tc_papi_fun004.py b/tests/system_base/papi/tc_papi_fun004.py new file mode 100644 index 0000000000000000000000000000000000000000..f54cdeb11da938e250891bda7d3d2ba31a010b9c --- /dev/null +++ b/tests/system_base/papi/tc_papi_fun004.py @@ -0,0 +1,59 @@ +""" +@File: tc_papi_fun004.py +@Time: 2025/11/13 15:30:20 +@Author: douzhichong +@Version: 1.0 +@Contact: douzhichong@inspur.com +@License: Mulan PSL v2 +@Modify: douzhichong +""" +import subprocess + +from common.basetest import LocalTest + + +class Test(LocalTest): + """ + See tc_papi_fun004.yaml for details + + :avocado: tags=P1,noarch,local,papi + """ + PARAM_DIC = {"pkg_name": "papi"} + + def setUp(self): + super().setUp(self.PARAM_DIC) + + def test(self): + code, result = self.cmd('papi_native_avail -h 2>&1 | grep "Usage: papi_native_avail"') + self.assertFalse(code, "Check papi_native_avail -h failed") + + code, result = self.cmd('papi_native_avail --help 2>&1 | grep "Usage: papi_native_avail"') + self.assertFalse(code, "Check papi_native_avail --help failed") + + code, result = self.cmd('papi_native_avail -c | grep "Total events"') + self.assertFalse(code, "Check papi_native_avail -c failed") + + code, result = self.cmd('papi_native_avail --check | grep "Total events"') + self.assertFalse(code, "Check papi_native_avail --check failed") + + code, result = self.cmd('papi_native_avail -e PAPI_REF_CYC | grep "PAPI_REF_CYC"') + self.assertFalse(code, "Check papi_native_avail -e failed") + + code, result = self.cmd('papi_native_avail -i PAPI_REF_CYC | grep "Total events"') + self.assertFalse(code, "Check papi_native_avail -i failed") + + code, result = self.cmd('papi_native_avail -x PAPI_REF_CYC | grep "Total events"') + self.assertFalse(code, "Check papi_native_avail -x failed") + + code, result = self.cmd('papi_native_avail --noqual | grep "Total events"') + self.assertFalse(code, "Check papi_native_avail --noqual failed") + + code, result = self.cmd('papi_native_avail --darr | grep "Total events"') + self.assertFalse(code, "Check papi_native_avail --darr failed") + + code, result = self.cmd('papi_native_avail --dear | grep "Total events"') + self.assertFalse(code, "Check papi_native_avail --dear failed") + + def tearDown(self): + super().tearDown(self.PARAM_DIC) + diff --git a/tests/system_base/papi/tc_papi_fun005.py b/tests/system_base/papi/tc_papi_fun005.py new file mode 100644 index 0000000000000000000000000000000000000000..399673973b8479a44c00ad51512e4bdfc185105e --- /dev/null +++ b/tests/system_base/papi/tc_papi_fun005.py @@ -0,0 +1,56 @@ +""" +@File: tc_papi_fun005.py +@Time: 2025/11/13 15:30:20 +@Author: douzhichong +@Version: 1.0 +@Contact: douzhichong@inspur.com +@License: Mulan PSL v2 +@Modify: douzhichong +""" +import subprocess + +from common.basetest import LocalTest + + +class Test(LocalTest): + """ + See tc_papi_fun005.yaml for details + + :avocado: tags=P1,noarch,local,papi + """ + PARAM_DIC = {"pkg_name": "papi"} + + def setUp(self): + super().setUp(self.PARAM_DIC) + + def test(self): + code, result = self.cmd('papi_native_avail --iarr | grep "Total events"') + self.assertFalse(code, "Check papi_native_avail --iarr failed") + + code, result = self.cmd('papi_native_avail --iear | grep "Total events"') + self.assertFalse(code, "Check papi_native_avail --iear failed") + + code, result = self.cmd('papi_native_avail --opcm | grep "Total events"') + self.assertFalse(code, "Check papi_native_avail --opcm failed") + + code, result = self.cmd('papi_native_avail --nogroups | grep "Total events"') + self.assertFalse(code, "Check papi_native_avail --nogroups failed") + + code, result = self.cmd('papi_multiplex_cost -h 2>&1 | grep "Usage"') + self.assertFalse(code, "Check papi_multiplex_cost -h failed") + + code, result = self.cmd('papi_multiplex_cost -m 200 -x 200 -t max -s 2>&1 | grep "This utility b"') + self.assertFalse(code, "Check papi_multiplex_cost -m -x -t -s failed") + + code, result = self.cmd('papi_multiplex_cost -m 200 -x 200 -t max -k 2>&1 | grep "This utility b"') + self.assertFalse(code, "Check papi_multiplex_cost -m -x -t -k failed") + + code, result = self.cmd('papi_error_codes | grep "Error code"') + self.assertFalse(code, "Check papi_error_codes failed") + + code, result = self.cmd('papi_mem_info | grep "Cache Information"') + self.assertFalse(code, "Check papi_mem_info failed") + + def tearDown(self): + super().tearDown(self.PARAM_DIC) + diff --git a/tests/system_base/papi/tc_papi_fun006.py b/tests/system_base/papi/tc_papi_fun006.py new file mode 100644 index 0000000000000000000000000000000000000000..30e2a93f0899d3f84a73018fc1ebc1cdcdee8403 --- /dev/null +++ b/tests/system_base/papi/tc_papi_fun006.py @@ -0,0 +1,54 @@ +""" +@File: tc_papi_fun006.py +@Time: 2025/11/13 15:30:20 +@Author: douzhichong +@Version: 1.0 +@Contact: douzhichong@inspur.com +@License: Mulan PSL v2 +@Modify: douzhichong +""" +import subprocess + +from common.basetest import LocalTest + + +class Test(LocalTest): + """ + See tc_papi_fun006.yaml for details + + :avocado: tags=P1,noarch,local,papi + """ + PARAM_DIC = {"pkg_name": "papi"} + + def setUp(self): + super().setUp(self.PARAM_DIC) + + def test(self): + code, result = self.cmd('papi_xml_event_info -h 2>&1 | grep "Usage: papi_xml_event_info"') + self.assertFalse(code, "Check 'papi_xml_event_info -h failed") + + code, result = self.cmd('papi_xml_event_info -p | grep \'component index="0" type="CPU"\'') + self.assertFalse(code, "Check 'papi_xml_event_info -p failed") + + code, result = self.cmd('papi_xml_event_info -n | grep \'component index="1" type="Unknown"\'') + self.assertFalse(code, "Check 'papi_xml_event_info -n failed") + + code, result = self.cmd('papi_xml_event_info -c 1 | grep \'cpuMaxMegahertz value\'') + self.assertFalse(code, "Check 'papi_xml_event_info -c failed") + + code, result = self.cmd('papi_version | grep "PAPI Version: [[:digit:]]"') + self.assertFalse(code, "Check 'papi_version failed") + + command = f'papi_avail -a | grep -q "Of 0 available events, 0 are derived"' + result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + if not result.returncode: + command = f'papi_event_chooser NATIVE PAPI_TLB_DM' + result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + self.assertTrue(result.returncode, "Check papi_event_chooser NATIVE failed") + else: + code, result = self.cmd('papi_event_chooser NATIVE PAPI_TLB_DM') + self.assertFalse(code, "Check papi_event_chooser NATIVE failed") + + def tearDown(self): + super().tearDown(self.PARAM_DIC) +