You've already forked open-source-firmware-validation
mirror of
https://github.com/Dasharo/open-source-firmware-validation.git
synced 2026-06-13 10:16:18 -07:00
Merge branch 'develop' into osfv-stable-release-improvements
Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>
This commit is contained in:
@@ -24,10 +24,11 @@ Suite Setup Run Keywords
|
||||
... AND Run Keyword If ${CUSTOM_LOGO_SUPPORT} Prepare For Logo Persistence Test
|
||||
... AND Run Keyword If ${CUSTOM_LOGO_SUPPORT} Flash Firmware ${CUSTOM_LOGO_RC0_FW_FILE}
|
||||
... AND Run Keyword If not ${CUSTOM_LOGO_SUPPORT} Flash Firmware ${CAPSULE_UPDATE_RC0_FW_FILE}
|
||||
... AND Set UEFI Option MeMode Disabled (HAP)
|
||||
... AND Deploy Uefi Shell
|
||||
... AND Upload Required Files
|
||||
... AND Get System Values
|
||||
... AND Run Keyword If '${MANUFACTURER}' != 'QEMU' Set UEFI Option MeMode Disabled (HAP)
|
||||
... AND Set DUT Response Timeout 90s # a boot can last longer than default 30s
|
||||
Suite Teardown Run Keywords
|
||||
... Run Keyword If '${SUITE_STATUS}' != 'SKIP' Flash Firmware ${FW_FILE}
|
||||
... AND Log Out And Close Connection
|
||||
@@ -188,6 +189,51 @@ CUP250.001 Capsule Update Progress Bar - Default Logo
|
||||
Perform Capsule Update valid_capsule.cap
|
||||
Check The Update Screen For The Correct UX
|
||||
|
||||
CUP260.101 Capsule update in Firmware Update Mode works
|
||||
[Documentation] Check if capsule update works when in Firmware Update
|
||||
... Mode
|
||||
Skip If not ${TESTS_IN_FIRMWARE_SUPPORT}
|
||||
Skip If "${OPTIONS_LIB}" == "options-lib_dcu"
|
||||
Power On
|
||||
# Enable FUM
|
||||
${setup_menu}= Enter Setup Menu Tianocore And Return Construction
|
||||
${dasharo_menu}= Enter Dasharo System Features ${setup_menu}
|
||||
${security_menu}= Enter Dasharo Submenu ${dasharo_menu} Dasharo Security Options
|
||||
Enter Submenu From Snapshot ${security_menu} Enter Firmware Update Mode
|
||||
Read From Terminal Until Press ENTER to continue and reboot
|
||||
Press Enter
|
||||
Handle FUM Screen
|
||||
# Stop iPXE from booting default option as it contains workaround for this
|
||||
# issue
|
||||
Read From Terminal Until efi/FirmwareUpdateMode:hex = 01
|
||||
Press Key N Times 1 ${CTRL_C}
|
||||
Enter IPXE Shell Submenu
|
||||
Execute Command In Terminal dhcp
|
||||
# Write Bare allows to set interval between each character which might be
|
||||
# needed on slower platforms/serial connection
|
||||
Write Bare Into Terminal chain http://boot.dasharo.com/dts/dts-no-fum-fix.ipxe\n interval=0.2
|
||||
# Boot into DTS shell
|
||||
Set DUT Response Timeout 5m
|
||||
Read From Terminal Until .cpio.gz...
|
||||
Read From Terminal Until ok
|
||||
Wait For DTS To Boot fum=${TRUE}
|
||||
Write Into Terminal ${DTS_FUM_MENU_OPT}
|
||||
Enter Shell In DTS
|
||||
# Upload capsule
|
||||
Execute Command In Terminal systemctl start sshd
|
||||
VAR ${DEVICE_OS_USERNAME}= root scope=Test
|
||||
VAR ${DEVICE_OS_PASSWORD}= ${EMPTY} scope=Test
|
||||
Send File To DUT ${CAPSULE_FW_FILE} /valid_capsule.cap
|
||||
Execute Command In Terminal Should Succeed
|
||||
... cp /valid_capsule.cap /dev/efi_capsule_loader
|
||||
... Failed to queue capsule update via /dev/efi_capsule_loader
|
||||
# Verify
|
||||
${dmesg}= Execute Command In Terminal dmesg | tail
|
||||
Should Contain ${dmesg} efi: Successfully uploaded capsule
|
||||
Write Into Terminal reboot
|
||||
Set DUT Response Timeout 5m
|
||||
Enter Setup Menu Tianocore
|
||||
|
||||
|
||||
*** Keywords ***
|
||||
Check Platform Fused
|
||||
|
||||
+26
-4
@@ -991,10 +991,32 @@ Enter IPXE Inner
|
||||
# TODO: problem with iPXE string (e.g. when 3 network interfaces are available)
|
||||
${boot_menu}= Enter Boot Menu Tianocore And Return Construction
|
||||
Enter Submenu From Snapshot ${boot_menu} ${IPXE_BOOT_ENTRY}
|
||||
IF ${NETBOOT_UTILITIES_SUPPORT} == ${TRUE}
|
||||
${ipxe_menu}= Get IPXE Boot Menu Construction lines_top=2
|
||||
ELSE
|
||||
${ipxe_menu}= Get IPXE Boot Menu Construction
|
||||
Enter IPXE Shell Submenu
|
||||
|
||||
Enter IPXE Shell Submenu
|
||||
[Documentation]
|
||||
... Enters iPXE Shell submenu
|
||||
...
|
||||
... === Requirements ===
|
||||
... - Must be called from a Network Boot menu
|
||||
...
|
||||
... === Arguments ===
|
||||
... - ``${ipxe_menu}``: str | None - Boot Menu Construction to parse. If
|
||||
... \ None then read menu construction from terminal
|
||||
...
|
||||
... === Return Value ===
|
||||
... None
|
||||
...
|
||||
... === Effects ===
|
||||
... - Enters iPXE shell
|
||||
... - Sets iPXE terminal prompt
|
||||
[Arguments] ${ipxe_menu}=${NONE}
|
||||
IF $ipxe_menu is ${NONE}
|
||||
IF ${NETBOOT_UTILITIES_SUPPORT} == ${TRUE}
|
||||
${ipxe_menu}= Get IPXE Boot Menu Construction lines_top=2
|
||||
ELSE
|
||||
${ipxe_menu}= Get IPXE Boot Menu Construction
|
||||
END
|
||||
END
|
||||
Enter Submenu From Snapshot ${ipxe_menu} iPXE Shell
|
||||
Set Prompt For Terminal iPXE>
|
||||
|
||||
+23
-6
@@ -119,23 +119,40 @@ Boot Dasharo Tools Suite
|
||||
FAIL Unknown DTS boot method: ${dts_booting_method}
|
||||
END
|
||||
|
||||
# For PiKVM devices, we have only input on serial, not output. The video and serial consoles are
|
||||
# two different console in case of Linux, they are not in sync anymore as in case of firmware.
|
||||
# We have to switch to SSH connection to continue test execution on such devices.
|
||||
Wait For DTS To Boot
|
||||
|
||||
Wait For DTS To Boot
|
||||
[Documentation] Wait for DTS to boot. If using pikvm, connect via SSH as
|
||||
... a workaround for video/serial consoles being different.
|
||||
[Arguments] ${fum}=${FALSE}
|
||||
# For PiKVM devices, we have only input on serial, not output. The video
|
||||
# and serial consoles are two different console in case of Linux, they are
|
||||
# not in sync anymore as in case of firmware. We have to switch to SSH
|
||||
# connection to continue test execution on such devices.
|
||||
IF ${fum}
|
||||
VAR ${prompt}= ${DTS_ASK_FOR_CHOICE_PROMPT}
|
||||
ELSE
|
||||
VAR ${prompt}= ${DTS_CHECKPOINT}
|
||||
END
|
||||
IF '${DUT_CONNECTION_METHOD}' == 'pikvm'
|
||||
# Should be long enough so that DTS can boot
|
||||
${old_timeout}= Set Timeout 20s
|
||||
Run Keyword And Ignore Error
|
||||
... Read From Terminal Until Enter an option:
|
||||
... Read From Terminal Until ${prompt}
|
||||
Set Timeout ${old_timeout}
|
||||
# Enable SSH server and switch to SSH connection by writing on video console "in blind"
|
||||
IF ${fum}
|
||||
Write Into Terminal ${DTS_FUM_MENU_OPT}
|
||||
Sleep 5s
|
||||
END
|
||||
# Enable SSH server and switch to SSH connection by writing on video
|
||||
# console "in blind"
|
||||
Write Bare Into Terminal K
|
||||
VAR ${DUT_CONNECTION_METHOD}= SSH scope=GLOBAL
|
||||
Login To Linux Via SSH Without Password root root@DasharoToolsSuite:~#
|
||||
# Spawn DTS menu on SSH console
|
||||
Write Into Terminal dts-boot
|
||||
END
|
||||
Read From Terminal Until Enter an option:
|
||||
Read From Terminal Until ${prompt}
|
||||
Sleep 5s
|
||||
|
||||
Check HCL Report Creation
|
||||
|
||||
@@ -2423,6 +2423,13 @@
|
||||
"module": "Dasharo Stability"
|
||||
}
|
||||
},
|
||||
{
|
||||
"doc": {
|
||||
"_id": "CUP260.101",
|
||||
"name": "Capsule update in Firmware Update Mode works",
|
||||
"module": "Dasharo Stability"
|
||||
}
|
||||
},
|
||||
{
|
||||
"doc": {
|
||||
"_id": "DCU001.001",
|
||||
|
||||
Reference in New Issue
Block a user