如何跳过FFDC

openbmc-test-automation中存在大量测试用例使用了FFDC,尤其是在test teardown中,其作用是当测试用例测试失败时收集当时的环境等信息,以便后续查找原因。但是在很多一些快速测试的场景中,测试失败时收集FFDC会浪费大量的测试时间。

如何解决?

OpenBMC自动化测试框架内置了一个环境变量 OVERRIDE_FFDC_ON_TEST_CASE_FAIL,专门用于控制测试失败时是否触发FFDC收集。

  • 设置为 1:完全禁用失败时的FFDC收集。这是冒烟测试最推荐的方式。

  • 设置为 0:默认状态,启用FFDC收集。

cat lib/openbmc_ffdc.robot

*** Settings ***

Documentation This module is for data collection on test case failure

... for openbmc systems. Collects data with default name

... ffdc_report.txt under directory logs/testSuite/testName/

... on failure.

... FFDC logging sample layout:

... logs

... ├── 20160909102538035251_TestWarmreset

... │ └── 20160909102538035251_TestWarmResetviaREST

... │ ├── 20160909102538035251_BMC_journalctl.txt

... │ ├── 20160909102538035251_BMC_proc_list.txt

... │ ├── 20160909102538035251_BMC_dmesg.txt

... │ ├── 20160909102538035251_BMC_inventory.txt

... │ ├── 20160909102538035251_BMC_led.txt

... │ ├── 20160909102538035251_BMC_record_log.txt

... │ ├── 20160909102538035251_BMC_sensor_list.txt

... │ ├── 20160909102538035251_BMC_general.txt

... │ ├── 20160909102538035251_OS_dmesg.txt

... │ ├── 20160909102538035251_OS_msglog.txt

... │ ├── 20160909102538035251_OS_cpufrequency.txt

... │ ├── 20160909102538035251_OS_boot.txt

... │ ├── 20160909102538035251_OS_isusb.txt

... │ ├── 20160909102538035251_OS_kern.txt

... │ ├── 20160909102538035251_OS_authlog.txt

... │ ├── 20160909102538035251_OS_syslog.txt

... │ ├── 20160909102538035251_OS_info.txt

... │ ├── 20160909102538035251_OS_rsct.txt

... │ ├── 20160909102538035251_OS_secure.txt

... │ └── 20160909102538035251_OS_esel

... └── test_history.txt

Resource openbmc_ffdc_methods.robot

Resource openbmc_ffdc_utils.robot

Resource dump_utils.robot

Library openbmc_ffdc.py

TODO:

telnetlib is remove in Python3.13 version.

#Library ffdc_cli_robot_script.py

*** Keywords ***

FFDC On Test Case Fail

Documentation Generic FFDC entry point. Place holder to hook in

... other data collection methods

... 1. Collect Logs if test fails or host reaches quiesced

... state.

... 2. Added test execution history logging.

... By default this will log Test status PASS/FAIL format

... EX: 20160822041250932049:Test:Test case 1:PASS

... 20160822041250969913:Test:Test case 2:FAIL

... 3. Delete error logs and BMC dumps post FFDC collection.

${OVERRIDE_FFDC_ON_TEST_CASE_FAIL}= Get Environment Variable OVERRIDE_FFDC_ON_TEST_CASE_FAIL 0

{OVERRIDE_FFDC_ON_TEST_CASE_FAIL}= Convert To Integer {OVERRIDE_FFDC_ON_TEST_CASE_FAIL}

IF ${OVERRIDE_FFDC_ON_TEST_CASE_FAIL} RETURN

IF '${TEST_STATUS}' == 'FAIL' Launch FFDC

Log Test Case Status

Launch FFDC

Documentation Call point to call FFDC robot or FFDC script.

... FFDC_DEFAULT set to 1, by default, in resource.robot

... FFDC_DEFAULT:1 use legacy ffdc collector

... FFDC_DEFAULT:0 use new ffdc collector.

IF {FFDC_DEFAULT} == {1} FFDC # Keyword from openbmc_ffdc.py

TODO: Python 3.13 compatibility changes needed

... ELSE ffdc_robot_script_cli # Keyword from ffdc_cli_robot_script.py

相关推荐
2601_963282771 小时前
政企无线对讲系统落地:从设备采购到长期运维的完整工程实践
大数据·运维·数据库
赴生-1 小时前
Liunx 操作系统 进程概念(下)
linux
2601_962218471 小时前
万象生鲜系统协议价底层架构实现生鲜企业报价业务数字化管理
大数据·运维·微服务·云原生·架构
风静如云1 小时前
VMWare:Ubuntu(26.04)共享后看不到
linux
●VON2 小时前
Flutter 鸿蒙插件适配实战:用 network_status_bridge 0.0.5 查询并监听默认网络
网络·flutter·华为·harmonyos·鸿蒙
u0109053592 小时前
NAS远程访问内网穿透方案之使用神卓N600实现不限速方法
服务器·网络·数据库
tachibana22 小时前
WebSocket 和 SSE 通信的区别及局限性
网络·人工智能·websocket·网络协议·ai·llm·agent
闲云自留地2 小时前
Neutron 实战教程:物理 vs 虚拟网络,OVN 环境创建网络与安全策略
服务器·网络·openstack
为思念酝酿的痛2 小时前
传输层协议UDP
linux·网络·udp