CN105224459B - 一种linux平台下测试bmc通过oem命令读写bios配置功能的方法 - Google Patents
一种linux平台下测试bmc通过oem命令读写bios配置功能的方法 Download PDFInfo
- Publication number
- CN105224459B CN105224459B CN201510682790.0A CN201510682790A CN105224459B CN 105224459 B CN105224459 B CN 105224459B CN 201510682790 A CN201510682790 A CN 201510682790A CN 105224459 B CN105224459 B CN 105224459B
- Authority
- CN
- China
- Prior art keywords
- test
- bios
- file
- library
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 253
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000008569 process Effects 0.000 claims description 26
- 238000009434 installation Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 238000005192 partition Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 description 10
- 230000001429 stepping effect Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 6
- 108010028984 3-isopropylmalate dehydratase Proteins 0.000 description 5
- 230000002596 correlated effect Effects 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种LINUX平台下测试BMC通过OEM命令读写BIOS配置功能的方法,其实现过程为:搭建测试环境;构建测试库文件;运行测试库文件,该测试库文件包括测试进度断点文件和测试结果输出文件,然后进行测试:将测试程序加入开机启动;依次对每个测试库进行测试,完成后退出;测试完成后取消开机运行测试程序;测试结果在测试程序中显示。该一种LINUX平台下测试BMC通过OEM命令读写BIOS配置功能的方法与现有技术相比,具有高效率、高准确性、高通用性、高可观性等优点,实用性强,易于推广。
Description
技术领域
本发明涉及计算机技术领域,具体地说是一种实用性强、LINUX平台下测试BMC通过OEM命令读写BIOS配置功能的方法。
背景技术
BMC是一个安装在服务器主板上的独立的板卡,现在也有服务器主板提供对IPMI支持的。IPMI良好的自治特性便克服了以往基于操作***的管理方式所受的限制,并且芯片上除出厂已定义的寄存器地址,还提供了大量未定义功能,可由用户进行二次开发的寄存器。这些寄存器需要通过OEM命令来访问。有些客户会提出使用OEM命令通过BMC去修改BIOS设置或获取BIOS当前设置。由于某些BIOS设置选项间具有依赖关系,每项设置需要独立进行,并且需要重启节点以使其生效,人工完成对这一类型的测试是一项耗时费力的工作。
在对大量的OEM命令的测试中,通过自动化测试脚本,尽可能减少人工交互过程,来实现对产品的BMC OEM命令功能性检测目的。基于此,现提供一种LINUX平台下测试BMC通过OEM命令读写BIOS配置功能的方法。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、LINUX平台下测试BMC通过OEM命令读写BIOS配置功能的方法。
一种LINUX平台下测试BMC通过OEM命令读写BIOS配置功能的方法,其具体实现过程为:
搭建测试环境;
构建测试库文件;
运行测试库文件,该测试库文件包括测试进度断点文件和测试结果输出文件,然后进行测试:
将测试程序加入开机启动;
依次对每个测试库进行测试,完成后退出;
测试完成后取消开机运行测试程序;
测试结果在测试程序中显示。
所述测试环境的搭建过程为:
首先准备测试环境,该测试环境包括操作***的选择、磁盘分区及软件包的选择、BIOS中设置项修改确认;
然后进行操作***的安装配置,安装完操作***后,***自带Ipmitool工具。
所述测试库文件内容通过表格表示,该表格内容包括:序号、命令功能名称、访问序列、期待值、是否测试标志,其中是否测试标识通过CHECK标记,当标记CHECK时,则忽略该测试项。
所述测试库文件存储的文件名分别为读取BIOS设置参数和写入BIOS设置参数的命令集库。
在测试库测试前,测试库文件需要进行预处理,该预处理的过程为:在excel中编辑,转换文件格式以兼容Linux,并在测试库中每行末尾处通过CHECK标志代表该测试项的使能。
所述测试库测试的具体过程为:
首先获取测试断点信息;
判断测试库是否需要进行测试、测试库中的测试项是否需要进行测试;
然后选取断点文件的某一行作为BIOS设置选项的内容的缓存行,缓存行无内容则进入BIOS设置写阶段,缓存行有内容则进入BIOS设置读阶段;
所述写阶段的具体过程为:
获取测试项名称、剩余字节的测试命令列及CHECK标志;
无CHECK标志的根据当前测试库、测试项及测试选项运行写入命令,并将选项内容写入断点文件的缓存行,并重启节点;
有CHECK标志的则直接忽略该测试项,定向必要信息入测试结果输出文件,并初始化循环进入条件变量;
所述读阶段的具体过程为:
获取测试项名称,命令列及CHECK标志;
读取缓存行内容作为期待值;
无CHECK标志时,运行相应读命令,将返回值与期待值比较,相同则测试通过,赋值结果变量为PASS,将必要信息定向入测试结果输出文件,步进测试选项进度和测试总进度;不同则测试失败,赋值结果变量为FAIL,其他操作同上;
有CHECK标志则忽略当前测试项,初始化相关变量以避免对后续测试造成影响;
步进测试总进度,循环进行测试。
本发明的一种LINUX平台下测试BMC通过OEM命令读写BIOS配置功能的方法,具有以下优点:
高效率,测试过程与结果分析过程全部由脚本自动完成;高准确性,测试无人机交互过程,避免人为因素产生的失误,自动切换读BIOS配置阶段和写BIOS配置阶段,通过测试断点文件联系两个测试库保证两阶段的测试准确无误的协同进行;通用性,定义测试库规范,针对不同客户的自定义需求,只需根据规范维护表格形式测试命令集库即可,无需对脚本进行任何更改;可观性,测试结果输出文件内容简单明了,便于快速定位结果异常的测试项,实用性强,易于推广。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
IPMI是智能型平台管理接口(Intelligent Platform Management Interface)的缩写,是管理基于 Intel结构的企业***中所使用的***设备采用的一种工业标准,该标准由英特尔、惠普、NEC、美国戴尔电脑和SuperMicro等公司制定。用户不仅可以利用IPMI监视服务器的物理健康特征,还可以使用raw参数直接向BMC发送16进制的命令列以访问其对应的寄存器。
Ipmitool工具是业界公认的BMC工具之一,支持对BMC的很全面的控制及设置等操作。
根国际IPMI 2.0规范,据通过Ipmitool工具对BMC发送访问命令,模拟客户应用场景。运行此工具可以实现通过BMCOEM命令发送BIOS配置写命令,重启后自动重新运行脚本并进入读BIOS配置阶段,通过返回值判断设置是否生效,在测试断点文件的控制下如此循环,全面覆盖测试内容。
基于此,本发明提供一种LINUX平台下测试BMC通过OEM命令读写BIOS配置功能的方法,该方法通过预先构建测试库文件,使用自动化测试脚本访问测试库文件中的OEM命令集,通过IPMITOOL工具对BMC发送写BIOS配置命令,模拟客户实际中的应用动作,重启以生效BIOS配置后再发送读命令,通过返回值判断设置是否生效,给出测试结果,达到对BMC读写BIOS配置类OEM命令功能性进行科学有效测试的目的,其具体实现过程为:
搭建测试环境;
构建测试库文件;
运行测试库文件,该测试库文件包括测试进度断点文件和测试结果输出文件,然后进行测试:
将测试程序加入开机启动;
依次对每个测试库进行测试,完成后退出;
测试完成后取消开机运行测试程序;
测试结果在测试程序中显示。
所述测试环境的搭建过程为:
首先准备测试环境,该测试环境包括操作***的选择、磁盘分区及软件包的选择、BIOS中设置项修改确认;
然后进行操作***的安装配置,安装完操作***后,***自带Ipmitool工具。
所述测试库文件内容通过表格表示,该表格内容包括:序号、命令功能名称、访问序列、期待值、是否测试标志,其中是否测试标识通过CHECK标记,当标记CHECK时,则忽略该测试项,其中写BIOS配置测试库文件中Req3为BIOS每个设置项多选项的体现,以“/”分隔,建议在构建库文件时,将BIOS默认的设置放在最后,这样可以保证在测试结束后节点的BIOS设置保持为默认值,具体结构如下表所示。
表1写BIOS配置测试库文件标准举例
表2读BIOS配置测试库文件标准举例
所述测试库文件存储的文件名分别为读取BIOS设置参数和写入BIOS设置参数的命令集库。
在测试库测试前,测试库文件需要进行预处理,该预处理的过程为:在excel中编辑,转换文件格式以兼容Linux,并在测试库中每行末尾处通过CHECK标志代表该测试项的使能。
所述测试库测试的具体过程为:
首先获取测试断点信息;
判断测试库是否需要进行测试、测试库中的测试项是否需要进行测试;
然后选取断点文件的某一行作为BIOS设置选项的内容的缓存行,缓存行无内容则进入BIOS设置写阶段,缓存行有内容则进入BIOS设置读阶段;
所述写阶段的具体过程为:
获取测试项名称、剩余字节的测试命令列及CHECK标志;
无CHECK标志的根据当前测试库、测试项及测试选项运行写入命令,并将选项内容写入断点文件的缓存行,并重启节点;
有CHECK标志的则直接忽略该测试项,定向必要信息入测试结果输出文件,并初始化循环进入条件变量;
所述读阶段的具体过程为:
获取测试项名称,命令列及CHECK标志;
读取缓存行内容作为期待值;
无CHECK标志时,运行相应读命令,将返回值与期待值比较,相同则测试通过,赋值结果变量为PASS,将必要信息定向入测试结果输出文件,步进测试选项进度和测试总进度;不同则测试失败,赋值结果变量为FAIL,其他操作同上;
有CHECK标志则忽略当前测试项,初始化相关变量以避免对后续测试造成影响;
步进测试总进度,循环进行测试。
其中测试库测试的具体实例如下:
获取工具所在文件夹位置。
Cur_Dir=$(cd "$(dirname "$0")";pwd)。
#构建测试进度断点文件和测试结果输出文件。
if [ ! -e $Cur_Dir/Count.tmp ] ; then
touch $Cur_Dir/Count.tmp
touch $Cur_Dir/OEM_Result.csv
#将脚本加入开机启动。
Reboot=`less /etc/rc.d/rc.local | grep "RUN_OEM_test.sh" | awk '$1~/^sh/ {print $2}'`
if [ -z $Reboot ] ; then
echo "sh $Cur_Dir/RUN_OEM_test.sh" >> /etc/rc.d/rc.local
fi
#测试断点文件第一行记录测试库编号(此处仅一个测试库)。
echo 1 >$Cur_Dir/Count.tmp
#第二行记录测试项编号,测试库文件第1行为表头,测试项由2开始。
echo 2 >>$Cur_Dir/Count.tmp
#第三行记录测试选项进度,很多BIOS设置项具有多个选项。
echo 1 >>$Cur_Dir/Count.tmp
#第四行记录测试总进度。
echo 1 >>$Cur_Dir/Count.tmp
echo "NO.,Command Name,EXPECT,RESPONSE,RESULT,check_raw" >$Cur_Dir/OEM_Result.csv
fi
#依次对每个测试库进行测试(此处仅一个测试库),完成后退出。
while true
do
CMD_Count=`cat $Cur_Dir/Count.tmp |awk 'NR==1{print $1}'`
case $CMD_Count in
1)RW_BIOS_configuration ;;
#2) ******* ;;
#3) ******* ;;
#4) ******* ;;
#5) ******* ;;
#测试完成后取消开机运行脚本。
*) sed -i '/RUN_OEM_test.sh/d' /etc/rc.d/rc.local
echo OEM Command test completed.
exit ;;
esac
done
######测试函数######
function RW_BIOS_configuration()
{
#测试库文件存储在当前目录的OEM_TestLib文件夹中,文件名为Read BIOSconfiguration from BMC.csv和Write BIOS configuration to BMC.csv,分别为读取BIOS设置参数和写入BIOS设置参数的命令集库。
#测试库在excel中编辑,由于windows与Linux对文件换行符的识别有差异,所以先转换文件格式以兼容Linux,测试库中每行末尾的CHECK标志代表该测试项的使能,文件格式兼容性会影响对此标志的判断。
dos2unix $Cur_Dir/OEM_TestLib/Read\ BIOS\ configuration\ from\BMC.csv
dos2unix $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\ to\ BMC.csv
#获取测试断点信息。
OFFSET_Count=`cat $Cur_Dir/Count.tmp |awk 'NR==2{print $1}'`
CHOISE_Count=`cat $Cur_Dir/Count.tmp |awk 'NR==3{print $1}'`
NO=`cat $Cur_Dir/Count.tmp |awk 'NR==4{print $1}'`
#获取测试命令列,进入一层循环前先进行一个字节的命令列获取以判断该测试库是否需要进行测试。
NetFn=`cat $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\ to\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $3}'`
while [[ $NetFn != "" ]]
do
#获取测试命令列,进入二层循环前先进行一个字节的命令列获取以判断该测试项是否需要进行测试。
Req3=`cat $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\ to\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $7}' |awk -F "/" '{print $'$CHOISE_Count'}'`
while [[ $Req3 != "" ]]
do
#利用断点文件第5行作为BIOS设置选项的内容的缓存行,缓存行无内容则进入BIOS设置写阶段,缓存行有内容则进入BIOS设置读阶段。
CHOISE_CHECK=`cat $Cur_Dir/Count.tmp |awk 'NR==5{print $1}'`
#写阶段
if [[ "$CHOISE_CHECK" == "" ]]; then
#获取测试项名称、剩余字节的测试命令列及CHECK标志。
Command=`cat $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\ to\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $2}'`
#NetFn=`cat $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\ to\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $3}'`
CMD=`cat $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\ to\ BMC.csv|awk -F, 'NR=='$OFFSET_Count'{print $4}'`
Req1=`cat $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\ to\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $5}'`
Req2=`cat $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\ to\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $6}'`
#Req3=`cat $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\ to\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $7}'`
CHECK=`cat $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\ to\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $9}' |awk '{print $1}'`
#无CHECK标志则根据当前测试库、测试项及测试选项运行写入命令,并将选项内容写入断点文件的缓存行,并重启节点。
if [ "$CHECK" != "CHECK" ] ;then
ipmitool raw $NetFn $CMD $Req1 $Req2 $Req3
CHOISE_CHECK=`cat $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\to\ BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $7}' |awk -F "/" '{print $'$CHOISE_Count'}' |awk -F "0x" '{print $2}'`
sed -i '5c '$CHOISE_CHECK'' $Cur_Dir/Count.tmp
reboot
exit
#有CHECK标志则直接忽略该测试项,定向必要信息入测试结果输出文件,并初始化循环进入条件变量。
Else
RESULT=N/A
check_raw=""
EXPECT=""
RESPONSE=""
echo "$NO,$Command,#$EXPECT,#$RESPONSE,$RESULT,$check_raw" >>$Cur_Dir/OEM_Result.csv
sed -i '4c '$[$NO + 1]'' $Cur_Dir/Count.tmp
Req3=""
Fi
Else
#读阶段,正常情况下,测试结果在读阶段给出。
#获取测试项名称,命令列及CHECK标志。
Command=`cat $Cur_Dir/OEM_TestLib/Read\ BIOS\ configuration\ from\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $2}'`
NetFn=`cat $Cur_Dir/OEM_TestLib/Read\ BIOS\ configuration\ from\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $3}'`
CMD=`cat $Cur_Dir/OEM_TestLib/Read\ BIOS\ configuration\ from\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $4}'`
Req1=`cat $Cur_Dir/OEM_TestLib/Read\ BIOS\ configuration\ from\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $5}'`
Req2=`cat $Cur_Dir/OEM_TestLib/Read\ BIOS\ configuration\ from\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $6}'`
Req3=`cat $Cur_Dir/OEM_TestLib/Read\ BIOS\ configuration\ from\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $7}'`
CHECK=`cat $Cur_Dir/OEM_TestLib/Read\ BIOS\ configuration\ from\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $9}' |awk '{print $1}'`
#读取缓存行内容作为期待值。
EXPECT=`cat $Cur_Dir/Count.tmp |awk 'NR==5{print $1}'`
#初始化返回值。
RESPONSE=""
#无CHECK标志则,运行相应读命令,返回值与期待值比较,相同则测试通过,赋值结果变量为PASS,将必要信息定向入测试结果输出文件,步进测试选项进度和测试总进度;不同则测试失败,赋值结果变量为FAIL,其他操作同上。
if [ "$CHECK" != "CHECK" ] ;then
RESPONSE=`ipmitool raw $NetFn $CMD $Req1 $Req2 $Req3`
if [ x"$RESPONSE" = x" 01 $EXPECT" ] ;then
RESULT=PASS
check_raw=""
echo
$NO,$Command,#$EXPECT,#$RESPONSE,$RESULT,$check_raw" >>$Cur_Dir/OEM_Result.csv
sed -i '4c '$[$NO + 1]'' $Cur_Dir/Count.tmp
sed -i '3c '$[$CHOISE_Count + 1]'' $Cur_Dir/Count.tmp
CHOISE_Count=`cat $Cur_Dir/Count.tmp |awk 'NR==3{print $1}'`
Req3=`cat $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\ to\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $7}' |awk -F "/" '{print $'$CHOISE_Count'}'`
Else
RESULT=FAIL
check_raw="$NetFn $CMD $Req1 $Req2 $Req3"
echo "$NO,$Command,#$EXPECT,#$RESPONSE,$RESULT,$check_raw" >>$Cur_Dir/OEM_Result.csv
sed -i '4c '$[$NO + 1]'' $Cur_Dir/Count.tmp
sed -i '3c '$[$CHOISE_Count + 1]'' $Cur_Dir/Count.tmp
CHOISE_Count=`cat $Cur_Dir/Count.tmp |awk 'NR==3{print $1}'`
Req3=`cat $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\ to\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $7}' |awk -F "/" '{print $'$CHOISE_Count'}'`
Fi
Else
#有CHECK标志则忽略当前测试项,初始化相关变量以避免对后续测试造成影响。
RESULT=N/A
check_raw=""
EXPECT=""
RESPONSE=""
echo "$NO,$Command,#$EXPECT,#$RESPONSE,$RESULT,$check_raw" >>$Cur_Dir/OEM_Result.csv
#步进测试总进度,测试项进度的步进在二层循环外完成。
sed -i '4c '$[$NO + 1]'' $Cur_Dir/Count.tmp
#控制循环进入标志,使程序跳出二层循环。
Req3=""
fi
#初始化缓存行。
sed -i '5d' $Cur_Dir/Count.tmp
echo >>$Cur_Dir/Count.tmp
fi
done
#二层循环外,步进测试项进度、初始化测试选项进度、并重新获取测试断点及进入一层循环的标志变量。
sed -i '2c '$[$OFFSET_Count + 1]'' $Cur_Dir/Count.tmp
sed -i '3c 1' $Cur_Dir/Count.tmp
OFFSET_Count=`cat $Cur_Dir/Count.tmp |awk 'NR==2{print $1}'`
CHOISE_Count=`cat $Cur_Dir/Count.tmp |awk 'NR==3{print $1}'`
NO=`cat $Cur_Dir/Count.tmp |awk 'NR==4{print $1}'`
NetFn=`cat $Cur_Dir/OEM_TestLib/Write\ BIOS\ configuration\ to\BMC.csv |awk -F, 'NR=='$OFFSET_Count'{print $3}'`
Done
#一层循环外,初始化测试项进度、并步进测试库进度。
sed -i '2c 2' $Cur_Dir/Count.tmp
sed -i '1c '$[$CMD_Count+1]'' $Cur_Dir/Count.tmp
}
测试方法及结果说明。
赋予脚本可执行权限后,直接运行脚本即可,测试过程中***会反复重启;
当测试项期待值与返回值相同时,测试结果为PASS;
当测试项具有CHECK标志时(在测试库文件中体现),忽略当前测试项,测试结果为N/A;
当测试项期待值与返回值不同时,测试结果为FAIL,并在check_raw中将测试所使用的命令列体现出来,便于人工复检。
本发明通过自动化测试脚本,实现了在Linux平台下完成BMC通过OEM命令读写BIOS配置功能的测试。测试流程由测试断点文件控制,保证测试过程中重启仍不丢失测试进度,自动在写BIOS配置阶段和写BIOS配置阶段间切换。针对不同用户下发的OEM规范构建测试命令集库,测试过程完全由脚本程序来完成,不再需要任何人为的交互过程,即测试命令集库的构建过程成为失误发生的唯一阶段。测试命令集库为表格形式,便于维护。
综上,该测试方法具有高准确率,高效率,高通用性等特点,适用于所有服务器产品,目前已广泛运用到RACK产品的BMC测试中。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种LINUX平台下测试BMC通过OEM命令读写BIOS配置功能的方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
Claims (3)
1.一种LINUX平台下测试BMC通过OEM命令读写BIOS配置功能的方法,其特征在于,其具体实现过程为:
搭建测试环境,该测试环境的搭建过程为:首先准备测试环境,该测试环境包括操作***的选择、磁盘分区及软件包的选择、BIOS中设置项修改确认;然后进行操作***的安装配置,安装完操作***后,***自带Ipmitool工具;
构建测试库文件,该测试库文件内容通过表格表示,该表格内容包括:序号、命令功能名称、访问序列、期待值、是否测试标志,其中是否测试标识通过CHECK标记,当标记CHECK时,则忽略该测试项;
运行测试库文件,该测试库文件包括测试进度断点文件和测试结果输出文件,然后进行测试:
将测试程序加入开机启动;
依次对每个测试库进行测试,完成后退出;
测试完成后取消开机运行测试程序;
测试结果在测试程序中显示;
上述测试库测试的具体过程为:
首先获取测试断点信息;
判断测试库是否需要进行测试、测试库中的测试项是否需要进行测试;
然后选取断点文件的某一行作为BIOS设置选项的内容的缓存行,缓存行无内容则进入BIOS设置写阶段,缓存行有内容则进入BIOS设置读阶段;
所述写阶段的具体过程为:
获取测试项名称、剩余字节的测试命令列及CHECK标志;
无CHECK标志的根据当前测试库、测试项及测试项运行写入命令,并将测试项内容写入断点文件的缓存行,并重启操作***;
有CHECK标志的则直接忽略该测试项,将N/A信息写入测试结果输出文件,并初始化待测试的测试命令列并进入待测试的测试命令列;
所述读阶段的具体过程为:
获取测试项名称,命令列及CHECK标志;
读取缓存行内容作为期待值;
无CHECK标志时,运行相应读命令,将返回值与期待值比较,相同则测试通过,赋值结果变量为PASS,并写入测试结果输出文件,步进测试选项进度和测试总进度;不同则测试失败,赋值结果变量为FAIL,其他操作同上;
有CHECK标志则忽略当前测试项,初始化步进测试进度;
步进测试总进度,循环进行测试。
2.根据权利要求1所述的一种LINUX平台下测试BMC通过OEM命令读写BIOS配置功能的方法,其特征在于,所述测试库文件存储的文件名分别为读取BIOS设置参数和写入BIOS设置参数的命令集库。
3.根据权利要求1所述的一种LINUX平台下测试BMC通过OEM命令读写BIOS配置功能的方法,其特征在于,在测试库测试前,测试库文件需要进行预处理,该预处理的过程为:在excel中编辑,转换文件格式以兼容Linux,并在测试库中每行末尾处通过CHECK标志代表该测试项的使能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510682790.0A CN105224459B (zh) | 2015-10-21 | 2015-10-21 | 一种linux平台下测试bmc通过oem命令读写bios配置功能的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510682790.0A CN105224459B (zh) | 2015-10-21 | 2015-10-21 | 一种linux平台下测试bmc通过oem命令读写bios配置功能的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105224459A CN105224459A (zh) | 2016-01-06 |
CN105224459B true CN105224459B (zh) | 2018-04-13 |
Family
ID=54993444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510682790.0A Active CN105224459B (zh) | 2015-10-21 | 2015-10-21 | 一种linux平台下测试bmc通过oem命令读写bios配置功能的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105224459B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912488B (zh) * | 2016-05-20 | 2019-02-05 | 英业达科技有限公司 | 计算机装置及其控制方法 |
CN106649005A (zh) * | 2016-09-30 | 2017-05-10 | 郑州云海信息技术有限公司 | 基于shell的内存ras特性自动化压力测试方法 |
CN107220150A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种基于Linux***通过IPMI工具修改BIOS选项的测试方法及*** |
CN110018847B (zh) * | 2018-01-10 | 2021-01-12 | 北京思朗科技有限责任公司 | 可配置寄存器及基于可配置寄存器的数据存取方法 |
CN108199923A (zh) * | 2018-01-23 | 2018-06-22 | 平安普惠企业管理有限公司 | 服务器测试方法、装置、计算机设备及可读存储介质 |
CN108768759A (zh) * | 2018-04-03 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种基于ipmi协议的黑盒测试方法及其终端测试平台 |
CN108920198B (zh) * | 2018-06-29 | 2020-08-21 | 苏州浪潮智能科技有限公司 | 一种bios中更改***能效模式的方法、***及服务器 |
CN111309586B (zh) * | 2018-12-12 | 2024-07-19 | 迈普通信技术股份有限公司 | 一种命令测试方法、装置及其存储介质 |
CN113076140B (zh) * | 2021-03-26 | 2023-02-28 | 山东英信计算机技术有限公司 | 一种gpio配置检测方法、装置及服务器 |
CN113157594B (zh) * | 2021-05-24 | 2024-05-24 | 宁畅信息产业(北京)有限公司 | 一种用户权限测试方法、装置、电子设备及存储介质 |
CN113776782A (zh) * | 2021-08-12 | 2021-12-10 | 惠州Tcl云创科技有限公司 | 一种mtf测试方法、测试设备及计算机可读存储介质 |
CN117472785B (zh) * | 2023-12-25 | 2024-04-16 | 银河麒麟软件(长沙)有限公司 | Linux***下的Openstack测试方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1369802A (zh) * | 2001-02-14 | 2002-09-18 | 英业达股份有限公司 | 记录并自动恢复流程状态的方法 |
CN104954504A (zh) * | 2015-05-05 | 2015-09-30 | 浪潮电子信息产业股份有限公司 | 一种自动化进行bmc管理ip配置的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015455B2 (en) * | 2011-07-07 | 2015-04-21 | Intel Corporation | Processsor integral technologies for BIOS flash attack protection and notification |
-
2015
- 2015-10-21 CN CN201510682790.0A patent/CN105224459B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1369802A (zh) * | 2001-02-14 | 2002-09-18 | 英业达股份有限公司 | 记录并自动恢复流程状态的方法 |
CN104954504A (zh) * | 2015-05-05 | 2015-09-30 | 浪潮电子信息产业股份有限公司 | 一种自动化进行bmc管理ip配置的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105224459A (zh) | 2016-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105224459B (zh) | 一种linux平台下测试bmc通过oem命令读写bios配置功能的方法 | |
CN107784152B (zh) | 包括多个模拟器的模拟 | |
CN112580295B (zh) | 多核SoC芯片的自动化验证方法、***及装置 | |
US8549522B1 (en) | Automated testing environment framework for testing data storage systems | |
US9720704B2 (en) | Data driven hardware chips initialization via hardware procedure framework | |
CN104980454B (zh) | 一种资源数据共享方法、服务器及*** | |
CN104932926B (zh) | 智能操作***平台中实现设备与驱动动态匹配的***及方法 | |
CN105389255B (zh) | 一种bmc oem命令返回值与固定信息比对的自动化测试方法 | |
CN103180834B (zh) | 自动操作***测试框架 | |
WO2019134113A1 (zh) | 自动化测试方法及*** | |
CN114881233B (zh) | 一种基于容器的分布式模型推理服务方法 | |
CN111309586B (zh) | 一种命令测试方法、装置及其存储介质 | |
CN115034173A (zh) | 芯片仿真模型的测试方法 | |
CN103279408A (zh) | 独立冗余磁盘阵列raid性能的测试方法 | |
US20240004832A1 (en) | System and method for providing a container environment in a single file | |
CN103176903B (zh) | MapReduce分布式***程序的测试方法及设备 | |
CN109582347B (zh) | 一种获取前端代码的方法及装置 | |
TW202411872A (zh) | 驗證系統、驗證方法、電子設備以及儲存媒體 | |
CN101667126A (zh) | 烧录计算机序列号的方法 | |
CN112711427A (zh) | 一种镜像文件的获取方法以及装置 | |
Salminen et al. | Applying IP-XACT in product data management | |
CN113779918A (zh) | SoC仿真方法、装置、计算设备和计算机存储介质 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理*** | |
JP2009104393A (ja) | ソフトウェア障害票管理システム及び方法、並びにプログラム | |
US20070294065A1 (en) | Method, apparatus, and computer program product for implementing plans for logical partition (lpar) systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |