Filip GołaśandGitHub 6bb23b0023 Sync with internal develop (#1258)
commit 11383f4f295d0a1511344eff4f52acd167f02687
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Mar 10 06:22:24 2026 +0100

    fwupd-support.robot: Add missing Power On in local firmware update

    Only affects devices with power control which might stay powered off
    after the update

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit a94c0b091355a0e383a8db54ee8bdb4b01ac1448
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Mar 6 10:29:00 2026 +0100

    fwupd tests: Workaround for changing system firmware device name

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit a0138c9c59f712f1ff6704fff1907e675ae8af5e
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Wed Mar 4 06:41:51 2026 +0100

    fwupd.resource: Fix AC detection workaround for laptop & no battery

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit a866fa664a1a86bc12241cb3422d734b81e1ce2c
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Mar 3 09:53:34 2026 +0100

    Qubes OS: Replace all occurrences of 'QubesOS' with 'Qubes OS'

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit fdc00c8dade6c0714ae3016466f5d22bfc773d53
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Mar 3 09:00:24 2026 +0100

    fwupd-support.robot: Add workaround for get-updates asking for uploading results

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 61b618223e1743f8c63a6e97893c1c2691026ef2
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Mar 3 08:42:58 2026 +0100

    scripts/lib/robot.sh: Fix no tags producing `[""]` instead of `[]`

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 27e51ad032e7d4d79131ee817bf48693a496bd8d
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Mar 3 08:20:47 2026 +0100

    fwupd tests: Add dynamic semiauto tags checks

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 67c12fdafea6c81fa4565e58b4bc78db09141411
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Mar 3 07:59:12 2026 +0100

    lib/fwupd.resourc: Add output for ac not connected in  subcommand

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit b26e21cfe3399e364917d4465f572abc9c662c31
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Mar 3 07:36:44 2026 +0100

    fwupd tests: Separate common battery workaround code into lib

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit abb84d7f5c4ea778df688b53d580017cea91038a
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Mar 3 07:09:09 2026 +0100

    squash! fwupd tests: Add battery discharge workaround

    Unify battery discharge time in both fwupd suites

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 67e9e08463ef7dad0084bf02afabce8d75146775
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Wed Feb 25 08:22:49 2026 +0100

    fwupd tests: Add battery discharge workaround

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 7b9359a09c7cc45c951525550807c2b671919050
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Wed Feb 25 08:22:02 2026 +0100

    fwupd-support.robot: Add more test cases

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 27780e1bdfc740c03f35a25d39da696c9b004eb2
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Wed Mar 11 14:03:08 2026 +0100

    README.md: Replace instability warning with suggestion to use release tags

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 1c9d25621f
Author: Michał Kopeć <michal.kopec@3mdeb.com>
Date:   Thu Feb 12 12:28:22 2026 +0100

    docs/novacustom.md: add link to ec downgrade procedure

    Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>

commit fe73d19deb
Author: Michał Kopeć <michal.kopec@3mdeb.com>
Date:   Thu Oct 30 13:13:02 2025 +0100

    docs/novacustom.md: document v0.9.0 downgrade bug

    Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>

commit 2e517d8a46
Author: Wiktor Mówiński <wiktor.mowinski@3mdeb.com>
Date:   Tue Feb 24 14:44:42 2026 +0100

    test_cases.json:fix net spd test (#1247)

    Signed-off-by: Wiktor Mowinski <wiktor.mowinski@3mdeb.com>

commit e11604b03a
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 23 10:58:52 2026 +0100

    test_cases.json: Add missing tests and fix changed_to's (#1246)

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit b9fb65a212
Author: Wiktor Mówiński <wiktor.mowinski@3mdeb.com>
Date:   Mon Feb 23 09:38:58 2026 +0100

    test_cases.json: fix spelling and such (#1244)

    * test_cases.json: fix spelling and such

    Signed-off-by: Wiktor Mowinski <wiktor.mowinski@3mdeb.com>

    test_cases.json: fix

    Signed-off-by: Wiktor Mowinski <wiktor.mowinski@3mdeb.com>

    * test_cases.json: fixname

    Signed-off-by: Wiktor Mowinski <wiktor.mowinski@3mdeb.com>

    * test_cases.json:remaining tests

    Signed-off-by: Wiktor Mowinski <wiktor.mowinski@3mdeb.com>

    * test_cases.json: add WLE

    Signed-off-by: Wiktor Mowinski <wiktor.mowinski@3mdeb.com>

    * check_tests_consistency.py: script lists diffs in test_cases.json and modules

    Signed-off-by: Wiktor Mowinski <wiktor.mowinski@3mdeb.com>

    * dasharo-compatibility/*:fix

    Signed-off-by: Wiktor Mowinski <wiktor.mowinski@3mdeb.com>

    * test_cases.json: fix

    Signed-off-by: Wiktor Mowinski <wiktor.mowinski@3mdeb.com>

    ---------

    Signed-off-by: Wiktor Mowinski <wiktor.mowinski@3mdeb.com>

commit 9d2f1c6e64
Merge: ac35515f21 c62f6e7283
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Mar 6 09:17:16 2026 +0100

    Merge pull request 'osfv-stable-release-improvements' (#3) from osfv-stable-release-improvements into develop

    Reviewed-on: https://git.3mdeb.com/dasharo/open-source-firmware-validation/pulls/3

commit c62f6e7283
Merge: a8a11ed08e ac35515f21
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Mar 6 09:16:09 2026 +0100

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

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit a8a11ed08e
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Mar 6 08:44:50 2026 +0100

    Login To Booted OS: Fix continuing on fail to login

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit d1f032a006
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Mar 6 08:34:25 2026 +0100

    cpu-performance: Fix FORCE_TIMES_TO_RUN envvar set command

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit cd3c48cf53
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Mar 6 06:48:37 2026 +0100

    scripts/regression.sh: Fix scope change

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 23334fa5c9
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Mar 3 14:38:10 2026 +0100

    release_tests_devices.tst: Revert using temporary desk setup devices

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 89be9ac5b8
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Mar 3 09:39:29 2026 +0100

    osfv_stability_reports.py: Differentiate run dates in caches and reports

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 5862e59fe0
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 26 20:28:15 2026 +0100

    osfv_stability_reports.py: Add per-suite cache

    For suites which take a long long time to process,
    to not lose the time spent processing it if the
    processing is interrupted

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 9b2f3dd458
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 23 10:36:43 2026 +0100

    release_tests_rules.json: Add automated tag filter

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 42197f4b4d
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 23 10:33:40 2026 +0100

    develop_pr_auto_regression.py: Fix orphan robot processes

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit c025d2a2a4
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 23 10:07:57 2026 +0100

    scripts/ci/regression-scope: Preserve suites order

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 7f2743c744
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 23 09:43:57 2026 +0100

    osfv_stability_run.py: Fix logs_base undefined on custom logs dir

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 1ea7418873
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 23 09:42:31 2026 +0100

    develop_pr_auto_regression.py: Only compare revs if files list not overridden

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 5dc73bf952
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 23 09:40:43 2026 +0100

    dts-lib.robot: Add semiauto test skip for flashing kwd

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit d28043c8df
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 23 08:48:40 2026 +0100

    release_tests_suite_list.txt: Use util/prepare-platform instead of module inits

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit fd6c5030d5
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 23 08:47:34 2026 +0100

    util/prepare-platform.robot: Add util test for running Prepare Platform

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 813e27fe1c
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 23 08:47:02 2026 +0100

    lib/prepare-platform.resource: Unify redundant Prepare Platform definitions

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 8433e4fa3a
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 23 06:39:23 2026 +0100

    release_tests_suite_list.txt: Remove duplicated __init__s

    robot crashes otherwise

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 4c7fbb3181
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 20 15:09:20 2026 +0100

    SSH Login keywords: Limit retries to 5m instead of fixed try count

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 0059a2c65a
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 20 12:57:03 2026 +0100

    keywords.robot: Fix ssh_retries being passed as timeout

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit d23fe71cd3
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 20 11:46:24 2026 +0100

    release_tests_devices.txt: Remove nucbox

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 03c100ef32
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 19 21:27:22 2026 +0100

    Login To Booted OS: Fix infinite recovery loop

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit a71088123f
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Wed Feb 18 09:14:46 2026 +0100

    novacustom-nuc_box-155H_00254.json: Update device IP

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 64a2212ef8
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Wed Feb 18 08:57:15 2026 +0100

    novacustom-v540tnd_00266.json: Update device ip

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit b534fb4461
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Wed Feb 18 08:40:22 2026 +0100

    manual_cpu_performance.robot: Limit runs to 3

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 9d77293ff3
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Wed Feb 18 08:29:48 2026 +0100

    cpu-performance.robot: Limit test runs to 3

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit a696e896f9
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Wed Feb 18 07:56:06 2026 +0100

    SSH Boot System: Always reinit connection to fix 'No open connections' errors

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit ae8e33eedb
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Wed Feb 18 07:28:13 2026 +0100

    lib/flash.robot: Read Firmware include ME and IFD

    We might assume the read firmware contains some IFD
    or ME later, not reading them would result in a brick
    and doesn't increase the read time that much.

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 37daf5a624
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Wed Feb 18 07:17:41 2026 +0100

    BPS006: Put temp tiles in /tmp to prevent littering if cleanup fails

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit e182f312fc
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Wed Feb 18 07:17:16 2026 +0100

    lib/dcu.robot: Put temp tiles in /tmp to prevent littering if cleanup fails

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 51d341c107
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 17 16:09:16 2026 +0100

    platform-configs/novacustom: Update dmidecode values

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit cb7e258cc2
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 17 16:07:43 2026 +0100

    platform-configs/pcengines: Update dmidecode values

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 0e19931887
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 17 16:02:24 2026 +0100

    verified-boot.robot: Run DCU locally to keep DUT from downloading containers

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit c47d9a8358
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 17 12:45:57 2026 +0100

    tpm-support.robot: Add missing skips for serial-only tests

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 3b11971f16
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 17 12:37:33 2026 +0100

    osfv-test-data: Bump version

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit d860093340
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 17 10:11:42 2026 +0100

    uefi-shell.robot: Use library keywords to perform test

    Otherwise it was failing on MSI z690.
    It's always better to use common and working
    keywords instead of reinventing the wheel.

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 951b42230b
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 17 09:27:40 2026 +0100

    msi-z690-common.robot: Change keyboard model to fit hardware matrix

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 82bff0f0c2
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 17 09:19:36 2026 +0100

    novacustom-nu_box-155H_00254.json: Update device IP

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit b065131117
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 16 12:33:29 2026 +0100

    release_tests_devices.txt: Fix protectli vp6650 filename

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 2c21040937
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 16 12:32:22 2026 +0100

    BPS006: Add workaround for sudo-rs which is incompatible with ansible

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 468c722fca
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 16 12:30:23 2026 +0100

    linux-packages-playbook.yaml: accept gsettings modifications to fail

    will fail if Gnome is not installed (server OSes)

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 5df4832616
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 16 12:29:00 2026 +0100

    menus.robot: Add warning if OS not found and will try to boot the default disk

    Otherwise leads to cryptic fails failing because some disk name was not
    found, while the real culprit is the OS not being installed.

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 57a10e20ff
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 16 10:17:45 2026 +0100

    ci//pcengines-apu3_00252.json: Update device IP address

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 201c4b231a
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 16 09:44:22 2026 +0100

    keys-and-keywords/ubuntu-keywords.robot: Fix applying log level immediately

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit e6ed2a1adf
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 16 09:10:28 2026 +0100

    protectli-vp6650_00002.json: Update sonoff ip

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 4327625702
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 16 08:25:32 2026 +0100

    platform-configs/protectli: Reduce repeated DMIDECODE values

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 57ae4c7f56
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 16 08:10:05 2026 +0100

    ci//pcengines-apu3_00252.json: Fix FW file apu variant

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 6ee3180ee9
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Sat Feb 14 19:20:02 2026 +0100

    capsule-update.robot: Fix mismatch in waiting for tianocore string

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit ac70cd4b5e
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Sat Feb 14 14:45:57 2026 +0100

    capsule-update.robot: Make FUM screen optional, it depends on FW version

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 556c750018
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Sat Feb 14 14:45:20 2026 +0100

    lib/network.robot: Add sync on the end to prevent interrupting the file transfer

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 080a47375b
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Sat Feb 14 12:03:01 2026 +0100

    Revert "lib/network.robot: Rm target path before moving"

    This reverts commit 3bca42177f528f17eba13095dff0189a932fce8d.

commit d696e942dd
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 13 17:32:54 2026 +0100

    lib/network.robot: Rm target path before moving

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 45f892d25c
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 13 17:00:26 2026 +0100

    capsule_update_tests.sh: Remove only previous run files of the same name

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit d32f0be6d1
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 13 16:50:00 2026 +0100

    capsule-update.robot: Adjust for execution on both serial and ssh

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit fe86280f3c
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 13 15:26:02 2026 +0100

    capsule-update.robot: Restore FUM dialog handling when serial console supported

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 8c3377c627
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 13 11:36:49 2026 +0100

    keywords.robot: Login To Booted OS: Only attempt recover when via pure SSH

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 7909028153
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 13 10:17:18 2026 +0100

    keywords.robot: Fix Login To Linux With Root Priviledges doing nothing on serial

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit f0f79b38eb
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 13 09:34:29 2026 +0100

    lib/flash.robot: Increase response timeout after flash to 300s

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 7c31ddcfa2
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 13 09:09:13 2026 +0100

    msi-pro-690-a-wifi-ddr4_00039.json: change fw version to support custom logo

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit fb462a29ba
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 13 08:44:51 2026 +0100

    lib/dcu.robot: Prevent temp file collisions with uuids

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit da5a7d4865
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 13 08:34:25 2026 +0100

    requirements.txt: Bump osfv-scripts to fix time import

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit f4c7a10498
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 13 07:38:41 2026 +0100

    capsule-update.robot: Restore custom logo checking

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit cc4bd2981e
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 19:00:58 2026 +0100

    release_tests_suite_list*: Add Basic Platform Setup to release tests

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit a30afe2d55
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 18:42:54 2026 +0100

    capsule-update.robot: Remove redundant serial console test flow

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 73c3f50c4e
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 18:40:51 2026 +0100

    keyword & options-lib_dcu: Remove redundant Login To Windows keyword variant

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 870a899283
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 18:03:50 2026 +0100

    capsule-update.robot: Remove manual step from Flash Firmware If Not QEMU

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 12f0437d73
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 17:21:07 2026 +0100

    regression-scope/configs/devices: Add capsule update env vars

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 9a8b614abb
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 17:20:42 2026 +0100

    flash.robot: Flash FD using internal programmer to avoid FD mismatch bricks

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 1841da3665
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 17:19:15 2026 +0100

    novacustom-nuc_box.robot: Remove capsule update support: No capsules published

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 79efc50191
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 15:18:44 2026 +0100

    capsule-update.robot: Rework suite to work without additional manual setup steps

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit a89dae5b81
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 14:54:35 2026 +0100

    keywords.robot: Fix Login To Linux Via SSH not doing retries

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 7961884d86
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 14:54:05 2026 +0100

    lib/flash.robot: Increase timeouts a bit to compensate for large RAM training

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 68cf70bc11
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 13:30:38 2026 +0100

    lib/flash.robot: Flash ME in BTG supported devices

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit b75a681a80
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 13:30:00 2026 +0100

    keywords.robot: Load OS Credentials: Remove redundant OS login

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit e3b4f853c4
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 13:29:30 2026 +0100

    options-lib_dcu.robot: Remove redundant sleep in Set UEFI Option

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 738c518ca9
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 13:28:47 2026 +0100

    platform-configs: Update INTEL_CBNT_BOOTGUARD_FUSING_SUPPORT state

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 9c375275ba
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 13:27:12 2026 +0100

    lib/network.robot: Send File To DUT: check hashes, rm before send

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 1cc26c8c8a
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 13:26:09 2026 +0100

    lib/dcu.robot: Remove redundant sleep after flashing

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit c28a691773
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 12:57:14 2026 +0100

    Revert "TMP TEST: reduce trials for linux login"

    This reverts commit d41693da2a3a600beb7a4a26d95f6e7f90a2430a.

commit 31558818c9
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Thu Feb 12 10:51:33 2026 +0100

    capsule-update.robot: Flash rc0 before tests, update instructions

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit a93ad4dfc3
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 14:56:20 2026 +0100

    Login To* kwds: Add configurable retries amount for ssh variants

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 798f414c57
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 13:30:24 2026 +0100

    lib/flash.robot: Fix missing 'x' in Wait Unil KW Succeeds

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 5112388285
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 13:28:57 2026 +0100

    options-lib_dcu.robot: Boot System... Do not assume default_boot is the target

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit cd218ea212
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 13:03:46 2026 +0100

    Recover Broken Bootorder: resume login after recover

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 1ec4d06a06
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 13:01:19 2026 +0100

    Load OS Credentials: Create keyword for flaky repeated import

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 68c227185a
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 12:59:49 2026 +0100

    Set Nextboot Bootentry: Move implementation to lib/custom_boot_entries

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit e1617a7bb5
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 12:26:42 2026 +0100

    basic-platform-setup.robot: Normalize Boot&Login keyword variants usage in suite

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit e72ade0798
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 12:22:15 2026 +0100

    TMP TEST: reduce trials for linux login

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit b53c7638cb
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 12:15:55 2026 +0100

    Login To Windows Via SSH: Fail if login fails

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 43a852d863
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 09:55:58 2026 +0100

    linux-packages-playbook.yaml: Add systemwide update task

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 2bc0735e7a
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 09:55:11 2026 +0100

    BPS010: Deploy UEFI Shell: Add

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 6ea5a15f91
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 09:25:50 2026 +0100

    Ensure Custom Bootentry: fix indexing empty list

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 91b5b8f675
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 09:17:07 2026 +0100

    keywords.robot: Implement login to OS recovery

    When the boot order unexpectedly changes and testing via SSH,
    the whole regression will start failing.

    With this fallback, after we fail to log in to an OS, there
    will at least be the hope of recovering the regression
    eventually.

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 31d92cc5dc
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 09:01:06 2026 +0100

    Login To Windows Via SSH: Reduce login timeout from 1h@20 tries to 5m@5 tries

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit c97145ea33
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 09:34:58 2026 +0100

    fix login ssh timeouts

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit e25474b8b0
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 08:56:29 2026 +0100

    Login To Linux: Remove retrials of Login To Linux Via SSH

    Login To Linux Via SSH already retries all its code,
    so this is redundant and multiplies the wait time

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 2799ff26d4
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 08:35:46 2026 +0100

    Serial User Login Linux: Remove dead code

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 2200998119
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 08:33:11 2026 +0100

    Logint To Booted OS: Add keyword

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 6eb605d36e
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 08:28:58 2026 +0100

    Login To Windows: Add keyword

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 87a80967db
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 08:27:02 2026 +0100

    Login To Windows: Rename to Boot And Login To Windows

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit d76007a0a3
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 10 08:22:38 2026 +0100

    Login To OS: Rename to Boot And Login To OS

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 4b2acd2e51
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Mon Feb 9 17:22:30 2026 +0100

    os-specific-tasks/201.yml: Remove uefi shell installation

    it breaks bootorder and tests deploy it anyway

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 7d98f4d870
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Fri Feb 6 13:14:28 2026 +0100

    Deploy Uefi Shell: Ensure it doesnt break the bootorder

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

commit 1eda44fda0
Author: Filip Gołaś <filip.golas@3mdeb.com>
Date:   Tue Feb 3 13:32:10 2026 +0100

    osfv_stability_{run,reports}.py: Add

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

    osfv_stability_run: add release rules file

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

    osfv_stability_reports: add run count

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

    osfv_stability_reports: Fix: account for parallelism in total run time

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

    osfv_stability_run.py: accept env vars

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

    osfv_stability_reports.py: save logs to dirs depending on date and revision

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

    osfv_stability_run.py: Save results in paths per run date and rev

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

    osfv_stability_reports.py: Parse date, revision, branch and support json output

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

    osfv_stability_*.py: Allow configurable LOGS_DIR using env vars

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

    osfv_stability_reports.py: Handle broken robot xmls

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

    osfv_stability_reports.py: Unpack merged results

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

    osfv_stability_reports.py: Add suites to skip config

    Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>

Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>
2026-03-17 10:10:34 +01:00
2024-10-14 16:45:19 +02:00
2023-11-09 17:21:35 +01:00
2026-03-17 10:10:34 +01:00
2026-03-17 10:10:34 +01:00
2026-02-06 13:02:09 +01:00
2025-07-29 10:41:23 +02:00
2024-12-17 18:49:05 +01:00
2024-12-17 18:49:05 +01:00
2024-12-17 18:49:05 +01:00
2024-12-17 18:49:05 +01:00
2024-12-17 18:49:05 +01:00
2023-11-15 13:36:14 +01:00
2024-12-17 18:49:05 +01:00
2026-03-17 10:10:34 +01:00
2024-12-17 18:49:05 +01:00

Open Source Firmware Remote Test Environment

The following repository contains set of tests and other features to conduct Dasharo firmware validation procedures.

Warning

!!! WARNING !!! This repository is in the process of stabilization after migration and multiple major reworks. Check the published tags and their descriptions for information about the expected stability on selected platform. It's recommended to run Dasharo regression tests on top of the most recent version tags, like "v0.3.0". Use git tag to list all the published tags.

Use the top of the develop branch only if you are willing to risk unstable regression runs and unexpected fails for the sake of the release_tests_devices features. !!! WARNING !!!

Table of contents

Lab architecture

This graphic presents a rough overview on how DUT can be connected in the Dasharo lab.

Following mechanisms may be used for DUT power control:

Following mechanisms may be used for DUT control:

  • serial port over telnet, exposed by ser2net
  • PiKVM with USB keyboard emulatation
  • for some platforms, a mixture of both (serial for output, PiKVM keyboard for input)

regression-architecture

Current OSFV architecture

Because of that the:

repositories were replaced by common libraries such as those contained here. These and robot framework libraries (found here) are attached to the environment itself via requirements.txt which needs to be kept up to date to serve its purpose.

Test environment overview

Dasharo OSFV consists of following modules:

  • dasharo-compatibility,
  • dasharo-security,
  • dasharo-performance,
  • dasharo-stability.

Supported platforms

This table presents platform names along with their config names from platform-configs directory. The support level (which test are supported per different platform) may vary.

Manufacturer Platform Firmware $CONFIG
MSI PRO Z690 A DDR5 Dasharo msi-pro-z690-a-ddr5
MSI PRO Z690 A WIFI DDR4 Dasharo msi-pro-z690-a-wifi-ddr4
NovaCustom NS50MU Dasharo novacustom-ns50mu
NovaCustom NS50PU Dasharo novacustom-ns50pu
NovaCustom NS70MU Dasharo movacustom-ns70mu
NovaCustom NS70PU Dasharo novacustom-ns70pu
NovaCustom NV41MB Dasharo novacustom-nv41mb
NovaCustom NV41MZ Dasharo novacustom-nv41mz
NovaCustom NV41PZ Dasharo novacustom-nv41pz
NovaCustom V540TND Dasharo novacustom-v540tnd
NovaCustom V540TU Dasharo novacustom-v540tu
NovaCustom V560TND Dasharo novacustom-v560tnd
NovaCustom V560TNE Dasharo novacustom-v560tne
NovaCustom V560TU Dasharo novacustom-v560tu
PC Engines apu4 Dasharo pcengines-apu4
Protectli V1210 Dasharo protectli-v1210
Protectli V1410 Dasharo protectli-v1410
Protectli V1610 Dasharo protectli-v1610
Protectli VP2410 Dasharo protectli-vp2410
Protectli VP2420 Dasharo protectli-vp2420
Protectli VP4630 Dasharo protectli-vp4630
Protectli VP4650 Dasharo protectli-vp4650
Protectli VP4670 Dasharo protectli-vp4670
QEMU Q35 Dasharo (UEFI) qemu
Raptor-CS TalosII Dasharo raptor-cs_talos2
Raspberry Pi RaspberryPi 3B Yocto rpi-3b

platform-configs has recently been reworked- by using the tree topology to group platforms by more generic settings up above and the more specific flags and settings much lower down to an exact platform model. Example:

DCU

The osfv uses the Dasharo Configuration Utility, it lets you set firmware settings directly in binary file.

Getting started

Initializing environment

  • Clone repository and setup virtualenv:
git clone https://github.com/Dasharo/open-source-firmware-validation
cd open-source-firmware-validation
git checkout develop
git submodule update --init --checkout --recursive --remote
python3 -m virtualenv venv
source venv/bin/activate
  • Install modules (in case of Raptor Talos II platform):
pip install -U -r requirements-openbmc.txt
  • Install modules (in case of other platforms):
pip install -r requirements.txt
ansible-galaxy install -r requirements.yml
  • Follow the initialization instructions in osfv-test-data/README.md:
cd osfv-test-data
git annex pull
./setup.sh
cd ..

If you try to run the environment again after the first initialization you must reinstall requirements.txt for it to work properly:

python3 -m virtualenv venv
source venv/bin/activate
pip install -r ./requirements.txt
ansible-galaxy install -r requirements.yml
  • Or just create an alias:
alias penv="python3 -m virtualenv venv && source venv/bin/activate && \
            pip install -r ./requirements.txt && \
            ansible-galaxy install -r requirements.yml"

NOTE: keywords.robot requires osfv_cli to be installed on the host system. Go through these steps to configure the scripts

  • Executing manual steps require that tkinter module be installed which can't be done via pip
sudo dnf install python3-tkinter

Running tests

When running tests on Dasharo platforms use the following commands:

  • For running a single test case:
robot -L TRACE -v rte_ip:$RTE_IP -v config:$CONFIG -v device_ip:$DEVICE_IP \
-t $TEST_CASE_ID $TEST_MODULE/$TEST_SUITE
  • For running a single test suite:
robot -L TRACE -v rte_ip:$RTE_IP -v config:$CONFIG -v device_ip:$DEVICE_IP \
$TEST_MODULE/$TEST_SUITE
  • For running a single test module:
robot -L TRACE -v rte_ip:$RTE_IP -v config:$CONFIG -v device_ip:$DEVICE_IP \
$TEST_MODULE

Parameters should be defined as follows:

  • $DEVICE_IP - IP address of the DUT. Required only when there is no serial input enabled for the device, or tests are executed over SSH. Currently, this is the case for NovaCustom and MSI devices.
  • $RTE_IP - IP address of the RTE. Required only if RTE is used on a given test stand.
  • $FW_FILE - path to and name of the coreboot firmware file. This is usually not required when running single tests or suites, where flashing is not necessary.
  • $CONFIG - platform config - see the platform-configs directory for available configurations.
  • $TEST_MODULE - name of the test module (i.e. dasharo-compatibility),
  • $TEST_SUITE - name of the test suite (i.e. uefi-shell.robot),
  • $TEST_CASE_ID - ID of the requested to run test case (i.e. CBP001.001*). Note that after test case ID asterisk should be added, if you do not wish to provide the full test name here.

You can also run tests with -v snipeit:no in order to skip checking whether the platform is available on snipeit and fetching data from the asset page. By default, this is enabled. Mind that if you choose to skip you may need to provide the following parameters:

  • $SONOFF_IP - IP of the Sonoff device. Required if the DUT uses Sonoff for power control.
  • $PIKVM_IP - IP of PiKVM. Required if the DUT's connection method is PiKVM.

The command below is an example of how to run tests without using SnipeIT on a platform that uses both Sonoff and PiKVM:

robot -L TRACE -v snipeit:no -v rte_ip:$RTE_IP -v config:$CONFIG \
-v device_ip:$DEVICE_IP -v sonoff_ip:$SONOFF_IP -v pikvm_ip:$PIKVM_IP \
$TEST_MODULE

Running tests via wrapper

Test can be run directly via robot command, but also via the run.sh wrapper:

DEVICE_IP=$DEVICE_IP RTE_IP=$RTE_IP CONFIG=$CONFIG ./scripts/run.sh $TEST_SUITE

Running tests without snipeit requires additional variables:

DEVICE_IP=$DEVICE_IP RTE_IP=$RTE_IP CONFIG=$CONFIG SNIPEIT_NO="y" \
SONOFF_IP=$SONOFF_IP PIKVM_IP=$PIKVM_IP
./scripts/run.sh $TEST_SUITE

Mind that SNIPEIT_NO, only need to be set, meaning that whatever value it has, it will be treated as true.

You may also specify a DIR_PREFIX when executing this wrapper script. The given prefix will be added to the beginning of the test results directory name.

Running tests with additional arguments

Any additional parameters to robot can be passed using the wrapper by giving them after a separator '--'. The arguments can be anything that robot accepts. For example: specifying the tests to perform by giving a test case ID and reducing the output verbosity:

DEVICE_IP=$DEVICE_IP RTE_IP=$RTE_IP CONFIG=$CONFIG ./scripts/run.sh $TEST_SUITE -- -t $TEST_CASE_ID --quiet

Running regression tests

Regression tests involve running all OSFV tests supported by the given platform. The support for certain tests is indicated by the flags in the platform config file.

FW_FILE=$FW_FILE DEVICE_IP=$DEVICE_IP RTE_IP=$RTE_IP CONFIG=$CONFIG ./scripts/regression.sh

Running regression tests without snipeit works the same way as running regular tests.

Running regression tests with additional arguments

Giving additional arguments to robot can be done in the same way as in run.sh. Example: running only minimal regression tests with given test ID and reduced verbosity:

FW_FILE=$FW_FILE DEVICE_IP=$DEVICE_IP RTE_IP=$RTE_IP CONFIG=$CONFIG ./scripts/regression.sh -- --include "minimal-regression" -t "BMM*" --quiet

Basic Platform Setup

The test suite at util/basic-platform-setup.robot is supposed to check, or if possible ensure, that the platform is prepared for performing tests. The suite should be run at least once to make sure the platform is good to go, and can be used to verify if everything works fine.

The scripts/regression.sh wrapper script runs this test suite automatically before the Dasharo test modules. This behavior can be turned off by setting the NO_SETUP environment variable to any value.

Checking Robot Framework syntax before committing

Before pushing changes to the Open Source Firmware Remote Test Environment repository, it's recommended to run:

pre-commit run --all-files

This command checks the code for syntax and style issues to ensure its integrity before pushing to the remote repository.

Useful refactoring tools

git-cliff - Automating changelog generation

The OSFV uses git-cliff to automate the generation of changelogs based on commit messages, following the Conventional Commits specification. git-cliff helps maintain a clear history of changes by categorizing them into sections.

git-cliff is already included in the project's dependencies, so it will be installed automatically when setting up the environment.

The configuration file cliff.toml is located in the repository and defines the rules for how commit messages are grouped in the changelog.

Generating changelogs

To generate a changelog for a specific tag (e.g., v0.2.0), run the following command:

git cliff --tag v0.2.0 > CHANGELOG_NAME.md

This command generates a changelog for all commits from the previous tag to v0.2.0 and saves it to a CHANGELOG_NAME.md file.

Example usage

You are also able to generate a changelog for a specific range of commits between two tags. For example:

git cliff --range v0.1.0..v0.2.0 > CHANGELOG_v0.2.0.md

Customizing change categories

Commit messages are grouped based on the rules defined in the cliff.toml file. To adjust these rules, you can modify the file to add custom commit categories or tweak existing patterns.

reuse - Automating license compliance

To ensure the project complies with licensing requirements, OSFV uses the reuse tool. This tool helps automate the process of adding license headers and ensures all files in the repository are compliant with SPDX license standards.

reuse is already included in the projects dependencies, so it will be automatically installed when setting up the environment.

Adding license headers

After adding new files to the repository, ensure they have proper license headers. You can do this manually or automate the process using reuse.

Some files already have rules inside REUSE.toml, therefore, there is no need to add a license for them. You can check whether your files need a license to be specified by running reuse lint.

If your file needs a custom license, but it is already included in some rule in REUSE.toml - you can still add a separate .license file or a license header for it. Just make sure that the rule that your file is subject to has a precedence field set to closest.

Here are some examples:

  1. For files that support comments (e.g., .py, .sh):

    To add license headers to files like Python scripts, use the following command:

    reuse annotate --copyright="3mdeb <contact@3mdeb.com>" --license="Apache-2.0" <file.py>
    
  2. For files that dont support comments (e.g., binary files):

    For files that cannot contain comment-based license headers (such as .pem or .bin files), add a .license file next to them:

    reuse annotate --force-dot-license <file.bin>
    
  3. Adding license headers in bulk:

    If you want to add license headers to multiple files at once, you can use the find command. For example, to add headers to all .sh files:

    find . -type f -name "*.sh" -exec reuse annotate --copyright="3mdeb <contact@3mdeb.com>" --license="Apache-2.0" {} \;
    

Checking license compliance

After adding or modifying files, before releasing a new version of the project, run the reuse lint tool to check if all files are compliant with the license requirements:

reuse lint

This command will generate a report indicating any files missing proper license headers or other licensing issues. Based on this report, you can make the necessary corrections. Example workflow:

  1. Add new files or make changes to existing ones.
  2. use reuse annotate to add license headers to the new files.
  3. Run reuse lint to ensure the project complyes with licensing requirements.
  4. Address any issues reported by the tool.
  5. Commit the changes and prepare the release.

OSFV Stability Checks

OSFV evolves quickly and a lot of changes that often break tests in some corner cases are being added. Due to that the releases of OSFV were stopped for a couple months. In order to restore the releases and work towards improving the reliability and reducing fail rate caused by errors in the testing environment, regression tests of most OSFV test suites on multiple supported devices will be run to verify how many tests pass "Out of the box", and without any kind of maintenance.

osfv_stability_run.py

scripts/ci/osfv_stability_run.py is used to run the test scope defined in scripts/ci/regression-scope/configs/release_tests_suite_list_minimal.txt on devices from scripts/ci/regression-scope/configs/release_tests_devices.txt, more precisely defined in scripts/ci/regression-scope/devices/. It reuses the system used for automatic CI runs on PRs.

The osfv_stability_run.py script will try to run the whole test scope on all supported devices 2 times and wait until they're free for check-out on Snipe-IT. It can easily take multiple hours, so always make sure to run it on a stable device that always has the connection to the lab network.

Use LOGS_DIR env variable to redirect logs to NFS for future reference: export LOGS_DIR=/srv/nfs/logs/osfv_stability/ci_logs

Use MANUAL_TESTS_LIST env var to select a list of tests to run, e.g. whole OSFV: export MANUAL_TESTS_LIST="scripts/ci/regression-scope/configs/release_tests_suite_list_minimal.txt"

Use DEVICES env var to configure list of devices to run on: export DEVICES="scripts/ci/regression-scope/configs/release_tests_devices.txt"

osfv_stability_reports.py

After the results are created, use scripts/ci/osfv_stability_reports.py to create a summary of all the runs. It can take a couple minutes to parse all that logs.

Use LOGS_DIR env var to direct the parser to the directory with logs. E.g. The NFS with all the historic official runs on OSFV releases. export LOGS_DIR=/srv/nfs/logs/osfv_stability/ci_logs

Use --json option to format the output in json for easy processing ./scripts/ci/osfv_stability_reports.py --json > reports.json

Generating documentation

Keywords documentation (Develop) deploy status: Build
Status

Documentation in the form of auto-generated html documents can be created using libdoc and testdoc.

Note: you should be in your python virtual environment. If you haven't created any, please refer to Getting Started

To generate a document for a resource file containing keywords, use these commands:

$(venv) libdoc keywords.robot keywords.html

Or in more general form:

$(venv) libdoc <file-with-keywords> <output filename>

The output file can be opened in any web-browser like so:

$ firefox keywords.html

Or use the provided create-docs.sh script, which automatically concatenates all of the keyword-containing libraries from lib/ directory with keywords.robot, and generates one big html file containing all the keywords within this repo.

$(venv) ./scripts/create-docs.sh
Documentation generated and saved as ./docs/index.html
$ firefox ./docs/index.html

The resulting file can be opened in any web-browser:

$ firefox docs/index.html

To generate documentation regarding a specific test, testdoc has to be used, for example if we want documentation regarding the dasharo-compatibility/dasharo-tools-suite.robot test, these commands would need to be executed:

$ python3 robot.testdoc dasharo-compatibility/dasharo-tools-suite.robot test.html
$ firefox test.html

This website shows the current state of all keywords from all libraries as they appear right now on the develop branch. It works by utilizing a workflow, so remember that local changes that are made won't show up there, until they are pushed to the develop branch.

Additional documents

  • Adding new platforms - Instructions for adding support for new platforms
  • Adding and naming test cases - Instructions for adding new test cases and (re-)assigning IDs
  • Contributing - Instructions for first-time contributors
  • Raptor CS Talos II - Documentation specific to the Raptor Computing Systems Talos II mainboard
  • QEMU - Documentation for running tests in QEMU
  • NovaCustom - Documentation for running tests on NovaCustom laptops
  • Config parser - Instructions for the scripts/config-parser.py utility for parsing coreboot config files into .robot platform configs for OSFV
S
Description
No description provided
Readme Apache-2.0
16 MiB
Languages
RobotFramework 90.7%
Python 6.6%
Shell 2.6%