Merge branch 'develop' into osfv-stable-release-improvements

Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>
This commit is contained in:
Filip Gołaś
2026-03-06 09:16:09 +01:00
4 changed files with 103 additions and 11 deletions
+47 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
+7
View File
@@ -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",