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> commit1c9d25621fAuthor: 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> commitfe73d19debAuthor: 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> commit2e517d8a46Author: 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> commite11604b03aAuthor: 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> commitb9fb65a212Author: 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> commit9d2f1c6e64Merge:ac35515f21c62f6e7283Author: 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 commitc62f6e7283Merge:a8a11ed08eac35515f21Author: 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> commita8a11ed08eAuthor: 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> commitd1f032a006Author: 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> commitcd3c48cf53Author: 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> commit23334fa5c9Author: 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> commit89be9ac5b8Author: 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> commit5862e59fe0Author: 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> commit9b2f3dd458Author: 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> commit42197f4b4dAuthor: 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> commitc025d2a2a4Author: 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> commit7f2743c744Author: 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> commit1ea7418873Author: 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> commit5dc73bf952Author: 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> commitd28043c8dfAuthor: 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> commitfd6c5030d5Author: 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> commit813e27fe1cAuthor: 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> commit8433e4fa3aAuthor: 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> commit4c7fbb3181Author: 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> commit0059a2c65aAuthor: 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> commitd23fe71cd3Author: 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> commit03c100ef32Author: 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> commita71088123fAuthor: 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> commit64a2212ef8Author: 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> commitb534fb4461Author: 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> commit9d77293ff3Author: 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> commita696e896f9Author: 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> commitae8e33eedbAuthor: 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> commit37daf5a624Author: 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> commite182f312fcAuthor: 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> commit51d341c107Author: 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> commitcb7e258cc2Author: 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> commit0e19931887Author: 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> commitc47d9a8358Author: 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> commit3b11971f16Author: 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> commitd860093340Author: 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> commit951b42230bAuthor: 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> commit82bff0f0c2Author: 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> commitb065131117Author: 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> commit2c21040937Author: 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> commit468c722fcaAuthor: 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> commit5df4832616Author: 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> commit57a10e20ffAuthor: 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> commit201c4b231aAuthor: 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> commite6ed2a1adfAuthor: 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> commit4327625702Author: 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> commit57ae4c7f56Author: 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> commit6ee3180ee9Author: 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> commitac70cd4b5eAuthor: 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> commit556c750018Author: 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> commit080a47375bAuthor: 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. commitd696e942ddAuthor: 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> commit45f892d25cAuthor: 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> commitd32f0be6d1Author: 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> commitfe86280f3cAuthor: 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> commit8c3377c627Author: 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> commit7909028153Author: 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> commitf0f79b38ebAuthor: 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> commit7c31ddcfa2Author: 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> commitfb462a29baAuthor: 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> commitda5a7d4865Author: 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> commitf4c7a10498Author: 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> commitcc4bd2981eAuthor: 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> commita30afe2d55Author: 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> commit73c3f50c4eAuthor: 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> commit870a899283Author: 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> commit12f0437d73Author: 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> commit9a8b614abbAuthor: 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> commit1841da3665Author: 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> commit79efc50191Author: 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> commita89dae5b81Author: 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> commit7961884d86Author: 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> commit68cf70bc11Author: 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> commitb75a681a80Author: 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> commite3b4f853c4Author: 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> commit738c518ca9Author: 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> commit9c375275baAuthor: 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> commit1cc26c8c8aAuthor: 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> commitc28a691773Author: 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. commit31558818c9Author: 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> commita93ad4dfc3Author: 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> commit798f414c57Author: 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> commit5112388285Author: 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> commitcd218ea212Author: 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> commit1ec4d06a06Author: 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> commit68c227185aAuthor: 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> commite1617a7bb5Author: 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> commite72ade0798Author: 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> commitb53c7638cbAuthor: 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> commit43a852d863Author: 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> commit2bc0735e7aAuthor: 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> commit6ea5a15f91Author: 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> commit91b5b8f675Author: 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> commit31d92cc5dcAuthor: 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> commitc97145ea33Author: 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> commite25474b8b0Author: 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> commit2799ff26d4Author: 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> commit2200998119Author: 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> commit6eb605d36eAuthor: 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> commit87a80967dbAuthor: 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> commitd76007a0a3Author: 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> commit4b2acd2e51Author: 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> commit7d98f4d870Author: 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> commit1eda44fda0Author: 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>
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
- Test environment overview
- Supported platforms
- Getting started
- Checking Robot Framework syntax before committing
- Useful refactoring tools
- OSFV Stability Checks
- Generating documentation
- Additional documents
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)
Current OSFV architecture
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.robotrequires 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-configsdirectory 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
- sherlock
- can detect unused keywords, and much more
- ./scripts/refactoring-state.sh
- dedicated script for this repo
- Renaming keywords
- Renaming Test Cases
- Renaming Variables
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 project’s 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:
-
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> -
For files that don’t support comments (e.g., binary files):
For files that cannot contain comment-based license headers (such as
.pemor.binfiles), add a.licensefile next to them:reuse annotate --force-dot-license <file.bin> -
Adding license headers in bulk:
If you want to add license headers to multiple files at once, you can use the
findcommand. For example, to add headers to all.shfiles: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:
- Add new files or make changes to existing ones.
- use
reuse annotateto add license headers to the new files. - Run
reuse lintto ensure the project complyes with licensing requirements. - Address any issues reported by the tool.
- 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:
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.pyutility for parsing coreboot config files into .robot platform configs for OSFV
