Skip to content

Add dts profile diff #999

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 75 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
a335c52
dts: add profiles for odroid workflows
m-iwanicki Aug 11, 2025
4c27a29
lib: update keywords documentation
m-iwanicki Aug 11, 2025
862a37b
dts-e2e: Add profile comparison in test teardown if it exists
m-iwanicki Aug 11, 2025
2ee86aa
dts-e2e: platform-configs: update platform configs for odroid
m-iwanicki Aug 11, 2025
11c672e
dts-e2e: remove more temp files between tests
m-iwanicki Aug 12, 2025
d3568dd
platform-configs: dts-e2e: update exports for odroid
m-iwanicki Aug 12, 2025
5e68e69
dts-e2e: update profiles for update and transition
m-iwanicki Aug 12, 2025
c5c6f43
dts-lib: 'Prepare Test Exports': add per workflow exports
m-iwanicki Aug 12, 2025
7ae57fd
dts-lib: remove duplicated export
m-iwanicki Aug 12, 2025
2c5f6ce
lib: terminal.robot: fix VAR assignment (remove '=')
m-iwanicki Aug 12, 2025
80f61bb
dts-e2e: allow skipping ME flashing in initial deployment and transition
m-iwanicki Aug 12, 2025
2e197f5
dts-e2e: teardown: specify library to fix duplicate keyword error
m-iwanicki Aug 12, 2025
a916d83
dts-e2e: teardown: get profile name from test name
m-iwanicki Aug 12, 2025
bec9b46
dts-e2e: wait for UI refresh after workflow finishes
m-iwanicki Aug 12, 2025
74a7220
dts-e2e: Set DEVICE_OS USERNAME and PASSWORD
m-iwanicki Aug 12, 2025
4e0efd9
dts-lib: 'Wait For ME' return full catenated checkpoint string
m-iwanicki Aug 12, 2025
0ee7d84
dts-e2e: add profile for apu2 update
m-iwanicki Aug 13, 2025
8a0d74f
dts-e2e: apu2: platform-config: add multiple chip definition emulation
m-iwanicki Aug 13, 2025
8cf91e3
dts-e2e: apu2: platform-config: fw has no bootsplash
m-iwanicki Aug 13, 2025
8c8bb42
dts-e2e: apu2: platform-config: board has no FD and ME region
m-iwanicki Aug 13, 2025
1f9a373
dts-e2e: add APU2 SeaBIOS->UEFI transition & MSI Z-790 UEFI Update
m-iwanicki Aug 14, 2025
ad5dc81
dts-e2e: add config for MSI Z-790 UEFI update
m-iwanicki Aug 14, 2025
d1f88c3
dts: Add profile generation tests
m-iwanicki Aug 13, 2025
ce11e48
docs: dts-tests: format example command as it was too long
m-iwanicki Aug 13, 2025
26013f3
dts: dts-gen: move test setup to separate keyword
m-iwanicki Aug 13, 2025
0f95945
network: Get Hostname IP: try to get IP via 'ip a' if hostname fails
m-iwanicki Aug 13, 2025
5af3a6a
dts: dts-gen: start sshd before trying to get file from DUT
m-iwanicki Aug 13, 2025
3bf3094
lib: network: add optional hash verification in 'Get File From DUT'
m-iwanicki Aug 13, 2025
1a2a495
dts: dts-gen: don't verify files when globing
m-iwanicki Aug 13, 2025
6fdcb7b
dts: dts-gen: Optional ME disable in case fw doesn't support it
m-iwanicki Aug 14, 2025
2c6cfa2
dts-lib: iPXE boot: add interval between inputs
m-iwanicki Aug 14, 2025
1926742
dts: dts-gen: Add SeaBIOS->UEFI and UEFI->SeaBIOS transitions
m-iwanicki Aug 14, 2025
f80576d
dts: dts-gen: Fix test IDs
m-iwanicki Aug 14, 2025
65f902a
dts: dts-gen: add missing DTS booting
m-iwanicki Aug 14, 2025
2f64e7b
dts: dts-gen: remove redundant 'Network Boot' check
m-iwanicki Aug 14, 2025
664ce6c
dts: dts-gen: fix version transition
m-iwanicki Aug 14, 2025
311cd19
dts: dts-gen: trim last dmidecode
m-iwanicki Aug 14, 2025
28b7f02
dts: gen-profile: add platform to folder name & trim debug_profile
m-iwanicki Aug 18, 2025
d40b63f
dts: move duplicate keywords to dts-lib
m-iwanicki Aug 18, 2025
e4515a7
.gitignore: add UEFI
m-iwanicki Aug 18, 2025
091cb57
dts-e2e: add profiles for apu3 SeaBIOS update and transition to UEFI
m-iwanicki Aug 18, 2025
df43048
dts-e2e: add profiles for apu4 SeaBIOS update and transition to UEFI
m-iwanicki Aug 18, 2025
b780e63
dts-e2e: remove odroid UEFI update profile
m-iwanicki Aug 18, 2025
cd84020
dts-e2e: gen-profile: expand test documentation, mention fw_file vari…
m-iwanicki Aug 18, 2025
0961c63
dts-e2e: add NovaCustom V540TU Heads transition profile
m-iwanicki Aug 18, 2025
df96771
dts-e2e: add apu6 update & SeaBIOS->UEFI transition profiles
m-iwanicki Aug 18, 2025
3a969a2
dts-e2e: platform-configs: remove duplicated variables
m-iwanicki Aug 19, 2025
2cecc64
dts-e2e: platform-configs: add config for novacustom MTL
m-iwanicki Aug 19, 2025
aaaea20
dts-e2e: add nv41pz profiles and modify platform-configs
m-iwanicki Aug 19, 2025
3f26c27
dts-e2e: add nv41mz update profile
m-iwanicki Aug 20, 2025
6c56bcb
dts-e2e: add profiles for ns5x/7x and nv41mb uefi update
m-iwanicki Aug 20, 2025
f656645
Generate hw profile (#1004)
m-iwanicki Aug 20, 2025
93c7535
Merge pull request #1003 from Dasharo/add-apu2-profile
m-iwanicki Aug 20, 2025
a7652a3
dts-e2e: add profile for v560TU Heads transition
m-iwanicki Aug 20, 2025
22256b8
dts-e2e: MSI Z790, add profile for deployment and heads transition
m-iwanicki Aug 20, 2025
991e5df
dts-e2e: move most exports do platform-configs
m-iwanicki Aug 21, 2025
fa50a47
dts-e2e: add profiles for msi z690 update
m-iwanicki Aug 21, 2025
780f986
dts-e2e: add profile for msi z690 heads transition
m-iwanicki Aug 21, 2025
a78541a
dts-e2e: add profile for msi z690 DCR initial deployment
m-iwanicki Aug 21, 2025
a91e014
dts-e2e: add profile for msi z690 DPP initial deployment
m-iwanicki Aug 21, 2025
99efa2d
scripts/ci/ipxe-run.sh: fix script
Dec 23, 2024
927a992
dts-e2e: add profile for msi z690 DDR5 DPP update and heads transition
m-iwanicki Aug 22, 2025
6412c47
dts-e2e: fix platform/workflow/release parsing from test name
m-iwanicki Aug 22, 2025
ee26156
dts-e2e: Force profile verification based on platform-config variable
m-iwanicki Aug 22, 2025
343e26d
platform-configs: optiplex: add correct dmidecode values
DaniilKl Aug 20, 2025
145fe46
platform-configs: optiplex: fix old firmware menu configs
DaniilKl Aug 21, 2025
24a6a16
platform-configs: optiplex-common: add common DTS exports
DaniilKl Aug 20, 2025
4594793
dts-e2e: add comments to MSI Heads transition profiles
m-iwanicki Aug 22, 2025
388dcb0
dts-e2e: fix VAR list assignment
m-iwanicki Aug 22, 2025
436831c
dts-e2e: platform-configs: odroid: enable profile verification
m-iwanicki Aug 22, 2025
30a7904
dts-lib: allow Heads transition workflow to skip ME flashing
m-iwanicki Aug 25, 2025
e7ca655
dts-e2e: fix MSI Z790 exports for UEFI update
m-iwanicki Aug 25, 2025
812133e
dts: skip_me during Heads transition & fix e2e workflow
m-iwanicki Aug 25, 2025
9a3edd8
dts-e2e: fix optiplex initial deployment profile filename
m-iwanicki Aug 25, 2025
9c51db6
dts-e2e: clean up during preparation too
m-iwanicki Aug 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,5 @@ qemu-data/
command_log.txt
ipxe/
/logs
dts/dts-gen-profiles/
UEFI
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ repos:
rev: v5.0.2
hooks:
- id: reuse-lint-file
exclude: ^dts/profiles

- repo: local
hooks:
Expand Down
41 changes: 2 additions & 39 deletions dasharo-compatibility/dasharo-tools-suite.robot
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,7 @@ DTS010.001 Deploy Dasharo firmware by using DTS works correctly
Depends On ${TESTS_IN_FIRMWARE_SUPPORT}
${version}= Prepare For Initial Deployment seabios=${False}
Enable DTS Log Sending
Go Through Initial Deployment ${version}
Wait For Checkpoint Rebooting
Go Through Initial Deployment ${version} skip_me=${TRUE}
Restore Initial DUT Connection Method
Set DUT Response Timeout 5m
# Not sure how to check if Dasharo fw has serial console enabled by
Expand All @@ -212,7 +211,6 @@ DTS010.002 Deploy Dasharo SeaBios firmware by using DTS works correctly
${version}= Prepare For Initial Deployment seabios=${True}
Enable DTS Log Sending
Go Through Initial Deployment ${version}
Wait For Checkpoint Rebooting
Restore Initial DUT Connection Method
Set DUT Response Timeout 5m
# Not sure how to check if Dasharo fw has serial console enabled by
Expand Down Expand Up @@ -244,40 +242,14 @@ DTS011.001 Heads Transition by using DTS via iPXE works correctly
${dpp_keys_defined}= Are DPP Keys Defined
IF ${dpp_keys_defined} == ${TRUE} Provide DPP Credentials
Enable DTS Log Sending
Go Through Heads Transition
Wait For Checkpoint Rebooting
Go Through Heads Transition skip_me=${TRUE}
Restore Initial DUT Connection Method
Set DUT Response Timeout 5m
Execute Manual Step While Freeing Serial Connection
... "Confirm that deployment succeeded"


*** Keywords ***
Are DPP Keys Defined
${email}= Run Keyword And Return Status
... Variable Should Exist $DPP_EMAIL
${password}= Run Keyword And Return Status
... Variable Should Exist $DPP_PASSWORD
${status}= Run Keyword And Return Status Should Be True
... ${email} and ${password}
RETURN ${status}

Flash FW Automatically Or Manually
[Documentation] Flash firmware automatically if it's possible and
... variable with name passed in fw_var exists
[Arguments] ${fw_var} ${msg}="Flash firmware"
${variable_exists}= Run Keyword And Return Status
... Variable Should Exist \${${fw_var}}
# Without POWER_CTRL Flash Firmware will try to boot into Linux which won't
# work
IF not ${variable_exists} or '''${POWER_CTRL}''' == '''none'''
Execute Manual Step While Freeing Serial Connection ${msg}
ELSE
Flash Firmware ${${fw_var}}
Power On
Set DUT Response Timeout 5m
END

Prepare For Initial Deployment
[Documentation] Prepare for deployment, from flashing up to entering
... DPP keys. Returns deployment type to pass to
Expand Down Expand Up @@ -309,12 +281,3 @@ Prepare For Initial Deployment
VAR ${version}= DCR UEFI
END
RETURN ${version}

Execute Manual Step While Freeing Serial Connection
[Documentation] In case you need to connect to DUT via serial to do
... manual steps. Arguments are the same as for 'Execute Manual Step'
[Arguments] ${msg}
Telnet.Close All Connections
Execute Manual Step
... ${msg}. Make sure to close serial connection before continuing
Serial Setup ${RTE_IP} ${RTE_S2_N_PORT}
6 changes: 5 additions & 1 deletion docs/dts-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,11 @@ Control variables:
Launching example:

```bash
robot -b command_log.txt -v snipeit:no -L TRACE -v config:qemu -v rte_ip:127.0.0.1 -v boot_dts_from_ipxe_shell:True -v dts_ipxe_link:http://192.168.0.102:8080/ipxe -v dpp_email:'EMAIL' -v dpp_password:'PASSWORD' -v dts_config_ref:'refs/heads/develop' -t "E2E006.002*" dts/dts-e2e.robot
robot -b command_log.txt -v snipeit:no -L TRACE -v config:qemu \
-v rte_ip:127.0.0.1 -v boot_dts_from_ipxe_shell:True \
-v dts_ipxe_link:http://192.168.0.102:8080/ipxe -v dpp_email:'EMAIL' \
-v dpp_password:'PASSWORD' -v dts_config_ref:'refs/heads/develop' \
-t "E2E006.002*" dts/dts-e2e.robot
```

> Note: replace `EMAIL` and `PASSWORD` with appropriate credentials if required.
Expand Down
3 changes: 2 additions & 1 deletion dts/dts-e2e-helper.robot
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ Print Test Names And Exports
Log To Console --------------------------------------------------
FOR ${platform_workflows} IN @{workflows}
${workflow} ${release}= Set Variable ${platform_workflows}
@{exports}= Prepare Test Exports ${workflow} ${platform_variables} ${DTS_CONFIG_REF}
@{exports}= Prepare Test Exports ${workflow} ${release}
... ${platform_variables} ${DTS_CONFIG_REF}
Log To Console ---------------
Log To Console ${platform} ${workflow} - ${release}
Log To Console ---------------
Expand Down
100 changes: 71 additions & 29 deletions dts/dts-e2e.robot
Original file line number Diff line number Diff line change
Expand Up @@ -63,84 +63,100 @@ ${platform} ${workflow} - ${release}

${platform} UEFI Update - DCR
[Documentation] Update workflow for Dasharo Community Release
Prepare E2E Test ${platform} UEFI Update
Go Through Update
Wait For Checkpoint Rebooting
Prepare E2E Test
Go Through Update skip_me=${TRUE}
Wait For Checkpoint And Press Enter ${DTS_CONFIRM_CHECKPOINT}
Wait For Checkpoint ${DTS_CHECKPOINT}

${platform} SeaBIOS Update - DCR
[Documentation] Update workflow for Dasharo Community Release
Prepare E2E Test ${platform} SeaBIOS Update
Prepare E2E Test
Go Through Update
Wait For Checkpoint Rebooting
Wait For Checkpoint And Press Enter ${DTS_CONFIRM_CHECKPOINT}
Wait For Checkpoint ${DTS_CHECKPOINT}

${platform} Initial Deployment - DCR
[Documentation] Initial deployment workflow for Dasharo Community Release
Prepare E2E Test ${platform} Initial Deployment
Go Through Initial Deployment DCR UEFI
Wait For Checkpoint Rebooting
Prepare E2E Test
Go Through Initial Deployment DCR UEFI skip_me=${TRUE}
Wait For Checkpoint And Press Enter ${DTS_CONFIRM_CHECKPOINT}
Wait For Checkpoint ${DTS_CHECKPOINT}

${platform} UEFI Update - DPP
[Documentation] Update workflow with DPP credentials
Prepare E2E Test ${platform} UEFI Update
Prepare E2E Test
Provide DPP Credentials
Go Through Update
Wait For Checkpoint Rebooting
Go Through Update skip_me=${TRUE}
Wait For Checkpoint And Press Enter ${DTS_CONFIRM_CHECKPOINT}
Wait For Checkpoint ${DTS_CHECKPOINT}

${platform} SeaBIOS Update - DPP
[Documentation] Update workflow with DPP credentials
Prepare E2E Test ${platform} SeaBIOS Update
Prepare E2E Test
Provide DPP Credentials
Go Through Update
Wait For Checkpoint Rebooting
Wait For Checkpoint And Press Enter ${DTS_CONFIRM_CHECKPOINT}
Wait For Checkpoint ${DTS_CHECKPOINT}

${platform} Initial Deployment - DPP
[Documentation] Initial deployment workflow with DPP credentials
Prepare E2E Test ${platform} Initial Deployment
Prepare E2E Test
Provide DPP Credentials
Go Through Initial Deployment DPP UEFI
Wait For Checkpoint Rebooting
Go Through Initial Deployment DPP UEFI skip_me=${TRUE}
Wait For Checkpoint And Press Enter ${DTS_CONFIRM_CHECKPOINT}
Wait For Checkpoint ${DTS_CHECKPOINT}

${platform} UEFI->Heads Transition - DPP
[Documentation] Heads transition workflow with DPP credentials
Prepare E2E Test ${platform} UEFI->Heads Transition
Prepare E2E Test
Provide DPP Credentials
Go Through Heads Transition
Wait For Checkpoint Rebooting
Go Through Heads Transition skip_me=${TRUE}
Wait For Checkpoint And Press Enter ${DTS_CONFIRM_CHECKPOINT}
Wait For Checkpoint ${DTS_CHECKPOINT}

${platform} SeaBIOS->UEFI Transition - DPP
[Documentation] Heads transition workflow with DPP credentials
Prepare E2E Test ${platform} SeaBIOS->UEFI Transition
Prepare E2E Test
Provide DPP Credentials
Go Through Transition DPP UEFI
Wait For Checkpoint Rebooting
Wait For Checkpoint And Press Enter ${DTS_CONFIRM_CHECKPOINT}
Wait For Checkpoint ${DTS_CHECKPOINT}

${platform} Dasharo (coreboot+UEFI) To Dasharo (Slim Bootloader+UEFI) Transition - DPP
[Documentation] Transition to Dasharo (Slim) workflow with DPP credentials
Prepare E2E Test ${platform} Dasharo (coreboot+UEFI) to Dasharo (Slim Bootloader+UEFI) Transition
Prepare E2E Test
Provide DPP Credentials
Go Through Transition DPP Slim Bootloader + UEFI
Wait For Checkpoint Rebooting
Go Through Transition DPP Slim Bootloader + UEFI skip_me=${TRUE}
Wait For Checkpoint And Press Enter ${DTS_CONFIRM_CHECKPOINT}
Wait For Checkpoint ${DTS_CHECKPOINT}

${platform} Dasharo (Slim Bootloader+UEFI) Initial Deployment - DPP
[Documentation] Initial deployment workflow for Slim Bootloadere + UEFI
Prepare E2E Test ${platform} Dasharo (Slim Bootloader+UEFI) Initial Deployment
Prepare E2E Test
Provide DPP Credentials
Go Through Initial Deployment DPP Slim Bootloader + UEFI
Go Through Initial Deployment DPP Slim Bootloader + UEFI skip_me=${TRUE}
Wait For Checkpoint And Press Enter ${DTS_CONFIRM_CHECKPOINT}
Wait For Checkpoint ${DTS_CHECKPOINT}

Prepare E2E Test
[Documentation] Prepare everything needed for platform and workflow
... emulation. Keyword has to be run in shell. After keyword ends we
... should be in DTS menu
[Arguments] ${platform} ${workflow}
${platform}= Evaluate '${TEST_NAME}'.split()[1]
${release}= Evaluate '${TEST_NAME}'.split()[-1]
${workflow}= Evaluate ' '.join('${TEST_NAME}'.split()[2:-2])
# Verify if DTS_CONFIG_REF is set via `-v` argument
Variable Should Exist ${DTS_CONFIG_REF}
Export Shell Variables For Emulation
... ${workflow}
... ${release}
... ${DTS_PLATFORM_VARIABLES}[${platform}]
... ${DTS_CONFIG_REF}
# TODO: needed by 'Go Through Initial Deployment' keyword for couple of
# NovaCustom boards
VAR ${DTS_TEST_BOARD_MODEL}= ${DTS_PLATFORM_VARIABLES}[${platform}][DTS_TEST_BOARD_MODEL] scope=TEST
Execute Command In Terminal
... rm -rf /etc/cloud-pass /root/.mc /*.tar.gz /root/*.tar.gz /tmp/logs/*profile /tmp/dts-temp-files
Write Into Terminal dts-boot

Prepare DTS Test
Expand All @@ -156,7 +172,31 @@ Teardown DTS Test
# background
SSHLibrary.Close Connection
Set Prompt For Terminal bash-5.2#
Execute Linux Command rm -rf /etc/cloud-pass /root/.mc /*.tar.gz /root/*.tar.gz
TRY
${platform}= Evaluate '${TEST_NAME}'.split()[1]
${release}= Evaluate '${TEST_NAME}'.split()[-1]
${workflow}= Evaluate ' '.join('${TEST_NAME}'.split()[2:-2])
VAR ${profiles}= ${DTS_PLATFORM_VARIABLES}[${platform}][DTS_TEST_WORKFLOW_PROFILES]
${verify_profile}= Run Keyword And Return Status List Should Contain Value
... ${profiles} ${{ ("${workflow}", "${release}" ) }}
IF ${verify_profile}
# strip 'E2Exxx: ' prefix from test name
${profile_name}= Evaluate $TEST_NAME.split(":")[1].strip()
VAR ${profile}= ${CURDIR}/profiles/${profile_name}.profile
OperatingSystem.File Should Exist ${profile}
IF "${TEST_STATUS}" == "PASS"
Get File From DUT /tmp/logs/profile /tmp/robotframework-dts-profile
${rc} ${output}= Run And Return Rc And Output
... diff -u1 /tmp/robotframework-dts-profile "${profile}"
Should Be Equal As Integers ${rc} 0 Profiles are not identical!
END
ELSE
Log Workflow isn't configured for profile verification. WARN
END
FINALLY
Execute Command In Terminal
... rm -rf /etc/cloud-pass /root/.mc /*.tar.gz /root/*.tar.gz /tmp/logs /tmp/dts-temp-files
END

Start New DTS SSH Session In QEMU
[Documentation] Changes connection method to ssh and logs in to DTS
Expand All @@ -183,6 +223,8 @@ Prepare DTS E2E Test Suite
Skip If not ${DTS_SUPPORT}
&{dts_vars}= Get DTS Test Variables
VAR ${DTS_PLATFORM_VARIABLES}= ${dts_vars} scope=SUITE
VAR ${DEVICE_OS_USERNAME}= root scope=SUITE
VAR ${DEVICE_OS_PASSWORD}= ${EMPTY} scope=SUITE
Power On And Enter DTS Shell
Set Prompt For Terminal bash-5.2#
Execute Linux Command systemctl start sshd
Execute Command In Terminal systemctl start sshd
Loading
Loading