如何跳过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

相关推荐
qetfw6 分钟前
Linux 文件清理:find、mtime 与安全传参验证
linux·shell·1024程序员节
贵州诚鑫致达科技有限公司25 分钟前
PHP两个9.2分RCE漏洞,速查版本
服务器·php·1024程序员节
不老刘33 分钟前
异构双 Agent 协同:构建无人值守的长任务自动化研发流水线
运维·人工智能·自动化·ai编程·1024程序员节
可乐_不渴1 小时前
【Linux】 项目自动化构建工具makefile&& 版本管理Git&&第一个程序
linux·git·自动化·1024程序员节
织码weavecodes1 小时前
医疗、零售、物业培训怎么落地?织码在线教育系统的三类行业案例
运维·服务器·零售
Lzg_na1 小时前
HDLC 协议详解
网络
智能运维指南1 小时前
企业运维监控平台哪家好?2026年五大全栈可观测方案对比与选型推荐
大数据·运维·人工智能
乔旭伟1 小时前
部署形态选型笔记:多租户 SaaS 与单机本地部署的运维模型对比
运维·服务器·1024程序员节
今天背单词了吗9802 小时前
AI 网关:大模型时代的统一接入与安全防线
网络·人工智能·安全·ai·1024程序员节
西安同步电子2 小时前
时统卡驱动踩坑:Windows 和 Linux 下时间同步的底层差异
linux·stm32·单片机