From b48d554abd32bc0f1ba30a63bb71de27d617b941 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Tue, 20 Feb 2024 14:08:48 +0100 Subject: [PATCH 001/416] FUNDING.yml: add Signed-off-by: Maciej Pijanowski --- FUNDING.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 FUNDING.yml diff --git a/FUNDING.yml b/FUNDING.yml new file mode 100644 index 0000000000..4e77cf822a --- /dev/null +++ b/FUNDING.yml @@ -0,0 +1,2 @@ + +open_collective: 3mdeb_com From 706e2bcee7837c2e819799e13d5548503e801f74 Mon Sep 17 00:00:00 2001 From: Artur Raglis Date: Fri, 10 May 2024 15:19:37 +0200 Subject: [PATCH 002/416] .github/ISSUE_TEMPLATE/bug_report.yml: add OSFV version field Signed-off-by: Artur Raglis --- .github/ISSUE_TEMPLATE/bug_report.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 09d28d148e..f36e3e34d6 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -23,6 +23,13 @@ body: validations: required: true + - type: input + id: tag + attributes: + label: OSFV version + description: The version of the OSFV infrastructure you're using (branch, commit) + validations: + required: true - type: textarea id: component From b89f7ca0472faec4e92c6e575c6cfc956c924f66 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Tue, 10 Dec 2024 17:13:18 +0100 Subject: [PATCH 003/416] variables.robot: add vp3210 config Signed-off-by: Wiktor Mowinski --- variables.robot | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/variables.robot b/variables.robot index d3ae0b9312..582eed2e4e 100644 --- a/variables.robot +++ b/variables.robot @@ -242,11 +242,18 @@ ${OS_UBUNTU}= ubuntu ... platform=protectli-vp3230 ... platform_vendor=protectli ... sonoff_ip=192.168.10.27 + # 3mdeb Protectli VP2430 ----------------------------------------------------- &{RTE68}= ip=192.168.10.18 ... platform=protectli-vp2430 ... platform_vendor=protectli +# Protectli VP3210 +&{RTE69}= ip=192.168.10.211 +... platform=protectli-vp3210 +... platform_vendor=protectli +... sonoff_ip=192.168.10.195 + @{RTE_LIST}= &{RTE05} ... &{RTE06} &{RTE07} &{RTE08} &{RTE09} &{RTE10} ... &{RTE11} &{RTE12} &{RTE13} &{RTE14} &{RTE15} @@ -260,7 +267,7 @@ ${OS_UBUNTU}= ubuntu ... &{RTE51} &{RTE52} &{RTE53} &{RTE54} &{RTE55} ... &{RTE56} &{RTE57} &{RTE58} &{RTE59} &{RTE60} ... &{RTE61} &{RTE62} &{RTE63} &{RTE64} &{RTE65} -... &{RTE66} &{RTE67} &{RTE68} +... &{RTE66} &{RTE67} &{RTE68} &{RTE69} # hardware database: # ----------------------------------------------------------------------------- &{HDD01}= vendor=SAMSUNG volume=500GB type=HDD_Storage @@ -502,6 +509,7 @@ ${OS_UBUNTU}= ubuntu @{CONFIG50}= &{RTE66} &{SSD18} # Borrowed from NV41PZ @{CONFIG51}= &{RTE67} &{USB11} @{CONFIG52}= &{RTE68} &{USB12} &{SSD18} +@{CONFIG53}= &{RTE69} &{USB11} @{CONFIG_LIST}= @{CONFIG01} @{CONFIG02} @{CONFIG03} @{CONFIG04} ... @{CONFIG05} @{CONFIG06} @{CONFIG08} @{CONFIG09} @@ -515,4 +523,4 @@ ${OS_UBUNTU}= ubuntu ... @{CONFIG38} @{CONFIG39} @{CONFIG40} ... @{CONFIG42} @{CONFIG43} @{CONFIG44} @{CONFIG45} ... @{CONFIG46} @{CONFIG47} @{CONFIG48} @{CONFIG49} -... @{CONFIG50} @{CONFIG51} +... @{CONFIG50} @{CONFIG51} @{CONFIG52} @{CONFIG53} From b1ca5f0c746fa460c07f5c55c6d1c937d32281cd Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Thu, 14 Nov 2024 15:36:32 +0100 Subject: [PATCH 004/416] platform-configs/include/pcengines.robot: add INTERNAL_PROGRAMMER_CHIPNAME Originally proposed in: https://github.com/Dasharo/open-source-firmware-validation/pull/493 Signed-off-by: Maciej Pijanowski --- platform-configs/include/pcengines.robot | 1 + 1 file changed, 1 insertion(+) diff --git a/platform-configs/include/pcengines.robot b/platform-configs/include/pcengines.robot index 5d5dcb7929..29c9b9991e 100644 --- a/platform-configs/include/pcengines.robot +++ b/platform-configs/include/pcengines.robot @@ -38,6 +38,7 @@ ${DMIDECODE_VENDOR}= 3mdeb ${DMIDECODE_FAMILY}= N/A # TODO ${DMIDECODE_TYPE}= Desktop +${INTERNAL_PROGRAMMER_CHIPNAME}= W25Q64BV/W25Q64CV/W25Q64FV # Supported test environments ${TESTS_IN_FIRMWARE_SUPPORT}= ${TRUE} From fee905a2c5baf7581ee3539acf12db12a171cd6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 3 Dec 2024 11:43:55 +0100 Subject: [PATCH 005/416] options/uefi-setup-menu: Skip non-option lines when looking for options MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/options/uefi-setup-menu.robot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/options/uefi-setup-menu.robot b/lib/options/uefi-setup-menu.robot index 0a5d056ee0..e95048bba9 100644 --- a/lib/options/uefi-setup-menu.robot +++ b/lib/options/uefi-setup-menu.robot @@ -31,6 +31,7 @@ Set UEFI Option ${menu}= Enter Submenu From Snapshot And Return Construction ... ${menu} ... ${option_path[${i}]} + ... ${TRUE} END Set Option State ${menu} ${option_path[${path_len}-1]} ${value} @@ -57,6 +58,7 @@ Get UEFI Option ${menu}= Enter Submenu From Snapshot And Return Construction ... ${menu} ... ${option_path[${i}]} + ... ${TRUE} END ${state}= Get Option State ${menu} ${option_path[${path_len}-1]} From ddeb95f047f017160068008ac5ee9d7f44010c75 Mon Sep 17 00:00:00 2001 From: Eduard Kaverinskyi Date: Tue, 17 Dec 2024 11:38:51 +0100 Subject: [PATCH 006/416] dts/dts-323.robot: add pcengines_seabios tag (#636) Signed-off-by: Eduard Kaverinskyi --- dts/dts-e2e.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dts/dts-e2e.robot b/dts/dts-e2e.robot index bb623cd3ac..1982653537 100644 --- a/dts/dts-e2e.robot +++ b/dts/dts-e2e.robot @@ -982,7 +982,7 @@ E2E005.003 PC Engines DPP initial deployment (legacy -> Coreboot + SeaBIOS) - wi [Documentation] Verify DPP (coreboot + SeaBIOS) initial deployment logic ... on PC Engines. We start from legacy firmware and insert correct DPP keys ... for UEFI variant. - [Tags] pcengines_dpp + [Tags] pcengines_seabios # 1) Get into DTS: Power On And Enter DTS Shell @@ -1008,7 +1008,7 @@ E2E005.004 PC Engines DPP initial deployment (legacy -> Coreboot + SeaBIOS) - wi [Documentation] Verify DPP (coreboot + SeaBIOS) initial deployment logic ... on PC Engines. We start from legacy firmware and insert correct DPP ... keys for UEFI variant. - [Tags] pcengines_dpp + [Tags] pcengines_seabios # 1) Get into DTS: Power On And Enter DTS Shell From 3e88bd0eea71c04c4ae7f1f1636dcd0a68de9d18 Mon Sep 17 00:00:00 2001 From: Danik Klimuk <109155473+DaniilKl@users.noreply.github.com> Date: Tue, 17 Dec 2024 18:49:05 +0100 Subject: [PATCH 007/416] Add gitcliff and reuse fix (#633) * add git-cliff and reuse Files that do not support comments or that have problems adding comments at the first line should have a separate .license file or a rule inside REUSE.toml (in case there are a lot of such files). .robot files generally support comments at the first line, but robotidy does not want comments to start at first line. It wants so, that everything that is located before first section should be placed inside "Comments" section. But reuse does not support license headers in any sections. So reuse and robotidy have a conflict here. Because there are a lot of .robot files, I have decided to add them into REUSE.toml instead of separate .license files or robotidy exceptions. Signed-off-by: Daniil Klimuk * add LICENSES and license headers to files Files that does not have license headers have either .license file or a rule inside REUSE.toml. Signed-off-by: Daniil Klimuk * .github: ISSUE_TEMPLATE: fix markdownlint Signed-off-by: Daniil Klimuk * README: add git-cliff and reuse Signed-off-by: Daniil Klimuk --------- Signed-off-by: Daniil Klimuk --- .codespellrc | 4 + .codespellx | 4 + .conform.yaml | 4 + .github/ISSUE_TEMPLATE/bug_report.yml | 4 + .github/ISSUE_TEMPLATE/config.yml | 4 + .github/ISSUE_TEMPLATE/feature_request.yml | 4 + .../question-or-support-request.md | 8 ++ .github/ISSUE_TEMPLATE/task.md | 8 ++ .github/workflows/auto-docs.yml | 4 + .github/workflows/qemu-self-test.yml | 4 + .github/workflows/smoke.yml | 4 + .gitignore | 4 + .gitmodules | 4 + .markdownlint.yaml | 4 + .pre-commit-config.yaml | 13 +- .robocop | 4 + .robotidy | 4 + .yamllint | 4 + CHANGELOG.md | 6 + FUNDING.yml | 3 + LICENSES/Apache-2.0.txt | 73 ++++++++++ NOTICE | 3 + README.md | 129 +++++++++++++++++- REUSE.toml | 11 ++ cliff.toml | 92 +++++++++++++ .../CapsuleApp.efi.license | 3 + .../capsule-update-files/romhole.license | 3 + docs/README.md | 6 + docs/adding-new-platforms.md | 6 + docs/config-parser.md | 6 + docs/contributing.md | 6 + docs/dts-tests.md | 6 + docs/novacustom.md | 6 + docs/qemu.md | 6 + docs/raptor-talos-2.md | 6 + docs/results.md | 6 + docs/troubleshooting.md | 6 + docs/uml/power-state-v0.1.0.puml | 4 + docs/uml/power-supply-v0.1.0.puml | 4 + docs/uml/serial-v0.1.0.puml | 4 + docs/windows_hlk_setup.md | 6 + drive_letters.ps1 | 4 + get_results_from_logs.py | 4 + keys-and-keywords/totp.py | 4 + lib/QemuMonitor.py | 4 + lib/bios/menus.py | 4 + platform-configs/fan-curve-config.yaml | 4 + requirements-openbmc.txt | 6 + requirements.txt | 6 + robocop.toml | 4 + scripts/capsules/capsule_update_tests.sh | 4 + scripts/capsules/sign.p12.license | 3 + scripts/check-unused-variables.sh | 4 + scripts/ci/ipxe-run.sh | 4 + scripts/ci/qemu-run.sh | 4 + scripts/ci/qemu-self-test.sh | 4 + scripts/ci/smoke.sh | 4 + scripts/config_parser.py | 4 + scripts/create-docs.py | 4 + scripts/create-docs.sh | 4 + scripts/create_platform_config.py | 4 + scripts/get-robot-variables.sh | 4 + scripts/lib/robot.sh | 4 + scripts/osfv_results.py | 4 + scripts/refactoring-state.sh | 4 + scripts/regression-qemu.sh | 4 + scripts/regression.sh | 4 + scripts/rename-keyword.sh | 4 + scripts/run.sh | 4 + scripts/stats.py | 3 + stress-test-windows.ps1 | 4 + trenchboot/README.md | 6 + 72 files changed, 613 insertions(+), 5 deletions(-) create mode 100644 LICENSES/Apache-2.0.txt create mode 100644 REUSE.toml create mode 100644 cliff.toml create mode 100644 dasharo-stability/capsule-update-files/CapsuleApp.efi.license create mode 100644 dasharo-stability/capsule-update-files/romhole.license create mode 100644 scripts/capsules/sign.p12.license diff --git a/.codespellrc b/.codespellrc index bc16334e79..a6de476b3a 100644 --- a/.codespellrc +++ b/.codespellrc @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + [codespell] exclude-file = .codespellx ignore-words-list = "FPT,FTP,fpt,ftp,checkin,Checkin" diff --git a/.codespellx b/.codespellx index b52f223499..d11bcdf3ad 100644 --- a/.codespellx +++ b/.codespellx @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + -device hda-duplex,audiodev=hda \ -audiodev pa,id=hda,server=${PULSE_SERVER},out.frequency=44100 \ ${DEVICE_AUDIO1}= HDA Intel PCH diff --git a/.conform.yaml b/.conform.yaml index f96e4e0940..9021b9a5fc 100644 --- a/.conform.yaml +++ b/.conform.yaml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + --- policies: - type: commit diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index f36e3e34d6..3162d564cf 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + name: Bug report description: Report a problem in existing functionality, including documentation and infrastructure. labels: ["bug"] diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 3ba13e0cec..72dc275e4e 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1 +1,5 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + blank_issues_enabled: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index bd6ec126ad..9b9386b067 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + name: Feature request description: Suggest a new feature or an improvement of existing functionality. labels: ["enhancement"] diff --git a/.github/ISSUE_TEMPLATE/question-or-support-request.md b/.github/ISSUE_TEMPLATE/question-or-support-request.md index ea6a1b5a47..81fe3bce37 100644 --- a/.github/ISSUE_TEMPLATE/question-or-support-request.md +++ b/.github/ISSUE_TEMPLATE/question-or-support-request.md @@ -1,3 +1,11 @@ + + + + --- name: Question or Support Request about: Ask a question or request support. diff --git a/.github/ISSUE_TEMPLATE/task.md b/.github/ISSUE_TEMPLATE/task.md index 7c0b775e92..a63d5efc87 100644 --- a/.github/ISSUE_TEMPLATE/task.md +++ b/.github/ISSUE_TEMPLATE/task.md @@ -1,3 +1,11 @@ + + + + --- name: Task about: Anything actionable that doesn't qualify as a bug or feature. diff --git a/.github/workflows/auto-docs.yml b/.github/workflows/auto-docs.yml index 269faa1850..3a95e69f73 100644 --- a/.github/workflows/auto-docs.yml +++ b/.github/workflows/auto-docs.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + name: Auto Docs on: diff --git a/.github/workflows/qemu-self-test.yml b/.github/workflows/qemu-self-test.yml index d53ee6fca1..7b676c0166 100644 --- a/.github/workflows/qemu-self-test.yml +++ b/.github/workflows/qemu-self-test.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + name: Keywords self-tests with QEMU on: [push, pull_request] diff --git a/.github/workflows/smoke.yml b/.github/workflows/smoke.yml index 0e2b859f4a..4f3c0bcc8f 100644 --- a/.github/workflows/smoke.yml +++ b/.github/workflows/smoke.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + name: Smoke tests on selected platforms on: [push, pull_request] diff --git a/.gitignore b/.gitignore index 32306612ea..29188558ee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + robot-venv robotframework minicom.cap diff --git a/.gitmodules b/.gitmodules index b2e81909c3..b22a56198c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + [submodule "rtectrl-rest-api"] path = rtectrl-rest-api url = https://github.com/3mdeb/rtectrl-rest-api.git diff --git a/.markdownlint.yaml b/.markdownlint.yaml index a17a36bbda..433e92e3ac 100644 --- a/.markdownlint.yaml +++ b/.markdownlint.yaml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + --- # Documentation: # https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7b05282a3c..8bec785ffe 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + --- default_stages: [pre-commit] @@ -42,7 +46,7 @@ repos: - repo: https://github.com/koalaman/shellcheck-precommit rev: v0.10.0 hooks: - - id: shellcheck + - id: shellcheck args: ["--severity=warning"] - repo: https://github.com/pycqa/isort @@ -54,7 +58,7 @@ repos: - repo: https://github.com/psf/black rev: 24.10.0 hooks: - - id: black + - id: black - repo: https://github.com/MarketSquare/robotframework-tidy rev: 4.14.0 @@ -66,6 +70,11 @@ repos: hooks: - id: robocop + - repo: https://github.com/fsfe/reuse-tool + rev: v5.0.2 + hooks: + - id: reuse + - repo: local hooks: - id: platform-configs-var-check diff --git a/.robocop b/.robocop index 17e5dea329..9df290144e 100644 --- a/.robocop +++ b/.robocop @@ -1 +1,5 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + --config robocop.toml diff --git a/.robotidy b/.robotidy index 18764accd8..f494c2f5d1 100644 --- a/.robotidy +++ b/.robotidy @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + spacecount = 4 indent = 4 continuation-indent = 4 diff --git a/.yamllint b/.yamllint index 1a23bc1c9b..e9e6644ccd 100644 --- a/.yamllint +++ b/.yamllint @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + --- extends: default diff --git a/CHANGELOG.md b/CHANGELOG.md index 32e7cff944..1a5ae27528 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ + + # Changelog All notable changes to this project will be documented in this file. diff --git a/FUNDING.yml b/FUNDING.yml index 4e77cf822a..4e87310597 100644 --- a/FUNDING.yml +++ b/FUNDING.yml @@ -1,2 +1,5 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 open_collective: 3mdeb_com diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt new file mode 100644 index 0000000000..137069b823 --- /dev/null +++ b/LICENSES/Apache-2.0.txt @@ -0,0 +1,73 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/NOTICE b/NOTICE index 6aa797a27e..28e7cdb082 100644 --- a/NOTICE +++ b/NOTICE @@ -1,3 +1,6 @@ +SPDX-FileCopyrightText: 2023 3mdeb +SPDX-License-Identifier: Apache-2.0 + Open Source Firmware Validation Copyright 2023 3mdeb diff --git a/README.md b/README.md index 94d42caadf..e0f0ba5cf2 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ + + # Open Source Firmware Remote Test Environment The following repository contains set of tests and other features to conduct @@ -287,9 +293,126 @@ FW_FILE=$FW_FILE DEVICE_IP=$DEVICE_IP RTE_IP=$RTE_IP CONFIG=$CONFIG ./scripts/re * [Renaming Test Cases](https://robotidy.readthedocs.io/en/stable/transformers/RenameTestCases.html) * [Renaming Variables](https://robotidy.readthedocs.io/en/stable/transformers/RenameVariables.html) +## git-cliff - Automating changelog generation + +The OSFV uses `git-cliff` to automate the generation of changelogs based on +commit messages, following the [Conventional +Commits](https://www.conventionalcommits.org/en/v1.0.0/) 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](#initializing-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: + +```bash +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: + +```bash +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](#initializing-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: + + ```bash + reuse annotate --copyright="3mdeb " --license="Apache-2.0" + ``` + +2. **For files that don’t 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: + + ```bash + reuse annotate --force-dot-license + ``` + +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: + + ```bash + find . -type f -name "*.sh" -exec reuse annotate --copyright="3mdeb " --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: + +```bash +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. + ## Generating documentation -Keywords documentation (Develop) deploy status: ![Build Status](https://github.com/Dasharo/open-source-firmware-validation/actions/workflows/pages/pages-build-deployment/badge.svg) +Keywords documentation (Develop) deploy status: ![Build +Status](https://github.com/Dasharo/open-source-firmware-validation/actions/workflows/pages/pages-build-deployment/badge.svg) Documentation in the form of auto-generated html documents can be created using `libdoc` and `testdoc`. @@ -346,8 +469,8 @@ $ firefox test.html [This website](https://dasharo.github.io/open-source-firmware-validation/) 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. +changes that are made won't show up there, until they are pushed to the +`develop` branch. ## Additional documents diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 0000000000..0ee1a454bd --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +version = 1 + +[[annotations]] +path = ["**/*.robot", "**/*.png", "**/*.svg", "**/*.pem", "**/*.json"] +precedence = "closest" +SPDX-FileCopyrightText = "2024 3mdeb " +SPDX-License-Identifier = "Apache-2.0" diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 0000000000..391575326b --- /dev/null +++ b/cliff.toml @@ -0,0 +1,92 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +[changelog] +# template for header +header = """ +# Firmware Validation Changelog\n +All notable changes to this project will be documented in this file.\n +""" +# template for body +body = """ +{% if version %}\ + ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} +{% else %}\ + ## [unreleased] +{% endif %}\ +{% if previous %}\ + {% if previous.commit_id %} + {{ previous.commit_id | truncate(length=7, end="") }}...\ + {{ commit_id | truncate(length=7, end="") }} + {% endif %}\ +{% endif %}\ +{% for group, commits in commits | group_by(attribute="group") %} + ### {{ group | upper_first }} + {% for commit in commits %} + - {{ commit.message | upper_first }} ({{ commit.id | truncate(length=7, end="") }})\ + {% endfor %} +{% endfor %}\n +""" +# template for footer +footer = """ +{% for release in releases -%} + {% if release.version -%} + {% if release.previous.version -%} + [{{ release.version | trim_start_matches(pat="v") }}]: \ + https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}\ + /compare/{{ release.previous.version }}..{{ release.version }} + {% endif -%} + {% else -%} + [unreleased]: https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}\ + /compare/{{ release.previous.version }}..HEAD + {% endif -%} +{% endfor %} + +""" + +trim = true + +[git] +# This specifies a list of patterns that preprocesses commit messages before they are categorized. +commit_preprocessors = [ + { pattern = ']*>', replace = "$1"} +] +# Parse the commits based on https://www.conventionalcommits.org. This means the tool expects commit messages to follow the Conventional Commits specification. +conventional_commits = true +# This filters out commits that do not follow the conventional commit format, ensuring only structured commit messages are processed. +filter_unconventional = true +# The entire commit message is treated as a single unit. +split_commits = false +# Defines regular expressions used to match and categorize commit messages. Each parser looks for specific patterns in the commit messages and assigns the message to a particular group. +commit_parsers = [ + { message = "^fix", group = "Fixed" }, + { message = "^.*: add", group = "Added" }, + { message = "^.*: support", group = "Added" }, + { message = "^.*: remove", group = "Removed" }, + { message = "^.*: delete", group = "Removed" }, + { message = "^test", group = "Fixed" }, + { message = "^.*: fix", group = "Fixed" }, + { message = "^.*", group = "Changed" }, + { message = "^config", group = "Configuration" }, + { message = "^update", group = "Updated" }, + { message = "^refactor", group = "Refactoring" }, + { message = "^doc|readme", group = "Documentation" }, +] +# This protects commits that introduce breaking changes from being filtered out by the parsers. +protect_breaking_commits = false +# This will exclude any commit that doesn't match the defined parsers, ensuring only grouped commits are included in the changelog. +filter_commits = false +# Regex pattern that defines how to match Git tags. +tag_pattern = "v[0-9].*" +# These define tags to skip / ignore during changelog generation. +skip_tags = "v0.1.0-beta.1" +ignore_tags = "" +# The tool sorts the tags chronologically. +topo_order = false +# Defines the order in which commits within section are displayed. +sort_commits = "oldest" + +[remote.github] +owner="Dasharo" +repo="open-source-firmware-validation" diff --git a/dasharo-stability/capsule-update-files/CapsuleApp.efi.license b/dasharo-stability/capsule-update-files/CapsuleApp.efi.license new file mode 100644 index 0000000000..bdc2882bd8 --- /dev/null +++ b/dasharo-stability/capsule-update-files/CapsuleApp.efi.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 3mdeb + +SPDX-License-Identifier: Apache-2.0 diff --git a/dasharo-stability/capsule-update-files/romhole.license b/dasharo-stability/capsule-update-files/romhole.license new file mode 100644 index 0000000000..bdc2882bd8 --- /dev/null +++ b/dasharo-stability/capsule-update-files/romhole.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 3mdeb + +SPDX-License-Identifier: Apache-2.0 diff --git a/docs/README.md b/docs/README.md index 2ce9892574..e4b49a4c55 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,3 +1,9 @@ + + # OSFV documentation README Introducing new platform to the Open Source Firmware Validation infrastructure diff --git a/docs/adding-new-platforms.md b/docs/adding-new-platforms.md index d567beb4c8..bec2b2cab7 100644 --- a/docs/adding-new-platforms.md +++ b/docs/adding-new-platforms.md @@ -1,3 +1,9 @@ + + # Adding new platforms Depending on what type of platform you're adding, the instructions here will diff --git a/docs/config-parser.md b/docs/config-parser.md index 4f45676537..9880c7a07c 100644 --- a/docs/config-parser.md +++ b/docs/config-parser.md @@ -1,3 +1,9 @@ + + # Config parser ## Intro diff --git a/docs/contributing.md b/docs/contributing.md index 1a031859c3..bb8c65276e 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -1,3 +1,9 @@ + + # Contributing ## Code diff --git a/docs/dts-tests.md b/docs/dts-tests.md index bfdebc2323..3af527b57b 100644 --- a/docs/dts-tests.md +++ b/docs/dts-tests.md @@ -1,3 +1,9 @@ + + # DTS tests This document describes current DTS tests coverage. Tests planned: diff --git a/docs/novacustom.md b/docs/novacustom.md index b6b47f2b2f..58f210a53b 100644 --- a/docs/novacustom.md +++ b/docs/novacustom.md @@ -1,3 +1,9 @@ + + # NovaCustom laptop workflow > Make sure to proceed with [Getting started section](../README.md#getting-started) diff --git a/docs/qemu.md b/docs/qemu.md index 5baf4e105f..c964ee520c 100644 --- a/docs/qemu.md +++ b/docs/qemu.md @@ -1,3 +1,9 @@ + + # QEMU workflow > Make sure to proceed with [Getting started section](../README.md#getting-started) diff --git a/docs/raptor-talos-2.md b/docs/raptor-talos-2.md index a1af8a930d..705b261f10 100644 --- a/docs/raptor-talos-2.md +++ b/docs/raptor-talos-2.md @@ -1,3 +1,9 @@ + + # RCS Talos II platform When running tests on Talos II platform use the following commands: diff --git a/docs/results.md b/docs/results.md index 2d91c97ff9..46121ba80b 100644 --- a/docs/results.md +++ b/docs/results.md @@ -1,3 +1,9 @@ + + # OSFV test results ## Publishing into spreadsheet diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 11762525f0..ed0b4f6cb6 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -1,3 +1,9 @@ + + # Troubleshooting ## Tests fail on 'Suite Setup' - 'To Boot Directly' not found diff --git a/docs/uml/power-state-v0.1.0.puml b/docs/uml/power-state-v0.1.0.puml index 31f7177da6..542c806c36 100644 --- a/docs/uml/power-state-v0.1.0.puml +++ b/docs/uml/power-state-v0.1.0.puml @@ -1,3 +1,7 @@ +' SPDX-FileCopyrightText: 2024 3mdeb +' +' SPDX-License-Identifier: Apache-2.0 + @startuml title OSFV Power state requirements - v0.1.0\nHigh priority (tells us whether we can implement some form of automatic power control) diff --git a/docs/uml/power-supply-v0.1.0.puml b/docs/uml/power-supply-v0.1.0.puml index d472fe181f..ac04be09bb 100644 --- a/docs/uml/power-supply-v0.1.0.puml +++ b/docs/uml/power-supply-v0.1.0.puml @@ -1,3 +1,7 @@ +' SPDX-FileCopyrightText: 2024 3mdeb +' +' SPDX-License-Identifier: Apache-2.0 + @startuml title OSFV Power supply requirements - v0.1.0\nLow priority (tells us how we need to implement the connections, but does not limit the test scope) diff --git a/docs/uml/serial-v0.1.0.puml b/docs/uml/serial-v0.1.0.puml index 9e6116ccb9..1fafd67a24 100644 --- a/docs/uml/serial-v0.1.0.puml +++ b/docs/uml/serial-v0.1.0.puml @@ -1,3 +1,7 @@ +' SPDX-FileCopyrightText: 2024 3mdeb +' +' SPDX-License-Identifier: Apache-2.0 + @startuml title OSFV serial requirements - v0.1.0\nHigh priority (tells us whether we can execute any firmware-level tests at all, or just OS-level tests) diff --git a/docs/windows_hlk_setup.md b/docs/windows_hlk_setup.md index 6ee5f4547c..17d2b4a101 100644 --- a/docs/windows_hlk_setup.md +++ b/docs/windows_hlk_setup.md @@ -1,3 +1,9 @@ + + # Windows HLK - overview The Windows HLK (Hardware Lab Kit) is a test framework used to test hardware diff --git a/drive_letters.ps1 b/drive_letters.ps1 index 4eece23f29..0fc3b2eabf 100644 --- a/drive_letters.ps1 +++ b/drive_letters.ps1 @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + Get-WmiObject -Query "SELECT * FROM Win32_DiskDrive" | ForEach-Object { $disk = $_ $partitions = "ASSOCIATORS OF {Win32_DiskDrive.DeviceID='$($disk.DeviceID)'} WHERE AssocClass = Win32_DiskDriveToDiskPartition" diff --git a/get_results_from_logs.py b/get_results_from_logs.py index a17ca7b75c..9866bb4ac9 100644 --- a/get_results_from_logs.py +++ b/get_results_from_logs.py @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + import os import sys import xml.etree.ElementTree as ET diff --git a/keys-and-keywords/totp.py b/keys-and-keywords/totp.py index a14f0782da..974708e0ca 100644 --- a/keys-and-keywords/totp.py +++ b/keys-and-keywords/totp.py @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + import pyotp diff --git a/lib/QemuMonitor.py b/lib/QemuMonitor.py index bfa09056a6..7f7e4a4084 100644 --- a/lib/QemuMonitor.py +++ b/lib/QemuMonitor.py @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + import json import os import socket diff --git a/lib/bios/menus.py b/lib/bios/menus.py index 8008419fc5..7cf76fec40 100644 --- a/lib/bios/menus.py +++ b/lib/bios/menus.py @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + import re from robot.api.deco import keyword diff --git a/platform-configs/fan-curve-config.yaml b/platform-configs/fan-curve-config.yaml index 013a216820..bf9dbebe07 100644 --- a/platform-configs/fan-curve-config.yaml +++ b/platform-configs/fan-curve-config.yaml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + temperature_curve_silent: - range: [0, 65] evaluation: [20, 25] diff --git a/requirements-openbmc.txt b/requirements-openbmc.txt index 52fc8ab7d4..38d7432dd0 100644 --- a/requirements-openbmc.txt +++ b/requirements-openbmc.txt @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + git+https://github.com/3mdeb/robotframework robotframework-sshlibrary==3.5.1 robotframework-requests==0.9.4 @@ -8,8 +12,10 @@ oauth2client PyOpenSSL wakeonlan cryptography +git-cliff==2.6.1 robotframework-httplibrary redfish +reuse==4.0.3 robotframework-scplibrary tox paramiko>=2.5.0 diff --git a/requirements.txt b/requirements.txt index c927d7a07b..9158bfc4d6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + bcrypt==4.1.2 certifi==2024.2.2 cffi==1.17.1 @@ -11,6 +15,7 @@ distlib==0.3.8 Faker==24.11.0 filelock==3.13.4 greenlet==3.1.1 +git-cliff==2.6.1 gspread==3.1.0 httplib2==0.22.0 identify==2.5.36 @@ -41,6 +46,7 @@ pyte @ git+https://github.com/3mdeb/pyte@b81646ec9f754aab34ed671b3c852b01cc72bdb python-dateutil==2.9.0.post0 pytz==2024.1 PyYAML==6.0.1 +reuse==4.0.3 requests==2.31.0 rich==13.7.1 rich-click==1.7.4 diff --git a/robocop.toml b/robocop.toml index 81cfdacd27..8f4af4c2a5 100644 --- a/robocop.toml +++ b/robocop.toml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + [tool.robocop] configure = [ # TODO: add missing documentation for keywords and re-enable diff --git a/scripts/capsules/capsule_update_tests.sh b/scripts/capsules/capsule_update_tests.sh index f15710b041..cbeae6f2c2 100755 --- a/scripts/capsules/capsule_update_tests.sh +++ b/scripts/capsules/capsule_update_tests.sh @@ -1,5 +1,9 @@ #!/bin/bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + here=$(realpath "$(dirname "$0")") capsule=$(realpath "$1") diff --git a/scripts/capsules/sign.p12.license b/scripts/capsules/sign.p12.license new file mode 100644 index 0000000000..bdc2882bd8 --- /dev/null +++ b/scripts/capsules/sign.p12.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 3mdeb + +SPDX-License-Identifier: Apache-2.0 diff --git a/scripts/check-unused-variables.sh b/scripts/check-unused-variables.sh index 8997888afb..5516dec2e0 100755 --- a/scripts/check-unused-variables.sh +++ b/scripts/check-unused-variables.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + # Default value for autofix flag AUTOFIX="false" diff --git a/scripts/ci/ipxe-run.sh b/scripts/ci/ipxe-run.sh index 1d990f2ce7..57afc7a13a 100755 --- a/scripts/ci/ipxe-run.sh +++ b/scripts/ci/ipxe-run.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + if [[ $# -ne 2 ]]; then echo "Usage: $0 " exit 1 diff --git a/scripts/ci/qemu-run.sh b/scripts/ci/qemu-run.sh index 3492446425..74b2c80066 100755 --- a/scripts/ci/qemu-run.sh +++ b/scripts/ci/qemu-run.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + INIT_DIR="$(pwd)" # Optionally, accept DIR as environmental variable. If not given, use current directory. diff --git a/scripts/ci/qemu-self-test.sh b/scripts/ci/qemu-self-test.sh index 54427e3ed8..922cbd0dcf 100755 --- a/scripts/ci/qemu-self-test.sh +++ b/scripts/ci/qemu-self-test.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + # Define an array of commands commands=( "robot -L TRACE -v config:qemu-selftests -v rte_ip:127.0.0.1 -d ./logs/$(date +%Y.%m.%d_%H.%M.%S)/setup-and-boot-menus -v snipeit:no self-tests/setup-and-boot-menus.robot" diff --git a/scripts/ci/smoke.sh b/scripts/ci/smoke.sh index 945b1cec17..4a9921cb39 100755 --- a/scripts/ci/smoke.sh +++ b/scripts/ci/smoke.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "${SCRIPT_DIR}/../lib/robot.sh" diff --git a/scripts/config_parser.py b/scripts/config_parser.py index 0f91b7f239..5fad2cf62e 100755 --- a/scripts/config_parser.py +++ b/scripts/config_parser.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + import argparse import json diff --git a/scripts/create-docs.py b/scripts/create-docs.py index 095c100c68..1a97273473 100755 --- a/scripts/create-docs.py +++ b/scripts/create-docs.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + import os import re import sys diff --git a/scripts/create-docs.sh b/scripts/create-docs.sh index 9d2bbd9bd9..e43e2fffb5 100755 --- a/scripts/create-docs.sh +++ b/scripts/create-docs.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + TEMP_DIR=$(mktemp -d) FILE_NAME="$TEMP_DIR/all-keywords.robot" diff --git a/scripts/create_platform_config.py b/scripts/create_platform_config.py index f2160d01a2..abff4af556 100755 --- a/scripts/create_platform_config.py +++ b/scripts/create_platform_config.py @@ -1,5 +1,9 @@ #!/usr/bin/env python +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + import os import re import sys diff --git a/scripts/get-robot-variables.sh b/scripts/get-robot-variables.sh index 39d43dd3b3..e151ea0476 100755 --- a/scripts/get-robot-variables.sh +++ b/scripts/get-robot-variables.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + # ---Help Function--- show_help() { echo "Usage: $0 [OPTIONS]" diff --git a/scripts/lib/robot.sh b/scripts/lib/robot.sh index 7c7f973947..628ba85350 100644 --- a/scripts/lib/robot.sh +++ b/scripts/lib/robot.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + RUN_DATE="$(date +%Y_%m_%d_%H_%M_%S)" # Trap SIGINT (Ctrl+C) diff --git a/scripts/osfv_results.py b/scripts/osfv_results.py index 27a08ce3d1..c004bf4655 100755 --- a/scripts/osfv_results.py +++ b/scripts/osfv_results.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + import argparse import time diff --git a/scripts/refactoring-state.sh b/scripts/refactoring-state.sh index a9d3c02cd4..cdc319a9f1 100755 --- a/scripts/refactoring-state.sh +++ b/scripts/refactoring-state.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + kwds_to_remove=( "Select Option From List" "Read Option List Contents" diff --git a/scripts/regression-qemu.sh b/scripts/regression-qemu.sh index 6cfa057784..7c73c17b4a 100755 --- a/scripts/regression-qemu.sh +++ b/scripts/regression-qemu.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "${SCRIPT_DIR}/lib/robot.sh" diff --git a/scripts/regression.sh b/scripts/regression.sh index 94d51fa147..6a0765294a 100755 --- a/scripts/regression.sh +++ b/scripts/regression.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "${SCRIPT_DIR}/lib/robot.sh" diff --git a/scripts/rename-keyword.sh b/scripts/rename-keyword.sh index fb9de1b02f..3f939908c1 100755 --- a/scripts/rename-keyword.sh +++ b/scripts/rename-keyword.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + usage() { echo "This scripts renames keywords across the project from \"old_name\" to\"new_name\"" echo "Usage: $0 old_name new_name" diff --git a/scripts/run.sh b/scripts/run.sh index e95df2f98b..da0b0e1855 100755 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "${SCRIPT_DIR}/lib/robot.sh" diff --git a/scripts/stats.py b/scripts/stats.py index 01ab86c5de..3e4c3efa7b 100755 --- a/scripts/stats.py +++ b/scripts/stats.py @@ -1,5 +1,8 @@ #!/usr/bin/env python3 +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 from robot.model import SuiteVisitor from robot.running import TestSuiteBuilder diff --git a/stress-test-windows.ps1 b/stress-test-windows.ps1 index 15db7c48c3..ad7dd6a47d 100644 --- a/stress-test-windows.ps1 +++ b/stress-test-windows.ps1 @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + $numCores = 4 foreach ($loopnumber in 1..$numCores){ diff --git a/trenchboot/README.md b/trenchboot/README.md index a134bdbb12..4a00cef58c 100644 --- a/trenchboot/README.md +++ b/trenchboot/README.md @@ -1,3 +1,9 @@ + + # TrenchBoot tests These are the tests of [TrenchBoot] functionality meant to be used with From 8e22b4563637238706cfb2cf41ffcade5b919ed1 Mon Sep 17 00:00:00 2001 From: Daniil Klimuk Date: Thu, 19 Dec 2024 17:54:58 +0100 Subject: [PATCH 008/416] .pre-commit-config: make reuse check only committed files Signed-off-by: Daniil Klimuk --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8bec785ffe..0ec924a577 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -73,7 +73,7 @@ repos: - repo: https://github.com/fsfe/reuse-tool rev: v5.0.2 hooks: - - id: reuse + - id: reuse-lint-file - repo: local hooks: From 708ddfc0006c48cc3c8131e1ecda3d873266dbd1 Mon Sep 17 00:00:00 2001 From: Danik Klimuk <109155473+DaniilKl@users.noreply.github.com> Date: Fri, 20 Dec 2024 07:37:05 +0100 Subject: [PATCH 009/416] Change dts extensions checkpoint (#640) * dts: fix DTS Extensions checkpoint Signed-off-by: Daniil Klimuk * dts: dts-e2e: delete Provide DPP Credentials Without Packages Surplus KW. The DTS_CONFIRM_CHECKPOINT is being printed always. Signed-off-by: Daniil Klimuk * dts: dts-e2e: fix E2E003.010 Signed-off-by: Daniil Klimuk --------- Signed-off-by: Daniil Klimuk --- dts/dts-e2e.robot | 45 ++++++++++++++++----------------------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/dts/dts-e2e.robot b/dts/dts-e2e.robot index 1982653537..62008638ca 100644 --- a/dts/dts-e2e.robot +++ b/dts/dts-e2e.robot @@ -31,8 +31,6 @@ ${DTS_SPECIFICATION_WARN}= Does it match your actual specification? (Y| ${DTS_DEPLOY_WARN}= Do you want to deploy this Dasharo Firmware on your platform (Y|n) ${DTS_HW_PROBE_WARN}= Do you want to participate in this project? ${DTS_HEADS_SWITCH_QUESTION}= Would you like to switch to Dasharo heads firmware? (Y|n) -${DPP_PACKAGES_CHECKPOINT}= -... If you did not buy any DPP\npackages - feel free to continue.\n${DTS_CONFIRM_CHECKPOINT} # DTS initial deployment menupoints: ${DTS_DCR_UEFI_MENUPOINT}= Community version ${DTS_DPP_UEFI_MENUPOINT}= DPP version (coreboot + UEFI) @@ -208,7 +206,7 @@ E2E002.006 NCM transition NV4xPZ (Coreboot + UEFI -> Heads) - DPP version, with Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start update: Go Through Heads Transition @@ -464,7 +462,7 @@ E2E003.005 MSI PRO Z690-A DDR-4 initial deployment (legacy -> Coreboot + UEFI) - Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start initial deployment: Go Through Initial Deployment DPP UEFI @@ -488,7 +486,7 @@ E2E003.006 MSI PRO Z690-A initial deployment (legacy -> Coreboot + UEFI) - DPP v Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start initial deployment: Go Through Initial Deployment DPP UEFI @@ -570,7 +568,7 @@ E2E003.009 MSI PRO Z690-A DDR-4 update (Coreboot + UEFI -> Coreboot + UEFI) - DP Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start update: Go Through Update @@ -600,12 +598,7 @@ E2E003.010 MSI PRO Z690-A update (Coreboot + UEFI -> Coreboot + UEFI) - DPP vers Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages - - # 4) Start update: - ${out}= Read From Terminal Until ${DTS_CHECKPOINT} - Write Into Terminal 2 - Log ${out} + Provide DPP Credentials # 4) Start update: Go Through Update @@ -656,7 +649,7 @@ E2E003.012 MSI PRO Z690-A DDR4 transition (Coreboot + UEFI -> heads) - with cred Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start update: Go Through Heads Transition @@ -707,7 +700,7 @@ E2E003.014 MSI PRO Z690-A transition (UEFI -> heads) - with credentials Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start update: Go Through Heads Transition @@ -764,7 +757,7 @@ E2E004.002 Dell Optiplex 7010 DPP initial deployment (legacy -> Coreboot + UEFI) Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start initial deployment: Go Through Initial Deployment DPP UEFI @@ -813,7 +806,7 @@ E2E004.004 Dell Optiplex 7010 DPP update (Coreboot + UEFI -> Coreboot + UEFI) - Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start update: Go Through Update @@ -866,7 +859,7 @@ E2E004.006 Dell Optiplex 9010 DPP initial deployment (legacy -> Coreboot + UEFI) Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start initial deployment: Go Through Initial Deployment DPP UEFI @@ -915,7 +908,7 @@ E2E004.008 Dell Optiplex 9010 DPP update (Coreboot + UEFI -> Coreboot + UEFI) - Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start update: Go Through Update @@ -970,7 +963,7 @@ E2E005.002 PC Engines DPP initial deployment (legacy -> Coreboot + UEFI) - with Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start initial deployment: Go Through Initial Deployment DPP UEFI @@ -1019,7 +1012,7 @@ E2E005.004 PC Engines DPP initial deployment (legacy -> Coreboot + SeaBIOS) - wi Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start initial deployment: Go Through Initial Deployment DPP SeaBIOS @@ -1076,7 +1069,7 @@ E2E006.002 Odroid H4 DPP initial deployment (legacy -> Coreboot + UEFI) - with c Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start initial deployment: Go Through Initial Deployment DPP UEFI @@ -1125,7 +1118,7 @@ E2E006.004 Odroid H4 DPP update (Coreboot + UEFI -> Coreboot + UEFI) - with cred Write Into Terminal dts-boot # 3) Provide DPP credentials: - Provide DPP Credentials Without Packages + Provide DPP Credentials # 4) Start initial deployment: Go Through Initial Deployment DPP UEFI @@ -1165,13 +1158,7 @@ Provide DPP Credentials Variable Should Exist ${DPP_PASSWORD} Write Into Terminal ${DPP_PASSWORD} -Provide DPP Credentials Without Packages - [Documentation] This KW automatically writes DPP credentials that do not - ... have access to DPP packages into DTS UI and checks out a DPP package - ... warning. - Provide DPP Credentials - - Wait For Checkpoint And Press Enter ${DPP_PACKAGES_CHECKPOINT} + Wait For Checkpoint And Press Enter ${DTS_CONFIRM_CHECKPOINT} Wait For Checkpoint [Documentation] This KW waits for checkpoint (first argument) and logs From 7e0db51fd0c2067dc274f4a6eb2ea68ef554c2ea Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Thu, 19 Dec 2024 10:28:44 +0100 Subject: [PATCH 010/416] lib/flash.sh: boot into Linux before executing flashrom Clearly this has not been tested before, as the Make Sure ... kwd needs to be in the Linux shell. Signed-off-by: Maciej Pijanowski --- lib/flash.robot | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/flash.robot b/lib/flash.robot index d359989bb1..a390f13537 100644 --- a/lib/flash.robot +++ b/lib/flash.robot @@ -89,6 +89,10 @@ Flash Firmware Rte Flash Write ${fw_file} ELSE IF '${FLASHING_METHOD}' == 'internal' Make Sure That Flash Locks Are Disabled + Power On + Boot System Or From Connected Disk ubuntu + Login To Linux + Switch To Root User Flash Via Internal Programmer ${fw_file} region=bios ELSE Fail Flash firmware not implemented for platform config ${CONFIG} From 932a4c4dbeb47db7cafbccbe40f3a9745165a1a4 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Thu, 19 Dec 2024 10:30:27 +0100 Subject: [PATCH 011/416] platform-configs/protectli-vp2420.robot: update to v1.2.1-rc1 Signed-off-by: Maciej Pijanowski --- platform-configs/protectli-vp2420.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index fb43859cd4..d9094f5597 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -9,9 +9,9 @@ ${FLASHING_METHOD}= internal # eMMC driver support ${E_MMC_NAME}= 8GTF4R ${DMIDECODE_SERIAL_NUMBER}= N/A -${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v1.2.0 +${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v1.2.1-rc1 ${DMIDECODE_PRODUCT_NAME}= VP2420 -${DMIDECODE_RELEASE_DATE}= 10/12/2023 +${DMIDECODE_RELEASE_DATE}= 18/12/2024 ${DMIDECODE_TYPE}= N/A ${CPU_MAX_FREQUENCY}= 2700 From 34a1f10d1762da3b366a47f62be4b4a38ed4b5e7 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Tue, 31 Dec 2024 09:41:43 +0100 Subject: [PATCH 012/416] platform-configs/protectli-vp2420.robot: fix dmidecode variables Signed-off-by: Wiktor Mowinski --- platform-configs/protectli-vp2420.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index d9094f5597..ae014f8975 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -11,8 +11,8 @@ ${E_MMC_NAME}= 8GTF4R ${DMIDECODE_SERIAL_NUMBER}= N/A ${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v1.2.1-rc1 ${DMIDECODE_PRODUCT_NAME}= VP2420 -${DMIDECODE_RELEASE_DATE}= 18/12/2024 -${DMIDECODE_TYPE}= N/A +${DMIDECODE_RELEASE_DATE}= 12/18/2024 +${DMIDECODE_TYPE}= Desktop ${CPU_MAX_FREQUENCY}= 2700 ${CPU_MIN_FREQUENCY}= 300 From 33d679ca41f441a77fba3a189c24cd01c7a6191d Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Wed, 8 Jan 2025 12:23:48 +0100 Subject: [PATCH 013/416] dasharo-compatibility/usb-detect.robot: Change UDT test IDs Signed-off-by: Sebastian Czapla --- dasharo-compatibility/usb-detect.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dasharo-compatibility/usb-detect.robot b/dasharo-compatibility/usb-detect.robot index 1e63ae753a..4e56be9c4e 100644 --- a/dasharo-compatibility/usb-detect.robot +++ b/dasharo-compatibility/usb-detect.robot @@ -69,7 +69,7 @@ UDT001.001 USB detection after coldboot Fail Detection failed too many times (${failed_detection}) END -UDT002.001 USB detection after warmboot +UDT001.002 USB detection after warmboot [Documentation] Check whether the DUT detects properly USB device after ... the warmboot (reboot realized by device turning off then ... turning on). @@ -109,7 +109,7 @@ UDT002.001 USB detection after warmboot Fail Detection failed too many times (${failed_detection}) END -UDT003.001 USB detection after system reboot +UDT001.003 USB detection after system reboot [Documentation] Check whether the DUT detects properly USB device after ... the system reboot (reboot performing by relevant command). Platform Verification From 3a8620b8c0fd3ac29a0d6ead090559941197f3bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Fri, 10 Jan 2025 16:39:33 +0100 Subject: [PATCH 014/416] dts/dts-e2e.robot: increase DUT timeouts to deal with timeouts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Iwanicki --- dts/dts-e2e.robot | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dts/dts-e2e.robot b/dts/dts-e2e.robot index 62008638ca..6ada65f1d9 100644 --- a/dts/dts-e2e.robot +++ b/dts/dts-e2e.robot @@ -1145,6 +1145,7 @@ Power On And Enter DTS Shell Provide DPP Credentials [Documentation] This KW automatically writes DPP credentials into DTS UI. ... The credentials should be set via CMD or file. + Set DUT Response Timeout 120s ${out}= Read From Terminal Until ${DTS_CHECKPOINT} Write Bare Into Terminal ${DTS_CREDENTIALS_OPT} @@ -1198,7 +1199,7 @@ Go Through Initial Deployment Set DUT Response Timeout 5m # Accept hw-probe question from HCL report: Wait For Checkpoint And Write ${DTS_HW_PROBE_WARN} Y - Set DUT Response Timeout 30s + Set DUT Response Timeout 120s # 3) Choose version to install: IF '${dasharo_version}' == 'DCR UEFI' @@ -1221,6 +1222,7 @@ Go Through Initial Deployment Go Through Update [Documentation] This KW goes through standard Dasharo update workflow ... choosing all needed menu options and answering all questions. + Set DUT Response Timeout 120s # 1) Select initial deployment: Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DEPLOY_OPT} @@ -1231,6 +1233,7 @@ Go Through Update Go Through Heads Transition [Documentation] This KW goes through transition to Dasharo Heads choosing ... all needed menu options and answering all questions. + Set DUT Response Timeout 120s # 1) Start update: Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DEPLOY_OPT} From dff56b9c7abcd306016f1335cbc7cb1dcd664699 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Tue, 17 Dec 2024 15:34:57 +0100 Subject: [PATCH 015/416] platform-configs/include/protectli-vp32xx.robot: add eth ports order Signed-off-by: Wiktor Mowinski --- platform-configs/include/protectli-vp32xx.robot | 2 ++ platform-configs/protectli-vp3210.robot | 3 +++ platform-configs/protectli-vp3230.robot | 3 +++ 3 files changed, 8 insertions(+) diff --git a/platform-configs/include/protectli-vp32xx.robot b/platform-configs/include/protectli-vp32xx.robot index fa96e7839e..e5d45350d5 100644 --- a/platform-configs/include/protectli-vp32xx.robot +++ b/platform-configs/include/protectli-vp32xx.robot @@ -7,3 +7,5 @@ Resource protectli-common.robot ${FLASH_SIZE}= ${16*1024*1024} ${MAX_CPU_TEMP}= 82 + +${ETHERNET_ID}= 8086:125c diff --git a/platform-configs/protectli-vp3210.robot b/platform-configs/protectli-vp3210.robot index f648ee8ad5..3fb065b56e 100644 --- a/platform-configs/protectli-vp3210.robot +++ b/platform-configs/protectli-vp3210.robot @@ -4,3 +4,6 @@ Resource include/protectli-vp32xx.robot *** Variables *** ${DMIDECODE_PRODUCT_NAME}= VP3210 + +@{ETH_PORTS}= 64-62-66-23-90-47 +... 64-62-66-23-90-48 diff --git a/platform-configs/protectli-vp3230.robot b/platform-configs/protectli-vp3230.robot index 7da6c1b738..f3574fb352 100644 --- a/platform-configs/protectli-vp3230.robot +++ b/platform-configs/protectli-vp3230.robot @@ -40,3 +40,6 @@ ${DEVICE_AUDIO1_WIN}= High Definition Audio Controller ${DEVICE_NVME_DISK}= N/A ${CLEVO_DISK}= N/A + +@{ETH_PORTS}= 64-62-66-23-8F-19 +... 64-62-66-23-8F-1A From b45d15018da0416a51d9f872f186d496993605c4 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Wed, 18 Dec 2024 18:03:59 +0100 Subject: [PATCH 016/416] platform-configs/ update more platforms Signed-off-by: Wiktor Mowinski --- platform-configs/include/protectli-vp24xx.robot | 2 ++ platform-configs/include/protectli-vp46xx.robot | 2 ++ platform-configs/include/protectli-vp66xx.robot | 2 ++ platform-configs/protectli-vp3230.robot | 4 ++-- platform-configs/protectli-vp4650.robot | 7 +++++++ platform-configs/protectli-vp4670.robot | 8 ++++++++ platform-configs/protectli-vp6650.robot | 5 +++++ platform-configs/protectli-vp6670.robot | 1 - 8 files changed, 28 insertions(+), 3 deletions(-) diff --git a/platform-configs/include/protectli-vp24xx.robot b/platform-configs/include/protectli-vp24xx.robot index 39e9ae39b7..38686fa1cf 100644 --- a/platform-configs/include/protectli-vp24xx.robot +++ b/platform-configs/include/protectli-vp24xx.robot @@ -12,3 +12,5 @@ ${MAX_CPU_TEMP}= 95 ${DMIDECODE_MANUFACTURER}= Protectli ${DMIDECODE_VENDOR}= 3mdeb ${DMIDECODE_FAMILY}= Vault Pro + +${ETHERNET_ID}= 8086:125c diff --git a/platform-configs/include/protectli-vp46xx.robot b/platform-configs/include/protectli-vp46xx.robot index 03c539df92..6de4e80f52 100644 --- a/platform-configs/include/protectli-vp46xx.robot +++ b/platform-configs/include/protectli-vp46xx.robot @@ -20,3 +20,5 @@ ${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v1.2.0 ${DMIDECODE_RELEASE_DATE}= 03/13/2024 @{ETH_PERF_PAIR_2_G}= enp5s0 enp6s0 + +${ETHERNET_ID}= 8086:125c diff --git a/platform-configs/include/protectli-vp66xx.robot b/platform-configs/include/protectli-vp66xx.robot index cb3fc55e61..49c7a7abcf 100644 --- a/platform-configs/include/protectli-vp66xx.robot +++ b/platform-configs/include/protectli-vp66xx.robot @@ -22,3 +22,5 @@ ${HYPER_THREADING_SUPPORT}= ${TRUE} ${INTEL_HYBRID_ARCH_SUPPORT}= ${TRUE} @{ETH_PERF_PAIR_2_G}= enp5s0 enp6s0 @{ETH_PERF_PAIR_10_G}= enp2s0f0 enp2s0f1 + +${ETHERNET_ID}= 8086:125c diff --git a/platform-configs/protectli-vp3230.robot b/platform-configs/protectli-vp3230.robot index f3574fb352..db39a7e47d 100644 --- a/platform-configs/protectli-vp3230.robot +++ b/platform-configs/protectli-vp3230.robot @@ -41,5 +41,5 @@ ${DEVICE_AUDIO1_WIN}= High Definition Audio Controller ${DEVICE_NVME_DISK}= N/A ${CLEVO_DISK}= N/A -@{ETH_PORTS}= 64-62-66-23-8F-19 -... 64-62-66-23-8F-1A +@{ETH_PORTS}= 64-62-66-23-8f-19 +... 64-62-66-23-8f-1a diff --git a/platform-configs/protectli-vp4650.robot b/platform-configs/protectli-vp4650.robot index f7225b6d89..e2b7fe9dfe 100644 --- a/platform-configs/protectli-vp4650.robot +++ b/platform-configs/protectli-vp4650.robot @@ -20,3 +20,10 @@ ${DMIDECODE_PRODUCT_NAME}= VP4650 ${CPU_MAX_FREQUENCY}= 4300 ${CPU_MIN_FREQUENCY}= 300 + +@{ETH_PORTS}= 64-62-66-21-42-91 +... 64-62-66-21-42-90 +... 64-62-66-21-42-8f +... 64-62-66-21-42-8e +... 64-62-66-21-42-8d +... 64-62-66-21-42-8c diff --git a/platform-configs/protectli-vp4670.robot b/platform-configs/protectli-vp4670.robot index 4af43fb30c..8ed5ea2e5a 100644 --- a/platform-configs/protectli-vp4670.robot +++ b/platform-configs/protectli-vp4670.robot @@ -20,3 +20,11 @@ ${DMIDECODE_PRODUCT_NAME}= VP4670 ${CPU_MAX_FREQUENCY}= 5000 ${CPU_MIN_FREQUENCY}= 300 + +# Ethernet ports for V2.0A (we have 2 in lab at the moment of me writing this) +@{ETH_PORTS}= 64-62-66-22-93-db +... 64-62-66-22-93-dc +... 64-62-66-22-93-dd +... 64-62-66-22-93-de +... 64-62-66-22-93-df +... 64-62-66-22-93-e0 diff --git a/platform-configs/protectli-vp6650.robot b/platform-configs/protectli-vp6650.robot index f71176a907..3d83fc8f5c 100644 --- a/platform-configs/protectli-vp6650.robot +++ b/platform-configs/protectli-vp6650.robot @@ -23,3 +23,8 @@ ${CPU_MAX_FREQUENCY}= 4400 ${PLATFORM_CPU_SPEED}= 2.50 ${PLATFORM_RAM_SPEED}= 4200 ${PLATFORM_RAM_SIZE}= 65536 + +@{ETH_PORTS}= 64-62-66-22-84-f5 +... 64-62-66-22-84-f6 +... 64-62-66-22-84-f7 +... 64-62-66-22-84-f8 diff --git a/platform-configs/protectli-vp6670.robot b/platform-configs/protectli-vp6670.robot index 3c1fbcc57c..a986834cc0 100644 --- a/platform-configs/protectli-vp6670.robot +++ b/platform-configs/protectli-vp6670.robot @@ -29,4 +29,3 @@ ${PLATFORM_RAM_SIZE}= 32768 ... 64-62-66-22-89-9a ... 64-62-66-22-89-9b ... 64-62-66-22-89-9c -${ETHERNET_ID}= 8086:125c From 09033d959b52268f5059ec8dcdda304df93eb504 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Wed, 18 Dec 2024 18:21:44 +0100 Subject: [PATCH 017/416] platform-configs/ update more platforms Signed-off-by: Wiktor Mowinski --- platform-configs/include/protectli-vp46xx.robot | 2 +- platform-configs/protectli-vp4630.robot | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/platform-configs/include/protectli-vp46xx.robot b/platform-configs/include/protectli-vp46xx.robot index 6de4e80f52..e249cb7410 100644 --- a/platform-configs/include/protectli-vp46xx.robot +++ b/platform-configs/include/protectli-vp46xx.robot @@ -21,4 +21,4 @@ ${DMIDECODE_RELEASE_DATE}= 03/13/2024 @{ETH_PERF_PAIR_2_G}= enp5s0 enp6s0 -${ETHERNET_ID}= 8086:125c +${ETHERNET_ID}= 8086:15f3 diff --git a/platform-configs/protectli-vp4630.robot b/platform-configs/protectli-vp4630.robot index e3acb9ecf1..80c71a4a8e 100644 --- a/platform-configs/protectli-vp4630.robot +++ b/platform-configs/protectli-vp4630.robot @@ -19,3 +19,10 @@ ${DMIDECODE_PRODUCT_NAME}= VP4630 ${CPU_MAX_FREQUENCY}= 4200 ${CPU_MIN_FREQUENCY}= 300 + +@{ETH_PORTS}= 00-e0-97-1b-99-50 +... 00-e0-97-1b-99-51 +... 00-e0-97-1b-99-52 +... 00-e0-97-1b-99-53 +... 00-e0-97-1b-99-54 +... 00-e0-97-1b-99-55 From 332b67762a81b0b2b6f7fe9247cc94986ad9a008 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Thu, 19 Dec 2024 14:39:35 +0100 Subject: [PATCH 018/416] platform-configs/protectli-vp2410.robot: include VP2410 Signed-off-by: Wiktor Mowinski --- platform-configs/include/protectli-vp24xx.robot | 2 +- platform-configs/protectli-vp2410.robot | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/platform-configs/include/protectli-vp24xx.robot b/platform-configs/include/protectli-vp24xx.robot index 38686fa1cf..ca653fb86d 100644 --- a/platform-configs/include/protectli-vp24xx.robot +++ b/platform-configs/include/protectli-vp24xx.robot @@ -13,4 +13,4 @@ ${DMIDECODE_MANUFACTURER}= Protectli ${DMIDECODE_VENDOR}= 3mdeb ${DMIDECODE_FAMILY}= Vault Pro -${ETHERNET_ID}= 8086:125c +${ETHERNET_ID}= 8086:1539 diff --git a/platform-configs/protectli-vp2410.robot b/platform-configs/protectli-vp2410.robot index 09aef0c436..ed1e3bc9fa 100644 --- a/platform-configs/protectli-vp2410.robot +++ b/platform-configs/protectli-vp2410.robot @@ -42,3 +42,8 @@ ${PLATFORM_RAM_SPEED}= 2400 ${PLATFORM_RAM_SIZE}= 8192 @{ETH_PERF_PAIR_1_G}= enp2s0 enp3s0 + +@{ETH_PORTS}= 64-62-66-21-03-b8 +... 64-62-66-21-03-b9 +... 64-62-66-21-03-ba +... 64-62-66-21-03-bb From b135616ee173e2506897f9ef37d05d3b333af4e5 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Thu, 19 Dec 2024 15:10:33 +0100 Subject: [PATCH 019/416] platform-configs/protectli-vp2420.robot: include VP2420 Signed-off-by: Wiktor Mowinski --- platform-configs/protectli-vp2420.robot | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index ae014f8975..d7d430530d 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -21,6 +21,13 @@ ${WATCHDOG_SUPPORT}= ${TRUE} @{ETH_PERF_PAIR_2_G}= enp3s0 enp4s0 +@{ETH_PORTS}= 00-e0-67-1c-29-79 +... 00-e0-67-1c-29-7a +... 00-e0-67-1c-29-7b +... 00-e0-67-1c-29-7c + +${ETHERNET_ID}= 8086:15f3 + *** Keywords *** Flash Protectli VP2420 Internal From eb272a511cd22a7003ba04636febcc136e1bee79 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Thu, 19 Dec 2024 15:57:46 +0100 Subject: [PATCH 020/416] dasharo-compatibility/check-ethernet-ports-order.robot: add skip Signed-off-by: Wiktor Mowinski --- dasharo-compatibility/check-ethernet-ports-order.robot | 1 + 1 file changed, 1 insertion(+) diff --git a/dasharo-compatibility/check-ethernet-ports-order.robot b/dasharo-compatibility/check-ethernet-ports-order.robot index 0875268f5d..1dfc0719ac 100644 --- a/dasharo-compatibility/check-ethernet-ports-order.robot +++ b/dasharo-compatibility/check-ethernet-ports-order.robot @@ -22,6 +22,7 @@ Suite Teardown Run Keyword SPS001.001 Ethernet ports are in order [Documentation] This test automates the verification of port order based ... on PCIe bus numbers and checks PCIe switching. + Skip If '''${ETH_PORTS}''' == '' Power On Boot System Or From Connected Disk ubuntu Login To Linux From 5a271688310e957adb64e20d25eaf819f5274916 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Thu, 19 Dec 2024 16:00:41 +0100 Subject: [PATCH 021/416] platform-configs/protectli-vp2430.robot: add last platform Signed-off-by: Wiktor Mowinski --- platform-configs/protectli-vp2430.robot | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/platform-configs/protectli-vp2430.robot b/platform-configs/protectli-vp2430.robot index 2d58c11c35..1b884d369f 100644 --- a/platform-configs/protectli-vp2430.robot +++ b/platform-configs/protectli-vp2430.robot @@ -42,3 +42,10 @@ ${WIFI_CARD}= ${USB_MODEL}= SanDisk ${USB_DEVICE}= SanDisk ${BLUETOOTH_CARD_UBUNTU}= Intel Corp. AX200 Bluetooth + +@{ETH_PORTS}= 00-e0-97-1b-00-47 +... 00-e0-97-1b-00-48 +... 00-e0-97-1b-00-49 +... 00-e0-97-1b-00-4a + +${ETHERNET_ID}= 8086:125c From 3451f2a6b8ecd899e94324ab9e32e1553d1dc739 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Thu, 19 Dec 2024 17:01:58 +0100 Subject: [PATCH 022/416] dasharo-compatibility/check-ethernet-ports-order.robot: fix skip cond Signed-off-by: Wiktor Mowinski --- dasharo-compatibility/check-ethernet-ports-order.robot | 2 +- platform-configs/include/default.robot | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/dasharo-compatibility/check-ethernet-ports-order.robot b/dasharo-compatibility/check-ethernet-ports-order.robot index 1dfc0719ac..ba9f34b834 100644 --- a/dasharo-compatibility/check-ethernet-ports-order.robot +++ b/dasharo-compatibility/check-ethernet-ports-order.robot @@ -22,7 +22,7 @@ Suite Teardown Run Keyword SPS001.001 Ethernet ports are in order [Documentation] This test automates the verification of port order based ... on PCIe bus numbers and checks PCIe switching. - Skip If '''${ETH_PORTS}''' == '' + Skip If '''${ETH_PORTS}''' == '' not supported Power On Boot System Or From Connected Disk ubuntu Login To Linux diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 2e39a32314..caa4fd34ae 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -268,6 +268,7 @@ ${STABILITY_DETECTION_WARMBOOT_ITERATIONS}= 2 ${STABILITY_DETECTION_REBOOT_ITERATIONS}= 5 ${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}= NetworkBoot +${ETH_PORTS}= ${EMPTY} *** Keywords *** From dc848255c9f20f6ab0a79fbc3183689f5e2becd6 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Fri, 10 Jan 2025 19:09:30 +0100 Subject: [PATCH 023/416] platform-configs/include/protectli-vp24xx.robot: fix id placement Signed-off-by: Wiktor Mowinski --- platform-configs/include/protectli-vp24xx.robot | 2 -- platform-configs/protectli-vp2410.robot | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform-configs/include/protectli-vp24xx.robot b/platform-configs/include/protectli-vp24xx.robot index ca653fb86d..39e9ae39b7 100644 --- a/platform-configs/include/protectli-vp24xx.robot +++ b/platform-configs/include/protectli-vp24xx.robot @@ -12,5 +12,3 @@ ${MAX_CPU_TEMP}= 95 ${DMIDECODE_MANUFACTURER}= Protectli ${DMIDECODE_VENDOR}= 3mdeb ${DMIDECODE_FAMILY}= Vault Pro - -${ETHERNET_ID}= 8086:1539 diff --git a/platform-configs/protectli-vp2410.robot b/platform-configs/protectli-vp2410.robot index ed1e3bc9fa..ffca49f15d 100644 --- a/platform-configs/protectli-vp2410.robot +++ b/platform-configs/protectli-vp2410.robot @@ -47,3 +47,5 @@ ${PLATFORM_RAM_SIZE}= 8192 ... 64-62-66-21-03-b9 ... 64-62-66-21-03-ba ... 64-62-66-21-03-bb + +${ETHERNET_ID}= 8086:1539 From ecb2bb94704fccc855cfd2d265b4656e23af4801 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 14 Jan 2025 08:26:48 +0100 Subject: [PATCH 024/416] scripts/lib/robot.sh: Add support for CAPSULE_FW_FILE env variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- scripts/lib/robot.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/lib/robot.sh b/scripts/lib/robot.sh index 628ba85350..edc54c1e06 100644 --- a/scripts/lib/robot.sh +++ b/scripts/lib/robot.sh @@ -101,6 +101,13 @@ execute_robot() { device_ip_option="" fi + # CAPSULE_FW_FILE environment variable is required for the capsule update test + if [ -n "${CAPSULE_FW_FILE}" ]; then + capsule_fw_file_option="-v capsule_fw_file:${CAPSULE_FW_FILE}" + else + capsule_fw_file_option="" + fi + extra_options="" # By default use snipeit, if SNIPEIT_NO is not set if [ -n "${SNIPEIT_NO}" ]; then @@ -145,6 +152,7 @@ execute_robot() { -v config:${CONFIG} \ ${device_ip_option} \ ${fw_file_option} \ + ${capsule_fw_file_option} \ ${installed_dut_option} \ ${extra_options} \ ${_robot_args[*]} \ From 6f3bc3697e90b2ebc41ccc287501770c7b813c47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Fri, 10 Jan 2025 21:19:01 +0100 Subject: [PATCH 025/416] dts-e2e: use new ssh session for each test instead of rebooting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Iwanicki --- dts/dts-e2e.robot | 144 ++++++++++++---------------------------------- 1 file changed, 38 insertions(+), 106 deletions(-) diff --git a/dts/dts-e2e.robot b/dts/dts-e2e.robot index 6ada65f1d9..2157b9ca86 100644 --- a/dts/dts-e2e.robot +++ b/dts/dts-e2e.robot @@ -12,9 +12,13 @@ Resource ../variables.robot Suite Setup Run Keywords ... Prepare Test Suite AND -... Skip If not ${DTS_SUPPORT} +... Skip If not ${DTS_SUPPORT} AND +... Power On And Enter DTS Shell AND +... Execute Linux Command systemctl start sshd Suite Teardown Run Keyword ... Log Out And Close Connection +Test Setup Prepare DTS Test +Test Teardown Teardown DTS Test *** Variables *** @@ -55,9 +59,6 @@ E2E001.001 HCL Report test [Documentation] Verify that HCL Report is being executed with all ... expected messages. The report should not fail even if it failed to ... collect some data, because it is responsible only for collecting. - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Prepare DTS for testing: Execute Command In Terminal export DTS_TESTING="true" Write Into Terminal dts-boot @@ -85,9 +86,6 @@ E2E002.001 NCM NV4XMB,ME,MZ initial deployment (legacy -> Coreboot + UEFI) - com ... of Dahsaro Firmware for NovaCustom NV4XMB,ME,MZ. This deployment ... should pass without credentials. [Tags] novacustom_comm - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="NV4XMB,ME,MZ" TEST_BOARD_MODEL="NV4XMB,ME,MZ" @@ -106,9 +104,6 @@ E2E002.002 NCM NS50_70MU initial deployment (legacy -> Coreboot + UEFI) - commun ... of Dahsaro Firmware for NovaCustom NS50_70MU. This deployment ... should pass without credentials. [Tags] novacustom_comm - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="NS50_70MU" TEST_BOARD_MODEL="NS50_70MU" @@ -127,9 +122,6 @@ E2E002.003 NCM NS5x_NS7xPU initial deployment (legacy -> Coreboot + UEFI) - comm ... of Dahsaro Firmware for NovaCustom NS5x_NS7xPU. This deployment ... should pass without credentials. [Tags] novacustom_comm - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="NS5x_NS7xPU" TEST_BOARD_MODEL="NS5x_NS7xPU" @@ -148,9 +140,6 @@ E2E002.004 NCM NV4xPZ initial deployment (legacy -> Coreboot + UEFI) - community ... of Dahsaro Firmware for NovaCustom NV4xPZ. This deployment ... should pass without credentials. [Tags] novacustom_comm - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="NV4xPZ" TEST_BOARD_MODEL="NV4xPZ" @@ -171,9 +160,6 @@ E2E002.005 NCM NV4xPZ transition (Coreboot + UEFI -> Coreboot + Heads) - DPP ver ... keys, so we expect no update will be provided, but a message ... encouraging subscription purchase should be visible. [Tags] novacustom_heads - # 1) Get into DTS - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="NV4xPZ" TEST_BOARD_MODEL="NV4xPZ" @@ -193,9 +179,6 @@ E2E002.006 NCM transition NV4xPZ (Coreboot + UEFI -> Heads) - DPP version, with ... We start from Dasharo (coreboot + UEFI) firmware with version that should ... allow for the transition. We insert correct DPP keys for heads variant. [Tags] novacustom_heads - # 1) Get into DTS - Power On And Enter DTS Shell - # 2) Emulate needed env.. We assume that transition is from Dasharo UEFI to # Dasharo HEAD, so we need to emulate appropriate EC firmware presence: Execute Command In Terminal @@ -220,9 +203,6 @@ E2E002.007 NCM V540_6x_TU initial deployment (legacy -> Coreboot + UEFI) - commu ... of Dahsaro Firmware for NovaCustom V540_6x_TU. This deployment ... should pass without credentials. [Tags] novacustom_comm - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="V54x_6x_TU" TEST_BOARD_MODEL="V540TU" @@ -242,9 +222,6 @@ E2E002.008 NCM V560_6x_TU initial deployment (legacy -> Coreboot + UEFI) - commu ... of Dahsaro Firmware for NovaCustom V560_6x_TU. This deployment ... should pass without credentials. [Tags] novacustom_comm - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="V54x_6x_TU" TEST_BOARD_MODEL="V560TU" @@ -264,9 +241,6 @@ E2E002.009 NCM V540TNC_TND_TNE initial deployment (legacy -> Coreboot + UEFI) - ... of Dahsaro Firmware for NovaCustom V540TNC_TND_TNE. This deployment ... should pass without credentials. [Tags] novacustom_comm - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="V5xTNC_TND_TNE" TEST_BOARD_MODEL="V540TNx" @@ -305,9 +279,6 @@ E2E002.010 NCM V560TNC_TND_TNE initial deployment (legacy -> Coreboot + UEFI) - ... of Dahsaro Firmware for NovaCustom V560TNC_TND_TNE. This deployment ... should pass without credentials. [Tags] novacustom_comm - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="V5xTNC_TND_TNE" TEST_BOARD_MODEL="V560TNx" @@ -355,9 +326,6 @@ E2E003.001 MSI PRO Z690-A DDR4 initial deployment (legacy -> Coreboot + UEFI) - ... of Dahsaro Firmware for MSI PRO Z690-A WIFI DDR4(MS-7D25)/PRO Z690-A ... WIFI DDR4(MS-7D25). This deployment should pass without credentials. [Tags] msi_comm - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="MS-7D25" TEST_BOARD_MODEL="PRO Z690-A WIFI DDR4(MS-7D25)" @@ -376,9 +344,6 @@ E2E003.002 MSI PRO Z690-A initial deployment (legacy -> Coreboot + UEFI) - commu ... of Dahsaro Firmware for MSI PRO Z690-A WIFI (MS-7D25)/PRO Z690-A ... (MS-7D25). This deployment should pass without credentials. [Tags] msi_comm - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="MS-7D25" TEST_BOARD_MODEL="PRO Z690-A WIFI (MS-7D25)" @@ -397,9 +362,6 @@ E2E003.003 MSI PRO Z690-A DDR-4 initial deployment (legacy -> Coreboot + UEFI) - ... of Dahsaro Firmware for MSI PRO Z690-A WIFI DDR4(MS-7D25)/PRO Z690-A ... (MS-7D25). This deployment should not pass without credentials. [Tags] msi_dpp - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="MS-7D25" TEST_BOARD_MODEL="PRO Z690-A WIFI DDR4(MS-7D25)" @@ -424,9 +386,6 @@ E2E003.004 MSI PRO Z690-A initial deployment (legacy -> Coreboot + UEFI) - DPP v ... of Dahsaro Firmware for MSI PRO Z690-A WIFI DDR4(MS-7D25)/PRO Z690-A ... DDR 4(MS-7D25). This deployment should not pass without credentials. [Tags] msi_dpp - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="MS-7D25" TEST_BOARD_MODEL="PRO Z690-A WIFI (MS-7D25)" @@ -451,9 +410,6 @@ E2E003.005 MSI PRO Z690-A DDR-4 initial deployment (legacy -> Coreboot + UEFI) - ... of Dahsaro Firmware for MSI PRO Z690-A WIFI DDR4(MS-7D25)/PRO Z690-A ... (MS-7D25). This deployment should pass with credentials. [Tags] msi_dpp - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="MS-7D25" TEST_BOARD_MODEL="PRO Z690-A WIFI DDR4(MS-7D25)" @@ -475,9 +431,6 @@ E2E003.006 MSI PRO Z690-A initial deployment (legacy -> Coreboot + UEFI) - DPP v ... of Dahsaro Firmware for MSI PRO Z690-A WIFI DDR4(MS-7D25)/PRO Z690-A ... DDR 4(MS-7D25). This deployment should pass with credentials. [Tags] msi_dpp - # 1) Get into DTS: - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="MS-7D25" TEST_BOARD_MODEL="PRO Z690-A WIFI (MS-7D25)" @@ -503,9 +456,6 @@ E2E003.007 MSI PRO Z690-A DDR-4 update (Coreboot + UEFI -> Coreboot + UEFI) - co ... more inf.. Therefore to test update via capsules - you have to ... provide credentials with access to capsules. [Tags] msi_comm - # 1) Get into DTS - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="MS-7D25" TEST_BOARD_MODEL="PRO Z690-A WIFI DDR4(MS-7D25)" @@ -529,9 +479,6 @@ E2E003.008 MSI PRO Z690-A update (Coreboot + UEFI -> Coreboot + UEFI) - communit ... more inf.. Therefore to test update via capsules - you have to ... provide credentials with access to capsules. [Tags] msi_comm - # 1) Get into DTS - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="MS-7D25" TEST_BOARD_MODEL="PRO Z690-A WIFI (MS-7D25)" @@ -555,10 +502,6 @@ E2E003.009 MSI PRO Z690-A DDR-4 update (Coreboot + UEFI -> Coreboot + UEFI) - DP ... more inf.. Therefore to test update via capsules - you have to ... provide credentials with access to capsules. [Tags] msi_dpp - - # 1) Get into DTS - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="MS-7D25" TEST_BOARD_MODEL="PRO Z690-A WIFI DDR4(MS-7D25)" @@ -585,10 +528,6 @@ E2E003.010 MSI PRO Z690-A update (Coreboot + UEFI -> Coreboot + UEFI) - DPP vers ... more inf.. Therefore to test update via capsules - you have to ... provide credentials with access to capsules. [Tags] msi_dpp - - # 1) Get into DTS - Power On And Enter DTS Shell - # 2) Emulate needed env.: Execute Command In Terminal ... export DTS_TESTING="true" TEST_SYSTEM_MODEL="MS-7D25" TEST_BOARD_MODEL="PRO Z690-A WIFI (MS-7D25)" @@ -613,8 +552,6 @@ E2E003.011 MSI PRO Z690-A DDR4 transition (Coreboot + UEFI -> heads) - without c ... insert no DPP keys, so we expect no update will be provided, but a ... message encouraging subscription purchase should be visible. [Tags] msi_heads - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -636,8 +573,6 @@ E2E003.012 MSI PRO Z690-A DDR4 transition (Coreboot + UEFI -> heads) - with cred ... UEFI) firmware with version that should allow for the transition. We ... insert correct DPP keys for heads variant. [Tags] msi_heads - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.. We assume that transition is from Dasharo UEFI to # Dasharo HEAD, so we need to emulate appropriate EC firmware presence: @@ -664,8 +599,6 @@ E2E003.013 MSI PRO Z690-A transition (UEFI -> heads) - without credentials ... insert no DPP keys, so we expect no update will be provided, but a ... message encouraging subscription purchase should be visible. [Tags] msi_heads - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -687,8 +620,6 @@ E2E003.014 MSI PRO Z690-A transition (UEFI -> heads) - with credentials ... UEFI) firmware with version that should allow for the transition. We ... insert correct DPP keys for heads variant. [Tags] msi_heads - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.. We assume that transition is from Dasharo UEFI to # Dasharo HEAD, so we need to emulate appropriate EC firmware presence: @@ -718,8 +649,6 @@ E2E004.001 Dell OptiPlex 7010 DPP initial deployment (legacy -> Coreboot + UEFI) ... 7010 without credentials provided. User should not have access and ... DTS should inform about it. [Tags] optiplex_dpp - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -746,8 +675,6 @@ E2E004.002 Dell Optiplex 7010 DPP initial deployment (legacy -> Coreboot + UEFI) ... 7010 with credentials provided. User should have access, and firmware ... should be deployed. [Tags] optiplex_dpp - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -771,8 +698,6 @@ E2E004.003 Dell Optiplex 7010 DPP update (Coreboot + UEFI -> Coreboot + UEFI) - ... 7010 without credentials provided. User should not have access and ... DTS should inform about it. [Tags] optiplex_dpp - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -794,8 +719,6 @@ E2E004.004 Dell Optiplex 7010 DPP update (Coreboot + UEFI -> Coreboot + UEFI) - ... 7010 with credentials provided. User should have access, and firmware ... should be deployed. [Tags] optiplex_dpp - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -820,8 +743,6 @@ E2E004.005 Dell OptiPlex 9010 DPP initial deployment (legacy -> Coreboot + UEFI) ... 9010 without credentials provided. User should not have access and ... DTS should inform about it. [Tags] optiplex_dpp - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -848,8 +769,6 @@ E2E004.006 Dell Optiplex 9010 DPP initial deployment (legacy -> Coreboot + UEFI) ... 9010 with credentials provided. User should have access, and firmware ... should be deployed. [Tags] optiplex_dpp - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -873,8 +792,6 @@ E2E004.007 Dell Optiplex 9010 DPP update (Coreboot + UEFI -> Coreboot + UEFI) - ... 9010 without credentials provided. User should not have access and ... DTS should inform about it. [Tags] optiplex_dpp - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -896,8 +813,6 @@ E2E004.008 Dell Optiplex 9010 DPP update (Coreboot + UEFI -> Coreboot + UEFI) - ... 9010 with credentials provided. User should have access, and firmware ... should be deployed. [Tags] optiplex_dpp - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -927,8 +842,6 @@ E2E005.001 PC Engines DPP initial deployment (legacy -> Coreboot + UEFI) - no cr ... and do not provide DPP credentials. There should be no access granted ... for the firmware without credentials. [Tags] pcengines_dpp - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -953,8 +866,6 @@ E2E005.002 PC Engines DPP initial deployment (legacy -> Coreboot + UEFI) - with ... PC Engines with credentials provided (these should be provided via ... CMD). [Tags] pcengines_dpp - # 1) Get into DTS: - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -976,8 +887,6 @@ E2E005.003 PC Engines DPP initial deployment (legacy -> Coreboot + SeaBIOS) - wi ... on PC Engines. We start from legacy firmware and insert correct DPP keys ... for UEFI variant. [Tags] pcengines_seabios - # 1) Get into DTS: - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -1002,8 +911,6 @@ E2E005.004 PC Engines DPP initial deployment (legacy -> Coreboot + SeaBIOS) - wi ... on PC Engines. We start from legacy firmware and insert correct DPP ... keys for UEFI variant. [Tags] pcengines_seabios - # 1) Get into DTS: - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -1030,8 +937,6 @@ E2E006.001 Odroid H4 initial deployment (legacy -> Coreboot + UEFI) - without cr ... without credentials provided. User should not have access and DTS ... should inform about it. [Tags] odroid_dpp - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -1058,8 +963,6 @@ E2E006.002 Odroid H4 DPP initial deployment (legacy -> Coreboot + UEFI) - with c ... credentials provided. User should have access, and firmware should be ... deployed. [Tags] odroid_dpp - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -1083,8 +986,6 @@ E2E006.003 Odroid H4 update (Coreboot + UEFI -> Coreboot + UEFI) - without crede ... without credentials provided. User should not have access and DTS ... should inform about it. [Tags] odroid_dpp - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -1106,8 +1007,6 @@ E2E006.004 Odroid H4 DPP update (Coreboot + UEFI -> Coreboot + UEFI) - with cred ... 9010 with credentials provided. User should have access, and firmware ... should be deployed. [Tags] odroid_dpp - # 1) Get into DTS - Power On And Enter DTS Shell # 2) Emulate needed env.: Execute Command In Terminal @@ -1128,6 +1027,39 @@ E2E006.004 Odroid H4 DPP update (Coreboot + UEFI -> Coreboot + UEFI) - with cred *** Keywords *** +Prepare DTS Test + Start New DTS SSH Session In QEMU + +Teardown DTS Test + [Documentation] Close SSH session and cleanup all possible changes made + ... during test + Restore Initial DUT Connection Method + # not sure if it's needed if we don't want to keep multiple sessions in + # background + SSHLibrary.Close Connection + Set Prompt For Terminal bash-5.2# + Execute Linux Command rm -rf /etc/cloud-pass /root/.mc + +Start New DTS SSH Session In QEMU + [Documentation] Changes connection method to ssh and logs in to DTS + Set Global Variable ${DUT_CONNECTION_METHOD} SSH + Login To DTS Via SSH In QEMU + +Login To DTS Via SSH In QEMU + [Documentation] Modified 'Login to Linux via SSH' keyword with ip set to + ... localhost and port set to 5222. + [Arguments] ${timeout}=180 ${prompt}=root@DasharoToolsSuite:~# + SSHLibrary.Open Connection localhost port=5222 prompt=${prompt} + SSHLibrary.Set Client Configuration + ... timeout=${timeout} + ... term_type=vt100 + ... width=400 + ... height=100 + ... escape_ansi=True + ... newline=LF + Wait Until Keyword Succeeds 3x 1s + ... SSHLibrary.Login root + Power On And Enter DTS Shell [Documentation] This KW boots DTS using the method defined by user via ... DTS_BOOT_TYPE or the default one. After booting DTS shell is being From 0e2f99a4350fdb3eb9e3f6c280de1373171566d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Fri, 10 Jan 2025 22:48:14 +0100 Subject: [PATCH 026/416] requirements.txt: fixes logging in with empty SSH password MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Iwanicki --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 9158bfc4d6..246aa2137e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -55,7 +55,7 @@ robotframework-faker==5.0.0 robotframework-requests==0.9.4 robotframework-robocop==5.0.4 robotframework-sherlock==0.3.0 -robotframework-sshlibrary==3.5.1 +robotframework-sshlibrary @ git+https://github.com/MarketSquare/SSHLibrary@ba6c3ee783bd6fd8b73c1341fe873a99991a353a robotframework-tidy==4.11.0 rsa==4.9 scp==0.14.5 From d9dd99432d6cf1d2cd1cc0f24c0a30dbbfade66d Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Fri, 10 Jan 2025 10:34:54 +0100 Subject: [PATCH 027/416] self-tests/os-boot.robot: removed unused rte api reference Signed-off-by: Cezary Wieczorkowski --- self-tests/os-boot.robot | 1 - 1 file changed, 1 deletion(-) diff --git a/self-tests/os-boot.robot b/self-tests/os-boot.robot index d488baf97b..1d4dacf3c3 100644 --- a/self-tests/os-boot.robot +++ b/self-tests/os-boot.robot @@ -12,7 +12,6 @@ Library RequestsLibrary # TODO: maybe have a single file to include if we need to include the same # stuff in all test cases Resource ../sonoff-rest-api/sonoff-api.robot -Resource ../rtectrl-rest-api/rtectrl.robot Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot From 18d3fdc123871cf8573958617debea25c384d2f3 Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Fri, 10 Jan 2025 10:41:28 +0100 Subject: [PATCH 028/416] dasharo-compatibility/check-ethernet-ports-order.robot: added check to skip if the test shouldn't be run Signed-off-by: Cezary Wieczorkowski --- dasharo-compatibility/check-ethernet-ports-order.robot | 1 - 1 file changed, 1 deletion(-) diff --git a/dasharo-compatibility/check-ethernet-ports-order.robot b/dasharo-compatibility/check-ethernet-ports-order.robot index ba9f34b834..f88463d825 100644 --- a/dasharo-compatibility/check-ethernet-ports-order.robot +++ b/dasharo-compatibility/check-ethernet-ports-order.robot @@ -7,7 +7,6 @@ Library String Library Telnet timeout=20 seconds Library SSHLibrary timeout=90 seconds Library RequestsLibrary -Resource ../rtectrl-rest-api/rtectrl.robot Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot From d119366d3f00487f32918fcc3c08973c53b5e38f Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Fri, 10 Jan 2025 11:01:21 +0100 Subject: [PATCH 029/416] platform-configs/odroid-h4-plus.robot: updated variables describing DUT configuration Signed-off-by: Cezary Wieczorkowski --- platform-configs/odroid-h4-plus.robot | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index 87fb7d2b47..55c763d1a1 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -15,19 +15,18 @@ ${WIFI_CARD}= ${TBD} ${MAX_CPU_TEMP}= ${TBD} ${FW_VERSION}= ${TBD} ${DMIDECODE_SERIAL_NUMBER}= 123456789 -${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.0-rc1 +${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.0-rc3 ${DMIDECODE_PRODUCT_NAME}= ODROID-H4 -${DMIDECODE_RELEASE_DATE}= ${TBD} +${DMIDECODE_RELEASE_DATE}= 12/10/2024 ${DMIDECODE_MANUFACTURER}= HARDKERNEL -${DMIDECODE_VENDOR}= ${TBD} +${DMIDECODE_VENDOR}= 3mdeb ${DMIDECODE_FAMILY}= Default String ${DMIDECODE_TYPE}= Desktop -${DEVICE_USB_KEYBOARD}= ${TBD} -${DEVICE_NVME_DISK}= Samsung Electronics Co Ltd Device a80c -${DEVICE_AUDIO1}= HDA Intel PCH # codespell:ignore -${DEVICE_AUDIO2}= ${TBD} -${DEVICE_AUDIO1_WIN}= ${TBD} -${WIFI_CARD_UBUNTU}= ${TBD} +${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 +${DEVICE_NVME_DISK}= Non-Volatile memory controller +${CLEVO_DISK}= Samsung SSD 990 PRO 1TB +${DEVICE_AUDIO1}= ALC897 +${DEVICE_AUDIO2}= Alderlake-P HDMI ${USB_MODEL}= ${TBD} ${USB_DEVICE}= ${TBD} ${FLASHROM_FLAGS}= ${TBD} @@ -37,7 +36,7 @@ ${TESTS_IN_WINDOWS_SUPPORT}= ${TRUE} ${CUSTOM_BOOT_MENU_KEY_SUPPORT}= ${TRUE} ${INITIAL_CPU_FREQUENCY}= 800 -${PLATFORM_CPU_SPEED}= 3,60 +${PLATFORM_CPU_SPEED}= 2.0 ${CPU_MIN_FREQUENCY}= 800 ${CPU_MAX_FREQUENCY}= 3600 ${PLATFORM_RAM_SPEED}= 4800 From 29b0a6ad30526943ead7e4a02ac602791c1adda0 Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Fri, 10 Jan 2025 11:04:01 +0100 Subject: [PATCH 030/416] platform-configs/odroid-h4-plus.robot: added variables for dasharo compatibility testing Signed-off-by: Cezary Wieczorkowski --- platform-configs/odroid-h4-plus.robot | 31 +++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index 55c763d1a1..406cee28f1 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -32,8 +32,22 @@ ${USB_DEVICE}= ${TBD} ${FLASHROM_FLAGS}= ${TBD} ${TESTS_IN_FIRMWARE_SUPPORT}= ${TRUE} ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} -${TESTS_IN_WINDOWS_SUPPORT}= ${TRUE} ${CUSTOM_BOOT_MENU_KEY_SUPPORT}= ${TRUE} +${CUSTOM_SETUP_MENU_KEY_SUPPORT}= ${TRUE} +${DCU_UUID_SUPPORT}= ${TRUE} +${DCU_SERIAL_SUPPORT}= ${TRUE} +${CUSTOM_LOGO_SUPPORT}= ${TRUE} +${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}= ${EMPTY} +${ETH_PORTS}= ${EMPTY} +${USB_DISKS_DETECTION_SUPPORT}= ${TRUE} +${USB_KEYBOARD_DETECTION_SUPPORT}= ${TRUE} +${UEFI_SHELL_SUPPORT}= ${TRUE} +${NVME_DISK_SUPPORT}= ${TRUE} +${EMMC_SUPPORT}= ${TRUE} +${AUDIO_SUBSYSTEM_SUPPORT}= ${TRUE} +${EXTERNAL_HEADSET_SUPPORT}= ${TRUE} +${EXTERNAL_HDMI_DISPLAY_SUPPORT}= ${TRUE} +${EXTERNAL_DISPLAY_PORT_SUPPORT}= ${TRUE} ${INITIAL_CPU_FREQUENCY}= 800 ${PLATFORM_CPU_SPEED}= 2.0 @@ -48,14 +62,23 @@ ${DEF_CORES_PER_SOCKET}= 4 ${DEF_SOCKETS}= 1 ${DEF_ONLINE_CPU}= 0-3 ${FLASH_VERIFY_OPTION}= UEFI Shell # Selected One Time Boot option +${L2_CACHE_SUPPORT}= ${TRUE} +${L3_CACHE_SUPPORT}= ${TRUE} ${RESET_TO_DEFAULTS_SUPPORT}= ${TRUE} -${TPM_SUPPORT}= ${TRUE} ${IPXE_BOOT_SUPPORT}= ${TRUE} +${DASHARO_NETWORKING_MENU_SUPPORT}= ${TRUE} +${SERIAL_NUMBER_VERIFICATION}= ${TRUE} +${RELEASE_DATE_VERIFICATION}= ${TRUE} +${MANUFACTURER_VERIFICATION}= ${TRUE} ${FIRMWARE_NUMBER_VERIFICATION}= ${TRUE} ${PRODUCT_NAME_VERIFICATION}= ${TRUE} -${WIRELESS_CARD_WIFI_SUPPORT}= ${TRUE} -${PLATFORM_STABILITY_CHECKING}= ${TRUE} +${VENDOR_VERIFICATION}= ${TRUE} +${CUSTOM_NETWORK_BOOT_ENTRIES_SUPPORT}= ${TRUE} ${ONLY_FLASH_BIOS}= ${TRUE} +${UEFI_COMPATIBLE_INTERFACE_SUPPORT}= ${TRUE} +${CPU_TESTS_SUPPORT}= ${TRUE} +${DASHARO_POWER_MGMT_MENU_SUPPORT}= ${TRUE} +${ESP_SCANNING_SUPPORT}= ${TRUE} ${AUTO_BOOT_TIME_OUT_DEFAULT_VALUE}= 2 From 5f6ceabd5bab8824224e416621dbfdba89c5f60e Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Fri, 10 Jan 2025 11:07:06 +0100 Subject: [PATCH 031/416] platform-configs/odroid-h4-plus.robot: added keywords for dasharo security and dasharo stability tests Signed-off-by: Cezary Wieczorkowski --- platform-configs/odroid-h4-plus.robot | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index 406cee28f1..26226ce0ec 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -81,6 +81,23 @@ ${DASHARO_POWER_MGMT_MENU_SUPPORT}= ${TRUE} ${ESP_SCANNING_SUPPORT}= ${TRUE} ${AUTO_BOOT_TIME_OUT_DEFAULT_VALUE}= 2 +#Dasharo stability +${CPU_FREQUENCY_MEASURE}= ${TRUE} +${SERIAL_BOOT_MEASURE}= ${TRUE} +${CPU_TEMPERATURE_MEASURE}= ${TRUE} +${PLATFORM_STABILITY_CHECKING}= ${TRUE} + +#Dasharo security +${TPM_SUPPORT}= ${TRUE} +${TPM_DETECT_SUPPORT}= ${TRUE} +${VERIFIED_BOOT_SUPPORT}= ${TRUE} +${BIOS_LOCK_SUPPORT}= ${TRUE} +${DASHARO_SECURITY_MENU_SUPPORT}= ${TRUE} +${SECURE_BOOT_SUPPORT}= ${TRUE} +${UEFI_PASSWORD_SUPPORT}= ${TRUE} +${DASHARO_USB_MENU_SUPPORT}= ${TRUE} +${SMM_WRITE_PROTECTION_SUPPORT}= ${TRUE} + *** Keywords *** Power On From b34a29a553ad13659d8bb9f39525f05cf152b9e4 Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Tue, 14 Jan 2025 09:05:59 +0100 Subject: [PATCH 032/416] lib/power-after-fail-lib.robot: updated to use new RTE commands for power switching Signed-off-by: Cezary Wieczorkowski --- lib/power-after-fail-lib.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/power-after-fail-lib.robot b/lib/power-after-fail-lib.robot index 6fbddd74dc..4aa19b1ed2 100644 --- a/lib/power-after-fail-lib.robot +++ b/lib/power-after-fail-lib.robot @@ -17,8 +17,8 @@ Simulate Power Failure Read From Terminal Sonoff On ELSE - Rte Relay Toggle + Rte Psu Off Sleep 15s Read From Terminal - Rte Relay Toggle + Rte Psu On END From 6631aec206591b60df52ac26a7ca09c7ee6fbf44 Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Tue, 14 Jan 2025 09:19:24 +0100 Subject: [PATCH 033/416] dasharo-compatibility/esp-scanning.robot: changed keyword looking for DTS In ESP005.001 when looking for Dasharo Tools Suite boot entry the test would try to match a string " Dasharo Tools Suite on (* "this did not work in case of Odroid's firmware because entries are shown as "ENTRY (on DRIVE)". Signed-off-by: Cezary Wieczorkowski --- dasharo-compatibility/esp-scanning.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dasharo-compatibility/esp-scanning.robot b/dasharo-compatibility/esp-scanning.robot index 25007989cb..4bfc5f495c 100644 --- a/dasharo-compatibility/esp-scanning.robot +++ b/dasharo-compatibility/esp-scanning.robot @@ -86,7 +86,7 @@ ESP005.001 ESP Scan detects Dasharo Tools Suite ... f42b59633dbcc16ecbd7c98a880c582c5235c22626d7204202c922f3a7fa231b Power On ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - Should Contain Match ${boot_menu} Dasharo Tools Suite on (* + Should Contain Match ${boot_menu} Dasharo Tools Suite (on * ESP006.001 ESP Scan does not find non-block boot devices [Documentation] This test aims to verify that the firmware will not From bdb23a9ec5f8d85a24d334d5d23f714661482fc6 Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Tue, 14 Jan 2025 09:21:14 +0100 Subject: [PATCH 034/416] platform-configs/odroid-h4-plus.robot: Added variables for Dasharo stability tests Signed-off-by Cezary Wieczorkowski --- platform-configs/odroid-h4-plus.robot | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index 26226ce0ec..b90f74d6a3 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -79,15 +79,16 @@ ${UEFI_COMPATIBLE_INTERFACE_SUPPORT}= ${TRUE} ${CPU_TESTS_SUPPORT}= ${TRUE} ${DASHARO_POWER_MGMT_MENU_SUPPORT}= ${TRUE} ${ESP_SCANNING_SUPPORT}= ${TRUE} +${SUSPEND_AND_RESUME_SUPPORT}= ${TRUE} ${AUTO_BOOT_TIME_OUT_DEFAULT_VALUE}= 2 -#Dasharo stability + #Dasharo performance ${CPU_FREQUENCY_MEASURE}= ${TRUE} ${SERIAL_BOOT_MEASURE}= ${TRUE} ${CPU_TEMPERATURE_MEASURE}= ${TRUE} ${PLATFORM_STABILITY_CHECKING}= ${TRUE} -#Dasharo security + #Dasharo security ${TPM_SUPPORT}= ${TRUE} ${TPM_DETECT_SUPPORT}= ${TRUE} ${VERIFIED_BOOT_SUPPORT}= ${TRUE} @@ -98,6 +99,10 @@ ${UEFI_PASSWORD_SUPPORT}= ${TRUE} ${DASHARO_USB_MENU_SUPPORT}= ${TRUE} ${SMM_WRITE_PROTECTION_SUPPORT}= ${TRUE} + #Dasharo stability +${NVME_DETECTION_SUPPORT}= ${TRUE} +${USB_TYPE-A_DEVICES_DETECTION_SUPPORT}= ${TRUE} +${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 *** Keywords *** Power On From 00dbef9dbd4e2f220123cfca81cb5eab1f5e17ec Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Tue, 14 Jan 2025 10:59:41 +0100 Subject: [PATCH 035/416] platform-configs/odroid-h4-plus.robot: fixed formatting Fixed formatting to comply with style guidelines Signed-off-by: Cezary Wieczorkowski --- platform-configs/odroid-h4-plus.robot | 193 +++++++++++++------------- 1 file changed, 97 insertions(+), 96 deletions(-) diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index b90f74d6a3..2db4f9f2d7 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -3,106 +3,107 @@ Resource include/default.robot *** Variables *** -${INITIAL_DUT_CONNECTION_METHOD}= pikvm -${DUT_CONNECTION_METHOD}= pikvm -${FLASH_SIZE}= ${16*1024*1024} -${FLASH_LENGTH}= ${TBD} -${MANUFACTURER}= Hardkernel -${CPU}= Intel(R) N97 -${POWER_CTRL}= RteCtrl -${FLASH_VERIFY_METHOD}= tianocore-shell -${WIFI_CARD}= ${TBD} -${MAX_CPU_TEMP}= ${TBD} -${FW_VERSION}= ${TBD} -${DMIDECODE_SERIAL_NUMBER}= 123456789 -${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.0-rc3 -${DMIDECODE_PRODUCT_NAME}= ODROID-H4 -${DMIDECODE_RELEASE_DATE}= 12/10/2024 -${DMIDECODE_MANUFACTURER}= HARDKERNEL -${DMIDECODE_VENDOR}= 3mdeb -${DMIDECODE_FAMILY}= Default String -${DMIDECODE_TYPE}= Desktop -${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 -${DEVICE_NVME_DISK}= Non-Volatile memory controller -${CLEVO_DISK}= Samsung SSD 990 PRO 1TB -${DEVICE_AUDIO1}= ALC897 -${DEVICE_AUDIO2}= Alderlake-P HDMI -${USB_MODEL}= ${TBD} -${USB_DEVICE}= ${TBD} -${FLASHROM_FLAGS}= ${TBD} -${TESTS_IN_FIRMWARE_SUPPORT}= ${TRUE} -${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} -${CUSTOM_BOOT_MENU_KEY_SUPPORT}= ${TRUE} -${CUSTOM_SETUP_MENU_KEY_SUPPORT}= ${TRUE} -${DCU_UUID_SUPPORT}= ${TRUE} -${DCU_SERIAL_SUPPORT}= ${TRUE} -${CUSTOM_LOGO_SUPPORT}= ${TRUE} -${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}= ${EMPTY} -${ETH_PORTS}= ${EMPTY} -${USB_DISKS_DETECTION_SUPPORT}= ${TRUE} -${USB_KEYBOARD_DETECTION_SUPPORT}= ${TRUE} -${UEFI_SHELL_SUPPORT}= ${TRUE} -${NVME_DISK_SUPPORT}= ${TRUE} -${EMMC_SUPPORT}= ${TRUE} -${AUDIO_SUBSYSTEM_SUPPORT}= ${TRUE} -${EXTERNAL_HEADSET_SUPPORT}= ${TRUE} -${EXTERNAL_HDMI_DISPLAY_SUPPORT}= ${TRUE} -${EXTERNAL_DISPLAY_PORT_SUPPORT}= ${TRUE} +${INITIAL_DUT_CONNECTION_METHOD}= pikvm +${DUT_CONNECTION_METHOD}= pikvm +${FLASH_SIZE}= ${16*1024*1024} +${FLASH_LENGTH}= ${TBD} +${MANUFACTURER}= Hardkernel +${CPU}= Intel(R) N97 +${POWER_CTRL}= RteCtrl +${FLASH_VERIFY_METHOD}= tianocore-shell +${WIFI_CARD}= ${TBD} +${MAX_CPU_TEMP}= ${TBD} +${FW_VERSION}= ${TBD} +${DMIDECODE_SERIAL_NUMBER}= 123456789 +${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.0-rc3 +${DMIDECODE_PRODUCT_NAME}= ODROID-H4 +${DMIDECODE_RELEASE_DATE}= 12/10/2024 +${DMIDECODE_MANUFACTURER}= HARDKERNEL +${DMIDECODE_VENDOR}= 3mdeb +${DMIDECODE_FAMILY}= Default String +${DMIDECODE_TYPE}= Desktop +${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 +${DEVICE_NVME_DISK}= Non-Volatile memory controller +${CLEVO_DISK}= Samsung SSD 990 PRO 1TB +${DEVICE_AUDIO1}= ALC897 +${DEVICE_AUDIO2}= Alderlake-P HDMI +${USB_MODEL}= ${TBD} +${USB_DEVICE}= ${TBD} +${FLASHROM_FLAGS}= ${TBD} +${TESTS_IN_FIRMWARE_SUPPORT}= ${TRUE} +${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} +${CUSTOM_BOOT_MENU_KEY_SUPPORT}= ${TRUE} +${CUSTOM_SETUP_MENU_KEY_SUPPORT}= ${TRUE} +${DCU_UUID_SUPPORT}= ${TRUE} +${DCU_SERIAL_SUPPORT}= ${TRUE} +${CUSTOM_LOGO_SUPPORT}= ${TRUE} +${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}= ${EMPTY} +${ETH_PORTS}= ${EMPTY} +${USB_DISKS_DETECTION_SUPPORT}= ${TRUE} +${USB_KEYBOARD_DETECTION_SUPPORT}= ${TRUE} +${UEFI_SHELL_SUPPORT}= ${TRUE} +${NVME_DISK_SUPPORT}= ${TRUE} +${EMMC_SUPPORT}= ${TRUE} +${AUDIO_SUBSYSTEM_SUPPORT}= ${TRUE} +${EXTERNAL_HEADSET_SUPPORT}= ${TRUE} +${EXTERNAL_HDMI_DISPLAY_SUPPORT}= ${TRUE} +${EXTERNAL_DISPLAY_PORT_SUPPORT}= ${TRUE} -${INITIAL_CPU_FREQUENCY}= 800 -${PLATFORM_CPU_SPEED}= 2.0 -${CPU_MIN_FREQUENCY}= 800 -${CPU_MAX_FREQUENCY}= 3600 -${PLATFORM_RAM_SPEED}= 4800 -${PLATFORM_RAM_SIZE}= 8192 -${E_MMC_NAME}= PJ3032 -${DEF_THREADS_TOTAL}= 4 -${DEF_THREADS_PER_CORE}= 1 -${DEF_CORES_PER_SOCKET}= 4 -${DEF_SOCKETS}= 1 -${DEF_ONLINE_CPU}= 0-3 -${FLASH_VERIFY_OPTION}= UEFI Shell # Selected One Time Boot option -${L2_CACHE_SUPPORT}= ${TRUE} -${L3_CACHE_SUPPORT}= ${TRUE} -${RESET_TO_DEFAULTS_SUPPORT}= ${TRUE} -${IPXE_BOOT_SUPPORT}= ${TRUE} -${DASHARO_NETWORKING_MENU_SUPPORT}= ${TRUE} -${SERIAL_NUMBER_VERIFICATION}= ${TRUE} -${RELEASE_DATE_VERIFICATION}= ${TRUE} -${MANUFACTURER_VERIFICATION}= ${TRUE} -${FIRMWARE_NUMBER_VERIFICATION}= ${TRUE} -${PRODUCT_NAME_VERIFICATION}= ${TRUE} -${VENDOR_VERIFICATION}= ${TRUE} -${CUSTOM_NETWORK_BOOT_ENTRIES_SUPPORT}= ${TRUE} -${ONLY_FLASH_BIOS}= ${TRUE} -${UEFI_COMPATIBLE_INTERFACE_SUPPORT}= ${TRUE} -${CPU_TESTS_SUPPORT}= ${TRUE} -${DASHARO_POWER_MGMT_MENU_SUPPORT}= ${TRUE} -${ESP_SCANNING_SUPPORT}= ${TRUE} -${SUSPEND_AND_RESUME_SUPPORT}= ${TRUE} -${AUTO_BOOT_TIME_OUT_DEFAULT_VALUE}= 2 +${INITIAL_CPU_FREQUENCY}= 800 +${PLATFORM_CPU_SPEED}= 2.0 +${CPU_MIN_FREQUENCY}= 800 +${CPU_MAX_FREQUENCY}= 3600 +${PLATFORM_RAM_SPEED}= 4800 +${PLATFORM_RAM_SIZE}= 8192 +${E_MMC_NAME}= PJ3032 +${DEF_THREADS_TOTAL}= 4 +${DEF_THREADS_PER_CORE}= 1 +${DEF_CORES_PER_SOCKET}= 4 +${DEF_SOCKETS}= 1 +${DEF_ONLINE_CPU}= 0-3 +${FLASH_VERIFY_OPTION}= UEFI Shell # Selected One Time Boot option +${L2_CACHE_SUPPORT}= ${TRUE} +${L3_CACHE_SUPPORT}= ${TRUE} +${RESET_TO_DEFAULTS_SUPPORT}= ${TRUE} +${IPXE_BOOT_SUPPORT}= ${TRUE} +${DASHARO_NETWORKING_MENU_SUPPORT}= ${TRUE} +${SERIAL_NUMBER_VERIFICATION}= ${TRUE} +${RELEASE_DATE_VERIFICATION}= ${TRUE} +${MANUFACTURER_VERIFICATION}= ${TRUE} +${FIRMWARE_NUMBER_VERIFICATION}= ${TRUE} +${PRODUCT_NAME_VERIFICATION}= ${TRUE} +${VENDOR_VERIFICATION}= ${TRUE} +${CUSTOM_NETWORK_BOOT_ENTRIES_SUPPORT}= ${TRUE} +${ONLY_FLASH_BIOS}= ${TRUE} +${UEFI_COMPATIBLE_INTERFACE_SUPPORT}= ${TRUE} +${CPU_TESTS_SUPPORT}= ${TRUE} +${DASHARO_POWER_MGMT_MENU_SUPPORT}= ${TRUE} +${ESP_SCANNING_SUPPORT}= ${TRUE} +${SUSPEND_AND_RESUME_SUPPORT}= ${TRUE} +${AUTO_BOOT_TIME_OUT_DEFAULT_VALUE}= 2 - #Dasharo performance -${CPU_FREQUENCY_MEASURE}= ${TRUE} -${SERIAL_BOOT_MEASURE}= ${TRUE} -${CPU_TEMPERATURE_MEASURE}= ${TRUE} -${PLATFORM_STABILITY_CHECKING}= ${TRUE} +# Dasharo performance +${CPU_FREQUENCY_MEASURE}= ${TRUE} +${SERIAL_BOOT_MEASURE}= ${TRUE} +${CPU_TEMPERATURE_MEASURE}= ${TRUE} +${PLATFORM_STABILITY_CHECKING}= ${TRUE} - #Dasharo security -${TPM_SUPPORT}= ${TRUE} -${TPM_DETECT_SUPPORT}= ${TRUE} -${VERIFIED_BOOT_SUPPORT}= ${TRUE} -${BIOS_LOCK_SUPPORT}= ${TRUE} -${DASHARO_SECURITY_MENU_SUPPORT}= ${TRUE} -${SECURE_BOOT_SUPPORT}= ${TRUE} -${UEFI_PASSWORD_SUPPORT}= ${TRUE} -${DASHARO_USB_MENU_SUPPORT}= ${TRUE} -${SMM_WRITE_PROTECTION_SUPPORT}= ${TRUE} +# Dasharo security +${TPM_SUPPORT}= ${TRUE} +${TPM_DETECT_SUPPORT}= ${TRUE} +${VERIFIED_BOOT_SUPPORT}= ${TRUE} +${BIOS_LOCK_SUPPORT}= ${TRUE} +${DASHARO_SECURITY_MENU_SUPPORT}= ${TRUE} +${SECURE_BOOT_SUPPORT}= ${TRUE} +${UEFI_PASSWORD_SUPPORT}= ${TRUE} +${DASHARO_USB_MENU_SUPPORT}= ${TRUE} +${SMM_WRITE_PROTECTION_SUPPORT}= ${TRUE} + +# Dasharo stability +${NVME_DETECTION_SUPPORT}= ${TRUE} +${USB_TYPE-A_DEVICES_DETECTION_SUPPORT}= ${TRUE} +${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 - #Dasharo stability -${NVME_DETECTION_SUPPORT}= ${TRUE} -${USB_TYPE-A_DEVICES_DETECTION_SUPPORT}= ${TRUE} -${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 *** Keywords *** Power On From dcf842914f058e27deaebe7289a826dc9b9dcde2 Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Tue, 14 Jan 2025 11:49:32 +0100 Subject: [PATCH 036/416] platform-configs/odroid-h4-plus.robot: changed connection method to Telnet Signed-off-by: Cezary Wieczorkowski --- platform-configs/odroid-h4-plus.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index 2db4f9f2d7..51a665eab4 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -3,8 +3,8 @@ Resource include/default.robot *** Variables *** -${INITIAL_DUT_CONNECTION_METHOD}= pikvm -${DUT_CONNECTION_METHOD}= pikvm +${INITIAL_DUT_CONNECTION_METHOD}= Telnet +${DUT_CONNECTION_METHOD}= Telnet ${FLASH_SIZE}= ${16*1024*1024} ${FLASH_LENGTH}= ${TBD} ${MANUFACTURER}= Hardkernel From b524f958e0cbaa72ad6ae57ab9657390a0f0da92 Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Tue, 14 Jan 2025 13:35:48 +0100 Subject: [PATCH 037/416] lib/power-after-fail-lib.robot: removed sonoff power control Switching between using sonoff or RTE relay is already handled by osfv_cli libraries. Signed-off-by: Cezary Wieczorkowski --- lib/power-after-fail-lib.robot | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/lib/power-after-fail-lib.robot b/lib/power-after-fail-lib.robot index 4aa19b1ed2..ea7074b2af 100644 --- a/lib/power-after-fail-lib.robot +++ b/lib/power-after-fail-lib.robot @@ -5,20 +5,14 @@ Documentation Collection of keywords related to the Power State After *** Keywords *** Simulate Power Failure - [Documentation] This keyword simulates a power failure to the DUT, - ... preferably using sonoff. If it's unavailable, the fallback is RTE. + [Documentation] This keyword simulates a power failure to the DUT. + ... It is using osfv_cli libraries which control the power + ... via a RTE relay or a sonoff. # Use 15 seconds delay because if power is absent for less than roughly 10 # seconds the platform powers on regardless of the settings (original # firmware behaves the same) and waiting 10 seconds doesn't produce stable # results. - IF 'sonoff' == '${POWER_CTRL}' - Sonoff Off - Sleep 15s - Read From Terminal - Sonoff On - ELSE - Rte Psu Off - Sleep 15s - Read From Terminal - Rte Psu On - END + Rte Psu Off + Sleep 15s + Read From Terminal + Rte Psu On From 3d04121e691375c8eff9bb96dce6e489e97e1a77 Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Tue, 14 Jan 2025 13:41:55 +0100 Subject: [PATCH 038/416] platform-configs/odroid-h4-plus.robot: added variables for dasharo-security Added missing variables to enable verified boot and measured boot tests Signed-off-by: Cezary Wieczorkowski --- platform-configs/odroid-h4-plus.robot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index 51a665eab4..55ab228290 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -98,6 +98,8 @@ ${SECURE_BOOT_SUPPORT}= ${TRUE} ${UEFI_PASSWORD_SUPPORT}= ${TRUE} ${DASHARO_USB_MENU_SUPPORT}= ${TRUE} ${SMM_WRITE_PROTECTION_SUPPORT}= ${TRUE} +${VERIFIED_BOOT_POPUP_SUPPORT}= ${TRUE} +${MEASURED_BOOT_SUPPORT}= ${TRUE} # Dasharo stability ${NVME_DETECTION_SUPPORT}= ${TRUE} From 2e50033638290655e3ea3b6ba5e49efa5b4e30d8 Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Tue, 14 Jan 2025 13:59:21 +0100 Subject: [PATCH 039/416] keywords.robot: modified keywords for Linux display tests Modified a command used for listing HDMI and DP ports to list all available ports. Output of the command is split on a newline and all lines are checked so if any of the available ports is connected the test will pass. Signed-off-by: Cezary Wieczorkowski --- keywords.robot | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keywords.robot b/keywords.robot index 27d7aade99..a130db46dd 100644 --- a/keywords.robot +++ b/keywords.robot @@ -910,16 +910,16 @@ Check Internal LCD Windows Check External HDMI In Linux [Documentation] Keyword checks if an external HDMI device is visible ... in Linux OS. - ${out}= Execute Linux Command cat /sys/class/drm/card*/* - - Should Contain ${out} connected + ${out}= Execute Linux Command cat /sys/class/drm/card*-HDMI-*/status + ${words}= Split To Lines ${out} + Should Contain ${words} connected Check External DP In Linux [Documentation] Keyword checks if an external Display Port device is ... visible in Linux OS. - ${out}= Execute Linux Command cat /sys/class/drm/card0-DP-1/status - Should Not Contain ${out} disconnected - Should Contain ${out} connected + ${out}= Execute Linux Command cat /sys/class/drm/card*-DP-*/status + ${words}= Split To Lines ${out} + Should Contain ${words} connected Device Detection In Linux [Documentation] Keyword checks if a given device name as a parameter is From 43907ac52fc59915f725d2d19b065b4b88d6ea44 Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Thu, 16 Jan 2025 12:10:57 +0100 Subject: [PATCH 040/416] lib/options/uefi-setup-menu.robot: removed unnecessary argument Passing an argument to a Power Cycle On keyword caused an exception since this keyword does not require any arguments. Signed-off-by: Cezary Wieczorkowski --- lib/options/uefi-setup-menu.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/options/uefi-setup-menu.robot b/lib/options/uefi-setup-menu.robot index e95048bba9..0d90a6929a 100644 --- a/lib/options/uefi-setup-menu.robot +++ b/lib/options/uefi-setup-menu.robot @@ -88,7 +88,7 @@ Measure Coldboot Time Log To Console \n # Do one more iteration than requested, as we may hit first boot which is always longer. FOR ${index} IN RANGE 0 ${iterations}+1 - Power Cycle On power_button=${TRUE} + Power Cycle On Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User From 93f999bc4f309c3ea4e6906ce805b99b3eaf3df9 Mon Sep 17 00:00:00 2001 From: Pawel Langowski Date: Mon, 10 Jun 2024 12:10:24 +0200 Subject: [PATCH 041/416] Remove usb boot kw Signed-off-by: Pawel Langowski --- dasharo-compatibility/coreboot-fan-control.robot | 14 ++++++++------ dasharo-compatibility/flash-write-protection.robot | 10 ++++++---- dasharo-compatibility/usb-boot.robot | 12 +++++++++--- keywords.robot | 3 ++- lib/bios/menus.robot | 11 +++++++++++ 5 files changed, 36 insertions(+), 14 deletions(-) diff --git a/dasharo-compatibility/coreboot-fan-control.robot b/dasharo-compatibility/coreboot-fan-control.robot index 23982fa11a..718b91e539 100644 --- a/dasharo-compatibility/coreboot-fan-control.robot +++ b/dasharo-compatibility/coreboot-fan-control.robot @@ -28,10 +28,11 @@ Suite Teardown Run Keyword CFN001.001 CPU temperature and fan speed can be read (Debian) [Documentation] Check whether the data of CPU temperature and CPU fan ... is available and can be read. - Skip If not ${TESTS_IN_DEBIAN_SUPPORT} CFN001.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CFN001.001 not supported Power On - Boot From USB - Serial Root Login Linux debian + Boot System Or From Connected Disk ubuntu + Login To Linux + Switch To Root User ${rpm} ${temperature}= Get CPU Temperature And CPU Fan Speed IF ${rpm}==${0} FAIL Fan speed not measured IF ${temperature}==${0} FAIL Temperature not measured @@ -39,10 +40,11 @@ CFN001.001 CPU temperature and fan speed can be read (Debian) CFN002.001 CPU fan speed increases if the temperature rises (Debian) [Documentation] Check whether CPU fan speed increases if the CPU ... temperature rises. - Skip If not ${TESTS_IN_DEBIAN_SUPPORT} CFN002.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CFN002.001 not supported Power On - Boot From USB - Serial Root Login Linux debian + Boot System Or From Connected Disk ubuntu + Login To Linux + Switch To Root User # Colling procedure: sometimes before starting the test case, CPU # temperature or CPU's fan speed might be too high. To prevent test case # from failing a cooling procedure is used. This procedure is to delay the diff --git a/dasharo-compatibility/flash-write-protection.robot b/dasharo-compatibility/flash-write-protection.robot index d12014b1b0..fd0da31acd 100644 --- a/dasharo-compatibility/flash-write-protection.robot +++ b/dasharo-compatibility/flash-write-protection.robot @@ -29,16 +29,18 @@ HWP001.001 Hardware flash write protection support [Documentation] Check whether the DUT support hardware write protection ... mechanism. Power On - Boot From USB - Serial Root Login Linux debian + Boot System Or From Connected Disk ubuntu + Login To Linux + Switch To Root User Check Write Protection Availability HWP002.001 Hardware flash write protection enable / disable [Documentation] Check whether there is a possibility to set and erase ... hardware write protection on the DUT. Power On - Boot From USB - Serial Root Login Linux debian + Boot System Or From Connected Disk ubuntu + Login To Linux + Switch To Root User Erase Write Protection Set Write Protection 0x00000000 ${FLASH_LENGTH} Check Write Protection Status diff --git a/dasharo-compatibility/usb-boot.robot b/dasharo-compatibility/usb-boot.robot index bdeab36af9..d38980331c 100644 --- a/dasharo-compatibility/usb-boot.robot +++ b/dasharo-compatibility/usb-boot.robot @@ -37,7 +37,9 @@ UBT001.001 USB detect and boot after coldboot FOR ${index} IN RANGE 0 ${BOOT_FROM_USB_ITERATIONS_NUMBER} TRY Power Cycle On - Boot From USB + ${usb}= Get USB Boot Option + Power On + Boot System Or From Connected Disk ${usb} IF '${PLATFORM}' == 'raptor-cs_talos2' Login To Linux ELSE @@ -63,7 +65,9 @@ UBT002.001 USB detect and boot after warmboot FOR ${index} IN RANGE 0 ${BOOT_FROM_USB_ITERATIONS_NUMBER} TRY Power On - Boot From USB + ${usb}= Get USB Boot Option + Power On + Boot System Or From Connected Disk ${usb} IF '${PLATFORM}' == 'raptor-cs_talos2' Login To Linux ELSE @@ -89,7 +93,9 @@ UBT003.001 USB detect and boot after system reboot Power On FOR ${index} IN RANGE 0 ${BOOT_FROM_USB_ITERATIONS_NUMBER} TRY - Boot From USB + ${usb}= Get USB Boot Option + Power On + Boot System Or From Connected Disk ${usb} IF '${PLATFORM}' != 'raptor-cs_talos2' Reboot Via Linux On USB IF '${PLATFORM}' == 'raptor-cs_talos2' Login To Linux IF '${PLATFORM}' == 'raptor-cs_talos2' diff --git a/keywords.robot b/keywords.robot index a130db46dd..79d725da06 100644 --- a/keywords.robot +++ b/keywords.robot @@ -1340,7 +1340,8 @@ Coldboot Via RTE Relay Reboot Via OS Boot By Petitboot [Documentation] Reboot system with system installed on the DUT while ... already logged into Petitboot. - Boot From USB + ${usb_option}= Get USB Boot Option + Boot System Or From Connected Disk ${usb_option} Login To Linux Execute Linux Command reboot Sleep 60s diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index 31531bd561..81655a1054 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -648,3 +648,14 @@ Get Firmware Version From Tianocore Setup Menu ${firmware_line}= Get Lines Containing String ${output} Dasharo (coreboot+UEFI) ${firmware_version}= Get Regexp Matches ${firmware_line} v\\d{1,}\.\\d{1,}\.\\d{1,} RETURN ${firmware_version} + +Get USB Boot Option + [Documentation] Returns the full name of the first boot option + ... containing "USB" + ${menu_construction}= Enter Boot Menu Tianocore And Return Construction + FOR ${option} IN @{menu_construction} + ${match}= Run Keyword And Return Status Should Match Regexp + ... ${option} .*[Uu][Ss][Bb].* + IF ${match} RETURN ${option} + END + FAIL "No USB boot option found" From 8dc7b8ebea4dcbcc3bf6a89e6cbf0ea4b0a1e51f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Wed, 26 Jun 2024 15:48:18 +0200 Subject: [PATCH 042/416] menus.robot: Get USB Boot Option - check if it's USB in Drive Path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Iwanicki --- lib/bios/menus.robot | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index 81655a1054..8c4c1a7456 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -652,10 +652,29 @@ Get Firmware Version From Tianocore Setup Menu Get USB Boot Option [Documentation] Returns the full name of the first boot option ... containing "USB" - ${menu_construction}= Enter Boot Menu Tianocore And Return Construction - FOR ${option} IN @{menu_construction} - ${match}= Run Keyword And Return Status Should Match Regexp - ... ${option} .*[Uu][Ss][Bb].* - IF ${match} RETURN ${option} + ${menu}= Enter Setup Menu Tianocore And Return Construction + ${menu}= Enter Submenu From Snapshot And Return Construction + ... ${menu} + ... One Time Boot + Press Key N Times 1 ${ARROW_DOWN} + Read From Terminal + Press Key N Times 1 ${ARROW_UP} + FOR ${menu_option} IN @{menu} + ${screen}= Read From Terminal + ${start}= Call Method ${screen} index Device Path : + ${end}= Call Method ${screen} index F9\=Reset + ${screen}= Get Substring ${screen} ${start} ${end} + @{screen_lines}= Split To Lines ${screen} + ${side_text}= Set Variable ${EMPTY} + FOR ${index} ${line} IN ENUMERATE @{screen_lines} + ${len}= Get Length ${line} + IF ${len} < 54 CONTINUE + ${side_text}= Catenate ${side_text} ${line}[-25:] + END + ${side_text}= Remove String ${side_text} \n ${SPACE} + ${is_usb}= Run Keyword And Return Status + ... Should Contain ${side_text} USB ignore_case=${TRUE} + IF ${is_usb} RETURN ${menu_option} + Press Key N Times 1 ${ARROW_DOWN} END FAIL "No USB boot option found" From 91eded81e97e3436dc70d5c85f6ec36e5b358516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Wed, 3 Jul 2024 15:05:20 +0200 Subject: [PATCH 043/416] dasharo-compatibility: usb-detect: Fix keywords MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove non existing keywords and fix "Enter Tianocore" keyword Signed-off-by: Michał Iwanicki --- dasharo-compatibility/usb-detect.robot | 31 +++----------------------- 1 file changed, 3 insertions(+), 28 deletions(-) diff --git a/dasharo-compatibility/usb-detect.robot b/dasharo-compatibility/usb-detect.robot index 4e56be9c4e..84629bccda 100644 --- a/dasharo-compatibility/usb-detect.robot +++ b/dasharo-compatibility/usb-detect.robot @@ -39,16 +39,7 @@ UDT001.001 USB detection after coldboot TRY ${usb}= Evaluate 0 Power Cycle On - IF '${PAYLOAD}' == 'tianocore' - Enter Boot Menu Tianocore - ${menu}= Read From Terminal Until ESC to exit - ELSE IF '${PAYLOAD}' == 'seabios' - ${menu}= Enter SeaBIOS And Return Menu - ELSE IF '${PAYLOAD}' == 'petitboot' - ${menu}= Enter Petitboot And Return Menu - ELSE - ${menu}= FAIL Unknown payload: ${PAYLOAD} - END + ${menu}= Enter Boot Menu Tianocore And Return Construction FOR ${stick} IN @{ATTACHED_USB} ${usb_tmp}= Get Count ${menu} ${stick} ${usb}= Evaluate ${usb} + ${usb_tmp} @@ -80,15 +71,7 @@ UDT001.002 USB detection after warmboot TRY ${usb}= Evaluate 0 Power On - IF '${PAYLOAD}' == 'tianocore' - ${menu}= Enter Tianocore And Return Menu - ELSE IF '${PAYLOAD}' == 'seabios' - ${menu}= Enter SeaBIOS And Return Menu - ELSE IF '${PAYLOAD}' == 'petitboot' - ${menu}= Enter Petitboot And Return Menu - ELSE - ${menu}= FAIL Unknown payload: ${PAYLOAD} - END + ${menu}= Enter Boot Menu Tianocore And Return Construction FOR ${stick} IN @{ATTACHED_USB} ${usb_tmp}= Get Count ${menu} ${stick} ${usb}= Evaluate ${usb} + ${usb_tmp} @@ -128,15 +111,7 @@ UDT001.003 USB detection after system reboot ELSE FAIL Unknown payload: ${PAYLOAD} END - IF '${PAYLOAD}' == 'tianocore' - ${menu}= Enter Tianocore And Return Menu - ELSE IF '${PAYLOAD}' == 'seabios' - ${menu}= Enter SeaBIOS And Return Menu - ELSE IF '${PAYLOAD}' == 'petitboot' - ${menu}= Enter Petitboot And Return Menu - ELSE - ${menu}= FAIL Unknown payload: ${PAYLOAD} - END + ${menu}= Enter Boot Menu Tianocore And Return Construction FOR ${stick} IN @{ATTACHED_USB} ${usb_tmp}= Get Count ${menu} ${stick} ${usb}= Evaluate ${usb} + ${usb_tmp} From b221414123a2cc1115917de6527a5b0f3d1b346c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Wed, 3 Jul 2024 15:09:52 +0200 Subject: [PATCH 044/416] robot-compatibility: usb-{boot|detect}: Fail tests faster MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No reason to try to boot 5 times if test will fail anyway after n-th fail. Fail immediately after number of fails goes beyond threshold Signed-off-by: Michał Iwanicki --- dasharo-compatibility/usb-boot.robot | 20 ++++++++++---------- dasharo-compatibility/usb-detect.robot | 18 +++++++++--------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/dasharo-compatibility/usb-boot.robot b/dasharo-compatibility/usb-boot.robot index d38980331c..00262b06ca 100644 --- a/dasharo-compatibility/usb-boot.robot +++ b/dasharo-compatibility/usb-boot.robot @@ -50,11 +50,11 @@ UBT001.001 USB detect and boot after coldboot END EXCEPT ${failed_boot}= Evaluate ${failed_boot} + 1 + IF '${failed_boot}' > '${ALLOWED_FAILS_USB_BOOT}' + Fail Boot from USB failed too many times (${failed_boot}) + END END END - IF '${failed_boot}' > '${ALLOWED_FAILS_USB_BOOT}' - Fail Boot from USB failed too many times (${failed_boot}) - END UBT002.001 USB detect and boot after warmboot [Documentation] Check whether the DUT properly detects USB device and @@ -78,11 +78,11 @@ UBT002.001 USB detect and boot after warmboot END EXCEPT ${failed_boot}= Evaluate ${failed_boot} + 1 + IF '${failed_boot}' > '${ALLOWED_FAILS_USB_BOOT}' + Fail Boot from USB failed too many times (${failed_boot}) + END END END - IF '${failed_boot}' > '${ALLOWED_FAILS_USB_BOOT}' - Fail Boot from USB failed too many times (${failed_boot}) - END UBT003.001 USB detect and boot after system reboot [Documentation] Check whether the DUT properly detects USB device and @@ -97,17 +97,17 @@ UBT003.001 USB detect and boot after system reboot Power On Boot System Or From Connected Disk ${usb} IF '${PLATFORM}' != 'raptor-cs_talos2' Reboot Via Linux On USB - IF '${PLATFORM}' == 'raptor-cs_talos2' Login To Linux IF '${PLATFORM}' == 'raptor-cs_talos2' + Login To Linux Write Into Terminal reboot END EXCEPT ${failed_boot}= Evaluate ${failed_boot} + 1 + IF '${failed_boot}' > '${ALLOWED_FAILS_USB_BOOT}' + Fail Boot from USB failed too many times (${failed_boot}) + END END END - IF '${failed_boot}' > '${ALLOWED_FAILS_USB_BOOT}' - Fail Boot from USB failed too many times (${failed_boot}) - END *** Keywords *** diff --git a/dasharo-compatibility/usb-detect.robot b/dasharo-compatibility/usb-detect.robot index 84629bccda..7088a94f51 100644 --- a/dasharo-compatibility/usb-detect.robot +++ b/dasharo-compatibility/usb-detect.robot @@ -54,11 +54,11 @@ UDT001.001 USB detection after coldboot Should Be Equal As Integers ${usb} ${usb_count} EXCEPT ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 + IF '${failed_detection}' > '${ALLOWED_FAILS_USB_DETECT}' + Fail Detection failed too many times (${failed_detection}) + END END END - IF '${failed_detection}' > '${ALLOWED_FAILS_USB_DETECT}' - Fail Detection failed too many times (${failed_detection}) - END UDT001.002 USB detection after warmboot [Documentation] Check whether the DUT detects properly USB device after @@ -86,11 +86,11 @@ UDT001.002 USB detection after warmboot Should Be Equal As Integers ${usb} ${usb_count} EXCEPT ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 + IF '${failed_detection}' > '${ALLOWED_FAILS_USB_DETECT}' + Fail Detection failed too many times (${failed_detection}) + END END END - IF '${failed_detection}' > '${ALLOWED_FAILS_USB_DETECT}' - Fail Detection failed too many times (${failed_detection}) - END UDT001.003 USB detection after system reboot [Documentation] Check whether the DUT detects properly USB device after @@ -126,11 +126,11 @@ UDT001.003 USB detection after system reboot Should Be Equal As Integers ${usb} ${usb_count} EXCEPT ${failed_detection}= Evaluate ${failed_detection} + 1 + IF '${failed_detection}' > '${ALLOWED_FAILS_USB_DETECT}' + Fail Detection failed too many times (${failed_detection}) + END END END - IF '${failed_detection}' > '${ALLOWED_FAILS_USB_DETECT}' - Fail Detection failed too many times (${failed_detection}) - END *** Keywords *** From e752a479b29a0c0c44ec4430c231900ff0889494 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Wed, 3 Jul 2024 18:42:18 +0200 Subject: [PATCH 045/416] dasharo-compatibility: usb-hid-and-msc: Skip keyboard and HID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit tests if no keyboard or pikvm connected Signed-off-by: Michał Iwanicki --- .../usb-hid-and-msc-support.robot | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 514041f73d..281ae2ac7e 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -18,7 +18,7 @@ Resource ../keys.robot # Required teardown keywords: # Log Out And Close Connection - elementary teardown keyword for all tests. Suite Setup Run Keyword -... Prepare Test Suite +... Prepare USB HID Test Suite Suite Teardown Run Keyword ... Log Out And Close Connection @@ -45,7 +45,7 @@ USB001.002 USB devices detected by OS (Ubuntu) Switch To Root User Detect Or Install Package usbutils ${out}= Execute Command In Terminal lsusb -v | grep bInterfaceClass - Should Contain ${out} Human Interface Device + IF ${HAS_KEYBOARD} Should Contain ${out} Human Interface Device Should Contain ${out} Mass Storage Exit From Root User @@ -56,8 +56,9 @@ USB001.003 USB devices detected by OS (Windows) Skip If not ${TESTS_IN_WINDOWS_SUPPORT} USB001.003 not supported Power On Login To Windows - ${out}= Execute Command In Terminal Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' } - Should Contain ${out} HIDClass + ${out}= Execute Command In Terminal + ... Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' } + IF ${HAS_KEYBOARD} Should Contain ${out} HIDClass Should Contain ${out} DiskDrive USB002.001 USB keyboard detected in FW @@ -65,7 +66,8 @@ USB002.001 USB keyboard detected in FW ... correctly by the firmware and all basic keys work ... according to their labels. [Tags] minimal-regression - Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} USB002.001 not supported + Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} + Skip If not ${HAS_KEYBOARD} USB002.001 not supported Power On Enter UEFI Shell ${out}= Execute UEFI Shell Command devices @@ -73,12 +75,10 @@ USB002.001 USB keyboard detected in FW USB002.002 USB keyboard in OS (Ubuntu) [Documentation] Check whether the external USB keyboard is detected - ... correctly by the Linux OS and all basic keys work - ... according to their labels. - IF not ${USB_KEYBOARD_DETECTION_SUPPORT} - SKIP USB002.002 not supported - END - IF not ${TESTS_IN_UBUNTU_SUPPORT} SKIP USB002.002 not supported + ... correctly by the Linux OS. + Skip If not ${USB_KEYBOARD_DETECTION_SUPPORT} USB002.002 not supported + Skip If "${DEVICE_USB_KEYBOARD}" == "${EMPTY}" USB002.002 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} USB002.002 not supported Power On Boot System Or From Connected Disk ubuntu Login To Linux @@ -89,10 +89,9 @@ USB002.002 USB keyboard in OS (Ubuntu) USB002.003 USB keyboard in OS (Windows) [Documentation] Check whether the external USB keyboard is detected ... correctly by the Windows OS. - IF not ${USB_KEYBOARD_DETECTION_SUPPORT} - SKIP USB002.003 not supported - END - IF not ${TESTS_IN_WINDOWS_SUPPORT} SKIP USB002.003 not supported + Skip If not ${USB_KEYBOARD_DETECTION_SUPPORT} USB002.003 not supported + Skip If not ${HAS_KEYBOARD} USB002.003 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} USB002.003 not supported Power On Login To Windows ${out}= Execute Command In Terminal Get-CimInstance win32_KEYBOARD @@ -131,3 +130,14 @@ USB003.002 Upload 1GB file on USB storage (Windows) Execute Command In Terminal Remove-Item -Path C:\\Users\\user\\test_file.txt Execute Command In Terminal Remove-Item -Path ${drive_letter}:\\test_file.txt Should Be Equal ${hash1} ${hash2} + + +*** Keywords *** +Prepare USB HID Test Suite + [Documentation] Prepare this test suite + Prepare Test Suite + IF "${DEVICE_USB_KEYBOARD}" != "${EMPTY}" or "${DUT_CONNECTION_METHOD}" == "pikvm" + Set Suite Variable $HAS_KEYBOARD ${TRUE} + ELSE + Set Suite Variable $HAS_KEYBOARD ${FALSE} + END From e7fd51b7393f8733c71850124666de005bedd45a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Wed, 3 Jul 2024 18:43:28 +0200 Subject: [PATCH 046/416] dasharo-compatibility: usb-hid-and-msc: Don't mount ISO if no pikvm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Iwanicki --- dasharo-compatibility/usb-hid-and-msc-support.robot | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 281ae2ac7e..0dcbc7ad71 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -29,7 +29,9 @@ USB001.001 USB devices detected in FW ... (edk2). Skip If not ${USB_DISKS_DETECTION_SUPPORT} USB001.001 not supported Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} - Upload And Mount DTS Flash Iso + IF "${DUT_CONNECTION_METHOD}" == "pikvm" + Upload And Mount DTS Flash Iso + END Power On ${boot_menu}= Enter Boot Menu Tianocore And Return Construction Check That USB Devices Are Detected ${boot_menu} From 81b237b6207d9ff0b4aa55bb991ad5acfe792b6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Thu, 4 Jul 2024 11:44:49 +0200 Subject: [PATCH 047/416] platform-configs: default & protectli: move ATTACHED_USB to default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Iwanicki --- platform-configs/include/default.robot | 1 + platform-configs/protectli-vp2410.robot | 2 -- platform-configs/protectli-vp2420.robot | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index caa4fd34ae..3fbc2d2e0e 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -69,6 +69,7 @@ ${DEVICE_AUDIO1_WIN}= ${TBD} ${WIFI_CARD_UBUNTU}= ${TBD} ${USB_MODEL}= ${TBD} ${USB_DEVICE}= ${TBD} +@{ATTACHED_USB}= ${TBD} ${FLASHROM_FLAGS}= ${TBD} diff --git a/platform-configs/protectli-vp2410.robot b/platform-configs/protectli-vp2410.robot index ffca49f15d..679574ecb5 100644 --- a/platform-configs/protectli-vp2410.robot +++ b/platform-configs/protectli-vp2410.robot @@ -17,8 +17,6 @@ ${CPU_MIN_FREQUENCY}= 300 # eMMC driver support ${E_MMC_NAME}= 8GTF4R -@{ATTACHED_USB}= @{EMPTY} - ${DMIDECODE_SERIAL_NUMBER}= N/A ${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v ${DMIDECODE_PRODUCT_NAME}= VP2410 diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index d7d430530d..a95dacacea 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -8,6 +8,7 @@ ${FLASHING_METHOD}= internal # eMMC driver support ${E_MMC_NAME}= 8GTF4R + ${DMIDECODE_SERIAL_NUMBER}= N/A ${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v1.2.1-rc1 ${DMIDECODE_PRODUCT_NAME}= VP2420 From 50b969f242f66ca1f986cb52d711ea74f88db2e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Thu, 4 Jul 2024 16:39:17 +0200 Subject: [PATCH 048/416] dasharo-compatibility: usb: Skip tests with no keyboard or storage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Iwanicki --- .../usb-hid-and-msc-support.robot | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 0dcbc7ad71..7a8be16dae 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -28,6 +28,7 @@ USB001.001 USB devices detected in FW [Documentation] Check whether USB devices are detected in Tianocore ... (edk2). Skip If not ${USB_DISKS_DETECTION_SUPPORT} USB001.001 not supported + Skip If not ${HAS_USB_STORAGE} USB001.001 not supported Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} IF "${DUT_CONNECTION_METHOD}" == "pikvm" Upload And Mount DTS Flash Iso @@ -48,7 +49,7 @@ USB001.002 USB devices detected by OS (Ubuntu) Detect Or Install Package usbutils ${out}= Execute Command In Terminal lsusb -v | grep bInterfaceClass IF ${HAS_KEYBOARD} Should Contain ${out} Human Interface Device - Should Contain ${out} Mass Storage + IF ${HAS_USB_STORAGE} Should Contain ${out} Mass Storage Exit From Root User USB001.003 USB devices detected by OS (Windows) @@ -61,7 +62,7 @@ USB001.003 USB devices detected by OS (Windows) ${out}= Execute Command In Terminal ... Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' } IF ${HAS_KEYBOARD} Should Contain ${out} HIDClass - Should Contain ${out} DiskDrive + IF ${HAS_USB_STORAGE} Should Contain ${out} DiskDrive USB002.001 USB keyboard detected in FW [Documentation] Check whether the external USB keyboard is detected @@ -103,8 +104,9 @@ USB002.003 USB keyboard in OS (Windows) USB003.001 Upload 1GB file on USB storage (Ubuntu) [Documentation] Check whether the 1GB file can be transferred from the ... operating system to the USB storage. - IF not ${UPLOAD_ON_USB_SUPPORT} SKIP USB003.001 not supported - IF not ${TESTS_IN_UBUNTU_SUPPORT} SKIP USB003.001 not supported + Skip If not ${UPLOAD_ON_USB_SUPPORT} USB003.001 not supported + Skip If not ${HAS_USB_STORAGE} USB003.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} USB003.001 not supported Power On Boot System Or From Connected Disk ubuntu Login To Linux @@ -119,8 +121,9 @@ USB003.001 Upload 1GB file on USB storage (Ubuntu) USB003.002 Upload 1GB file on USB storage (Windows) [Documentation] Check whether the 1GB file can be transferred from the ... operating system to the USB storage. - IF not ${UPLOAD_ON_USB_SUPPORT} SKIP USB003.002 not supported - IF not ${TESTS_IN_WINDOWS_SUPPORT} SKIP USB003.002 not supported + Skip If not ${UPLOAD_ON_USB_SUPPORT} USB003.002 not supported + Skip If not ${HAS_USB_STORAGE} USB003.002 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} USB003.002 not supported Power On Login To Windows Generate 1GB File In Windows @@ -143,3 +146,16 @@ Prepare USB HID Test Suite ELSE Set Suite Variable $HAS_KEYBOARD ${FALSE} END + ${conf}= Get Current CONFIG ${CONFIG_LIST} + ${has_storage}= Evaluate "USB_Storage" in """${conf}""" + IF "${DUT_CONNECTION_METHOD}" == "pikvm" + Upload And Mount DTS Flash Iso + ${has_storage}= Set Variable ${TRUE} + END + IF "${ATTACHED_USB}" != "${EMPTY}" or ${has_storage} + Set Suite Variable $HAS_USB_STORAGE ${TRUE} + ELSE + Set Suite Variable $HAS_USB_STORAGE ${FALSE} + END + Skip If not ${HAS_KEYBOARD} and not ${HAS_USB_STORAGE} + ... Platform doesn't have USB keyboard or USB storage attached From 0c8e88fa28ec40555f3103fe7c0521352e6404b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Thu, 4 Jul 2024 16:49:59 +0200 Subject: [PATCH 049/416] dasharo-compatibility: usb-hid-msc: fix tests on Windows & Linux MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Iwanicki --- .../usb-hid-and-msc-support.robot | 6 ++-- keywords.robot | 29 ++++++++++++++----- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 7a8be16dae..94b97c001e 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -129,11 +129,13 @@ USB003.002 Upload 1GB file on USB storage (Windows) Generate 1GB File In Windows # Work only with one attached USB storage ${drive_letter}= Get Drive Letter Of USB - Execute Command In Terminal Copy-Item -Path C:\\Users\\user\\test_file.txt ${drive_letter}: + Execute Command In Terminal + ... Copy-Item -Path C:\\Users\\user\\test_file.txt ${drive_letter}: 120 ${hash1}= Get Hash Of File test_file.txt ${hash2}= Get Hash Of File ${drive_letter}:\\test_file.txt Execute Command In Terminal Remove-Item -Path C:\\Users\\user\\test_file.txt - Execute Command In Terminal Remove-Item -Path ${drive_letter}:\\test_file.txt + Execute Command In Terminal + ... Remove-Item -Path ${drive_letter}:\\test_file.txt 120 Should Be Equal ${hash1} ${hash2} diff --git a/keywords.robot b/keywords.robot index 79d725da06..7994a4d2ac 100644 --- a/keywords.robot +++ b/keywords.robot @@ -1463,22 +1463,34 @@ Remove Entry From List Generate 1GB File In Windows [Documentation] Generates 1G file in Windows in .txt format. + Execute Command In Terminal + ... if (Test-Path test_file.txt) { Remove-Item test_file.txt } ${out}= Execute Command In Terminal fsutil file createnew test_file.txt 1073741824 Should Contain ${out} is created Get Drive Letter Of USB - [Documentation] Gets drive letter of attached USB, work with only one USB - ... attached. - ${drive_letter}= Execute Command In Terminal - ... (Get-Volume | where drivetype -eq removable | where filesystemtype -eq FAT32).driveletter - ${drive_letter}= Fetch From Left ${drive_letter} \r + [Documentation] Gets drive letter of attached USB, returns first letter + ... on list. + ${drive_letter_cmd}= Set Variable + ... (Get-Volume | where DriveType -eq removable | where FileSystemType -eq FAT32).DriveLetter + ${drive_count}= Execute Command In Terminal ${drive_letter_cmd}.Count + ${drive_count}= Fetch From Right ${drive_count} \n + IF ${drive_count} > 0 + ${drive_letter}= Execute Command In Terminal + ... ${drive_letter_cmd}\[0\] + ELSE + Fail Couldn't find any USB drive letter + END + ${drive_letter}= Fetch From Right ${drive_letter} \n RETURN ${drive_letter} Get Hash Of File [Documentation] Gets line with hash of file. [Arguments] ${path_file} ${out}= Execute Command In Terminal Get-FileHash -Path ${path_file} | Format-List - ${hash}= Get Lines Containing String ${out} Hash + ${start_index}= Call Method ${out} rindex Hash + ${hash}= Get Substring ${out} ${start_index} + ${hash}= Fetch From Left ${hash} \r RETURN ${hash} Identify Path To USB @@ -1494,9 +1506,10 @@ Identify Path To USB Set Local Variable ${usb_disk} ${disk} IF '${model_name}' == '${USB_MODEL}' BREAK END - ${out}= Execute Linux Command lsblk | grep ${usb_disk} | grep part | cat + ${out}= Execute Linux Command + ... lsblk --list --noheadings --output NAME,TYPE,PATH | grep ${usb_disk} | grep part ${split}= Split String ${out} - ${path_to_usb}= Get From List ${split} 7 + ${path_to_usb}= Get From List ${split} 2 RETURN ${path_to_usb} Get Intel ME Mode State From 500bb6360ea0a747290f07cd1f0c87b13152a388 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Thu, 28 Nov 2024 11:44:32 +0100 Subject: [PATCH 050/416] usb: integrate and improve fixes for detect/boot suites Tested `usb-detect.robot` and `usb-boot.robot` in two configurations: - PiKVM (MSI Z690) - Telnet (Odroid H4) These tests now assume that `Dasharo Tools Suite` USB stick is inserted to the DUT. This is required for the `usb-boot` especially, as we assume to test booting DTS from USB as a reference OS. For the `usb-detect`, we may define other types of devices as well. At this moment, `Dasharo Tools Suite` entry is the one we are looking for in the boot menu. Signed-off-by: Maciej Pijanowski --- dasharo-compatibility/usb-boot.robot | 54 +-------- dasharo-compatibility/usb-detect.robot | 104 ++++-------------- .../usb-hid-and-msc-support.robot | 47 ++++---- keywords.robot | 5 +- lib/bios/menus.robot | 15 ++- lib/dts-lib.robot | 16 +-- lib/usb-hid-msc-lib.robot | 35 ++++++ .../include/msi-z690-common.robot | 2 + platform-configs/odroid-h4-plus.robot | 2 + 9 files changed, 111 insertions(+), 169 deletions(-) diff --git a/dasharo-compatibility/usb-boot.robot b/dasharo-compatibility/usb-boot.robot index 00262b06ca..7923fcb57f 100644 --- a/dasharo-compatibility/usb-boot.robot +++ b/dasharo-compatibility/usb-boot.robot @@ -20,7 +20,7 @@ Resource ../pikvm-rest-api/pikvm_comm.robot Suite Setup Run Keywords ... Prepare Test Suite ... AND -... Skip If "${BOOT_FROM_USB_ITERATIONS_NUMBER}" == "0" USB booting tests skipped +... Skip If ${BOOT_FROM_USB_ITERATIONS_NUMBER} == 0 USB booting tests skipped ... AND ... Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} Tests in firmware not supported Suite Teardown Run Keyword @@ -32,22 +32,11 @@ UBT001.001 USB detect and boot after coldboot [Documentation] Check whether the DUT properly detects USB device and ... boots into the operating system after coldboot (reboot ... realized by power supply cutting off then cutting on). - Platform Verification Set Local Variable ${failed_boot} 0 FOR ${index} IN RANGE 0 ${BOOT_FROM_USB_ITERATIONS_NUMBER} TRY Power Cycle On - ${usb}= Get USB Boot Option - Power On - Boot System Or From Connected Disk ${usb} - IF '${PLATFORM}' == 'raptor-cs_talos2' - Login To Linux - ELSE - Login To Linux Over Serial Console - ... ${DEVICE_USB_USERNAME} - ... ${DEVICE_USB_PASSWORD} - ... ${DEVICE_USB_PROMPT} - END + Boot Dasharo Tools Suite USB EXCEPT ${failed_boot}= Evaluate ${failed_boot} + 1 IF '${failed_boot}' > '${ALLOWED_FAILS_USB_BOOT}' @@ -60,22 +49,11 @@ UBT002.001 USB detect and boot after warmboot [Documentation] Check whether the DUT properly detects USB device and ... boots into the operating system after warmboot (reboot ... realized by device turning off then turning on). - Platform Verification Set Local Variable ${failed_boot} 0 FOR ${index} IN RANGE 0 ${BOOT_FROM_USB_ITERATIONS_NUMBER} TRY Power On - ${usb}= Get USB Boot Option - Power On - Boot System Or From Connected Disk ${usb} - IF '${PLATFORM}' == 'raptor-cs_talos2' - Login To Linux - ELSE - Login To Linux Over Serial Console - ... ${DEVICE_USB_USERNAME} - ... ${DEVICE_USB_PASSWORD} - ... ${DEVICE_USB_PROMPT} - END + Boot Dasharo Tools Suite USB EXCEPT ${failed_boot}= Evaluate ${failed_boot} + 1 IF '${failed_boot}' > '${ALLOWED_FAILS_USB_BOOT}' @@ -88,19 +66,13 @@ UBT003.001 USB detect and boot after system reboot [Documentation] Check whether the DUT properly detects USB device and ... boots into the operating system after system reboot ... (reboot performing by relevant command). - Platform Verification Set Local Variable ${failed_boot} 0 Power On FOR ${index} IN RANGE 0 ${BOOT_FROM_USB_ITERATIONS_NUMBER} TRY - ${usb}= Get USB Boot Option - Power On - Boot System Or From Connected Disk ${usb} - IF '${PLATFORM}' != 'raptor-cs_talos2' Reboot Via Linux On USB - IF '${PLATFORM}' == 'raptor-cs_talos2' - Login To Linux - Write Into Terminal reboot - END + Boot Dasharo Tools Suite USB + Enter Shell In DTS + Execute Reboot Command EXCEPT ${failed_boot}= Evaluate ${failed_boot} + 1 IF '${failed_boot}' > '${ALLOWED_FAILS_USB_BOOT}' @@ -108,17 +80,3 @@ UBT003.001 USB detect and boot after system reboot END END END - - -*** Keywords *** -Platform Verification - [Documentation] Check whether according to hardware matrix, any USB - ... stick is connected to the platform. - IF '${PLATFORM}' == 'raptor-cs_talos2' RETURN - ${conf}= Get Current CONFIG ${CONFIG_LIST} - ${result}= Evaluate "USB_Storage" in """${conf}""" - IF not ${result} - SKIP \nPlatform doesn't have USB storage attached. - ELSE - Log Selected platform is correct. - END diff --git a/dasharo-compatibility/usb-detect.robot b/dasharo-compatibility/usb-detect.robot index 7088a94f51..d92b5ece30 100644 --- a/dasharo-compatibility/usb-detect.robot +++ b/dasharo-compatibility/usb-detect.robot @@ -32,28 +32,14 @@ UDT001.001 USB detection after coldboot [Documentation] Check whether the DUT detects properly USB device after ... the coldboot (reboot realized by power supply cutting off ... then cutting on). - Platform Verification - Set Global Variable ${FAILED_DETECTION} 0 - Set Local Variable ${usb} 0 + Set Local Variable ${failed_detection} 0 FOR ${index} IN RANGE 0 ${USB_DETECTION_ITERATIONS_NUMBER} - TRY - ${usb}= Evaluate 0 - Power Cycle On - ${menu}= Enter Boot Menu Tianocore And Return Construction - FOR ${stick} IN @{ATTACHED_USB} - ${usb_tmp}= Get Count ${menu} ${stick} - ${usb}= Evaluate ${usb} + ${usb_tmp} - END - IF '${PLATFORM}' in ['apu1', 'apu5'] - ${usb}= Evaluate - ... ${usb} - sum([1 for line in """${menu}""".splitlines() if 'Multiple Card' in line]) - ELSE - ${usb}= Evaluate '${usb}' - END - ${usb_count}= Get All USB - Should Be Equal As Integers ${usb} ${usb_count} - EXCEPT - ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 + Power Cycle On + ${boot_menu}= Enter Boot Menu Tianocore And Return Construction + ${found}= Check USB Stick Detection in Edk2 ${boot_menu} + + IF '${found}' != '${TRUE}' + ${failed_detection}= Evaluate ${failed_detection} + 1 IF '${failed_detection}' > '${ALLOWED_FAILS_USB_DETECT}' Fail Detection failed too many times (${failed_detection}) END @@ -64,28 +50,14 @@ UDT001.002 USB detection after warmboot [Documentation] Check whether the DUT detects properly USB device after ... the warmboot (reboot realized by device turning off then ... turning on). - Platform Verification - Set Global Variable ${FAILED_DETECTION} 0 - Set Local Variable ${usb} 0 + Set Local Variable ${failed_detection} 0 FOR ${index} IN RANGE 0 ${USB_DETECTION_ITERATIONS_NUMBER} - TRY - ${usb}= Evaluate 0 - Power On - ${menu}= Enter Boot Menu Tianocore And Return Construction - FOR ${stick} IN @{ATTACHED_USB} - ${usb_tmp}= Get Count ${menu} ${stick} - ${usb}= Evaluate ${usb} + ${usb_tmp} - END - IF '${PLATFORM}' in ['apu1', 'apu5'] - ${usb}= Evaluate - ... ${usb} - sum([1 for line in """${menu}""".splitlines() if 'Multiple Card' in line]) - ELSE - ${usb}= Evaluate '${usb}' - END - ${usb_count}= Get All USB - Should Be Equal As Integers ${usb} ${usb_count} - EXCEPT - ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 + Power On + ${boot_menu}= Enter Boot Menu Tianocore And Return Construction + ${found}= Check USB Stick Detection in Edk2 ${boot_menu} + + IF '${found}' != '${TRUE}' + ${failed_detection}= Evaluate ${failed_detection} + 1 IF '${failed_detection}' > '${ALLOWED_FAILS_USB_DETECT}' Fail Detection failed too many times (${failed_detection}) END @@ -95,49 +67,21 @@ UDT001.002 USB detection after warmboot UDT001.003 USB detection after system reboot [Documentation] Check whether the DUT detects properly USB device after ... the system reboot (reboot performing by relevant command). - Platform Verification Set Local Variable ${failed_detection} 0 - Set Local Variable ${usb} 0 + + Power On FOR ${index} IN RANGE 0 ${USB_DETECTION_ITERATIONS_NUMBER} - TRY - ${usb}= Evaluate 0 - Power On - IF '${PAYLOAD}' == 'tianocore' - Reboot Via Ubuntu By Tianocore - ELSE IF '${PAYLOAD}' == 'seabios' - Reboot Via IPXE Boot By SeaBIOS - ELSE IF '${PAYLOAD}' == 'petitboot' - Reboot Via OS Boot By Petitboot - ELSE - FAIL Unknown payload: ${PAYLOAD} - END - ${menu}= Enter Boot Menu Tianocore And Return Construction - FOR ${stick} IN @{ATTACHED_USB} - ${usb_tmp}= Get Count ${menu} ${stick} - ${usb}= Evaluate ${usb} + ${usb_tmp} - END - IF '${PLATFORM}' in ['apu1', 'apu5'] - ${usb}= Evaluate - ... ${usb} - sum([1 for line in """${menu}""".splitlines() if 'Multiple Card' in line]) - ELSE - ${usb}= Evaluate '${usb}' - END - ${usb_count}= Get All USB - Should Be Equal As Integers ${usb} ${usb_count} - EXCEPT + ${boot_menu}= Enter Boot Menu Tianocore And Return Construction + ${found}= Check USB Stick Detection in Edk2 ${boot_menu} + Boot System Or From Connected Disk ubuntu boot_menu=${boot_menu} + Login To Linux + Switch To Root User + Execute Reboot Command + + IF '${found}' != '${TRUE}' ${failed_detection}= Evaluate ${failed_detection} + 1 IF '${failed_detection}' > '${ALLOWED_FAILS_USB_DETECT}' Fail Detection failed too many times (${failed_detection}) END END END - - -*** Keywords *** -Platform Verification - [Documentation] Check whether according to hardware matrix, any USB - ... stick is connected to the platform. - IF '${PLATFORM}' == 'raptor-cs_talos2' RETURN - ${conf}= Get Current CONFIG ${CONFIG_LIST} - ${result}= Evaluate "USB_Storage" in """${conf}""" - IF not ${result} SKIP Platform doesn't have USB storage attached. diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 94b97c001e..0d08b98224 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -27,21 +27,18 @@ Suite Teardown Run Keyword USB001.001 USB devices detected in FW [Documentation] Check whether USB devices are detected in Tianocore ... (edk2). - Skip If not ${USB_DISKS_DETECTION_SUPPORT} USB001.001 not supported - Skip If not ${HAS_USB_STORAGE} USB001.001 not supported - Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} - IF "${DUT_CONNECTION_METHOD}" == "pikvm" - Upload And Mount DTS Flash Iso - END + Depends On ${TESTS_IN_FIRMWARE_SUPPORT} + Depends On ${USB_DISKS_DETECTION_SUPPORT} + Depends On ${HAS_USB_STORAGE} Power On ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - Check That USB Devices Are Detected ${boot_menu} + Check USB Stick Detection in Edk2 ${boot_menu} USB001.002 USB devices detected by OS (Ubuntu) [Documentation] Check whether the external USB devices are detected ... correctly in Linux OS. - Skip If not ${USB_DISKS_DETECTION_SUPPORT} USB001.002 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} USB001.002 not supported + Depends On ${USB_DISKS_DETECTION_SUPPORT} + Depends On ${TESTS_IN_UBUNTU_SUPPORT} Power On Boot System Or From Connected Disk ubuntu Login To Linux @@ -55,8 +52,8 @@ USB001.002 USB devices detected by OS (Ubuntu) USB001.003 USB devices detected by OS (Windows) [Documentation] Check whether the external USB devices are detected ... correctly in Windows OS. - Skip If not ${USB_DISKS_DETECTION_SUPPORT} USB001.003 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} USB001.003 not supported + Depends On ${USB_DISKS_DETECTION_SUPPORT} + Depends On ${TESTS_IN_WINDOWS_SUPPORT} Power On Login To Windows ${out}= Execute Command In Terminal @@ -69,8 +66,8 @@ USB002.001 USB keyboard detected in FW ... correctly by the firmware and all basic keys work ... according to their labels. [Tags] minimal-regression - Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} - Skip If not ${HAS_KEYBOARD} USB002.001 not supported + Depends On ${TESTS_IN_FIRMWARE_SUPPORT} + Depends On ${HAS_KEYBOARD} Power On Enter UEFI Shell ${out}= Execute UEFI Shell Command devices @@ -79,9 +76,9 @@ USB002.001 USB keyboard detected in FW USB002.002 USB keyboard in OS (Ubuntu) [Documentation] Check whether the external USB keyboard is detected ... correctly by the Linux OS. - Skip If not ${USB_KEYBOARD_DETECTION_SUPPORT} USB002.002 not supported - Skip If "${DEVICE_USB_KEYBOARD}" == "${EMPTY}" USB002.002 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} USB002.002 not supported + Depends On ${USB_KEYBOARD_DETECTION_SUPPORT} + Depends On "${DEVICE_USB_KEYBOARD}" == "${EMPTY}" + Depends On ${TESTS_IN_UBUNTU_SUPPORT} Power On Boot System Or From Connected Disk ubuntu Login To Linux @@ -92,9 +89,9 @@ USB002.002 USB keyboard in OS (Ubuntu) USB002.003 USB keyboard in OS (Windows) [Documentation] Check whether the external USB keyboard is detected ... correctly by the Windows OS. - Skip If not ${USB_KEYBOARD_DETECTION_SUPPORT} USB002.003 not supported - Skip If not ${HAS_KEYBOARD} USB002.003 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} USB002.003 not supported + Depends On ${USB_KEYBOARD_DETECTION_SUPPORT} + Depends On ${HAS_KEYBOARD} + Depends On ${TESTS_IN_WINDOWS_SUPPORT} Power On Login To Windows ${out}= Execute Command In Terminal Get-CimInstance win32_KEYBOARD @@ -104,9 +101,9 @@ USB002.003 USB keyboard in OS (Windows) USB003.001 Upload 1GB file on USB storage (Ubuntu) [Documentation] Check whether the 1GB file can be transferred from the ... operating system to the USB storage. - Skip If not ${UPLOAD_ON_USB_SUPPORT} USB003.001 not supported - Skip If not ${HAS_USB_STORAGE} USB003.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} USB003.001 not supported + Depends On ${UPLOAD_ON_USB_SUPPORT} + Depends On ${HAS_USB_STORAGE} + Depends On ${TESTS_IN_UBUNTU_SUPPORT} Power On Boot System Or From Connected Disk ubuntu Login To Linux @@ -121,9 +118,9 @@ USB003.001 Upload 1GB file on USB storage (Ubuntu) USB003.002 Upload 1GB file on USB storage (Windows) [Documentation] Check whether the 1GB file can be transferred from the ... operating system to the USB storage. - Skip If not ${UPLOAD_ON_USB_SUPPORT} USB003.002 not supported - Skip If not ${HAS_USB_STORAGE} USB003.002 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} USB003.002 not supported + Depends On ${UPLOAD_ON_USB_SUPPORT} + Depends On ${HAS_USB_STORAGE} + Depends On ${TESTS_IN_WINDOWS_SUPPORT} Power On Login To Windows Generate 1GB File In Windows diff --git a/keywords.robot b/keywords.robot index 7994a4d2ac..8376ea3c73 100644 --- a/keywords.robot +++ b/keywords.robot @@ -850,9 +850,10 @@ Execute Reboot Command ELSE Fail Unknown OS: ${os} given as an argument. END - IF '${DUT_CONNECTION_METHOD}' == 'SSH' Sleep 30s - Set DUT Response Timeout 180 seconds + # We do not want to sleep if we switched to SSH only temporarily. Restore Initial DUT Connection Method + Set DUT Response Timeout 180 seconds + IF '${DUT_CONNECTION_METHOD}' == 'SSH' Sleep 30s Check Displays Windows [Documentation] Check and return all displays with PowerShell in Windows. diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index 8c4c1a7456..130278a9b7 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -584,7 +584,7 @@ Save Changes And Reset Boot System Or From Connected Disk # robocop: disable=too-long-keyword [Documentation] Tries to boot ${system_name}. If it is not possible then it tries ... to boot from connected disk set up in config - [Arguments] ${system_name} + [Arguments] ${system_name} ${boot_menu}=NOT_SET IF '${DUT_CONNECTION_METHOD}' == 'SSH' RETURN IF '''${SEABIOS_BOOT_DEVICE}''' != '' @@ -594,8 +594,17 @@ Boot System Or From Connected Disk # robocop: disable=too-long-keyword Write Bare Into Terminal ${SEABIOS_BOOT_DEVICE} RETURN END - ${menu_construction}= Enter Boot Menu Tianocore And Return Construction - # With ESP scanning feature boot entries are named differently: + + # Allow providing boot menu construction, if we are already in boot menu screen + # and want to boot into OS from there + IF '''${boot_menu}''' == 'NOT_SET' + ${menu_construction}= Enter Boot Menu Tianocore And Return Construction + ELSE + ${menu_construction}= Set Variable @{boot_menu} + END + + # When ESP scanning feature is there, boot entries are named differently than + # they used to IF ${ESP_SCANNING_SUPPORT} == ${TRUE} IF "${system_name}" == "ubuntu" ${system_name}= Set Variable Ubuntu diff --git a/lib/dts-lib.robot b/lib/dts-lib.robot index eb3673a5a9..79bb3a15f1 100644 --- a/lib/dts-lib.robot +++ b/lib/dts-lib.robot @@ -49,15 +49,10 @@ Boot Dasharo Tools Suite ... boot method (from USB or from iPXE) as parameter. [Arguments] ${dts_booting_method} IF '${dts_booting_method}'=='USB' + # Assuming ESP scanning works as supposed to, DTS on USB stick + # should generate such entry ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - IF '${DUT_CONNECTION_METHOD}' == 'pikvm' - Enter Submenu From Snapshot ${boot_menu} PiKVM Composite KVM Device - ELSE IF '${MANUFACTURER}' == 'QEMU' - Enter Submenu From Snapshot ${boot_menu} Dasharo Tools Suite (on QEMU HARDDISK) - ELSE - # Requires specifying the USB model in the platform's config - Enter Submenu From Snapshot ${boot_menu} ${USB_MODEL} - END + Enter Submenu From Snapshot ${boot_menu} Dasharo Tools Suite ELSE IF '${dts_booting_method}'=='iPXE' IF ${BOOT_DTS_FROM_IPXE_SHELL} == ${TRUE} or ${NETBOOT_UTILITIES_SUPPORT} == ${TRUE} # DTS_IPXE_LINK can be defined before running tests, e.g. via CMD or @@ -67,7 +62,7 @@ Boot Dasharo Tools Suite Boot Dasharo Tools Suite Via IPXE Menu END ELSE - FAIL Unknown or improper connection method: ${dts_booting_method} + FAIL Unknown DTS boot method: ${dts_booting_method} END # For PiKVM devices, we have only input on serial, not output. The video and serial consoles are @@ -81,7 +76,6 @@ Boot Dasharo Tools Suite Set Timeout ${old_timeout} # Enable SSH server and switch to SSH connection by writing on video console "in blind" Write Into Terminal K - ${dut_connection_method}= Set Variable SSH Set Global Variable ${DUT_CONNECTION_METHOD} SSH Login To Linux Via SSH Without Password root root@DasharoToolsSuite:~# # Spawn DTS menu on SSH console @@ -107,7 +101,7 @@ Enter Shell In DTS [Documentation] Keyword allows to drop to Shell in the Dasharo Tools ... Suite. Write Into Terminal S - Set Prompt For Terminal bash-5.1# + Set Prompt For Terminal bash-5.2# # These could be removed once routes priorities in DTS are resolved. Sleep 10 Press Enter diff --git a/lib/usb-hid-msc-lib.robot b/lib/usb-hid-msc-lib.robot index 3f4019d341..509374fe1b 100644 --- a/lib/usb-hid-msc-lib.robot +++ b/lib/usb-hid-msc-lib.robot @@ -2,6 +2,22 @@ Library OperatingSystem +*** Variables *** +# A list of USB boot device entries that may appear in the Dasharo edk2 boot +# menu. This way we do not care that much which particular stick is connected +# to the DUT. This is not perfect, as we might lose some information there, +# but it's been really problematic so far to track the USB devices in platform +# configs. What is more, we may have one platform config and multiple instances +# of the same physical devices setup in the lab, with slightly different USB +# sticks. +# +# We may also decide that we always put DTS stick, and test booting with that. +# Thanks to ESP scanning, we always generate similar entry like: +# "Dasharo Tools Suite (on USB XXXX)" + +@{USB_DEVICES_IN_EDK2}= Dasharo Tools Suite + + *** Keywords *** Upload And Mount DTS Flash ISO [Documentation] Mounts a bootable ISO as flash USB. Currently @@ -33,3 +49,22 @@ Download ISO And Mount As USB Skip unsupported END END + +Check USB Stick Detection In Edk2 + [Documentation] Checks if the bootable USB devices are visible in the + ... boot menu. + [Arguments] ${boot_menu} + Set Local Variable ${found} ${FALSE} + + FOR ${stick} IN @{USB_DEVICES_IN_EDK2} + ${found}= Run Keyword And Return Status Should Contain Match ${boot_menu} *${stick}* + IF '${found}' == '${TRUE}' BREAK + END + + IF '${found}' == '${FALSE}' + Log To Console + ... None of the known USB sticks have been found in the boot menu. If a stick is connected, you might need to update USB_DEVICES_IN_EDK2 variable. + Log ${boot_menu} + END + + RETURN ${found} diff --git a/platform-configs/include/msi-z690-common.robot b/platform-configs/include/msi-z690-common.robot index d7dcc8378f..b08506be46 100644 --- a/platform-configs/include/msi-z690-common.robot +++ b/platform-configs/include/msi-z690-common.robot @@ -114,6 +114,8 @@ ${USB_TYPE-A_DEVICES_DETECTION_SUPPORT}= ${TRUE} ${NETWORK_INTERFACE_AFTER_SUSPEND_SUPPORT}= ${TRUE} ${CAPSULE_UPDATE_SUPPORT}= ${TRUE} ${ROMHOLE_SUPPORT}= ${TRUE} +${USB_DETECTION_ITERATIONS_NUMBER}= 5 +${BOOT_FROM_USB_ITERATIONS_NUMBER}= 5 *** Keywords *** diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index 55ab228290..11cfb33b5d 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -81,6 +81,8 @@ ${DASHARO_POWER_MGMT_MENU_SUPPORT}= ${TRUE} ${ESP_SCANNING_SUPPORT}= ${TRUE} ${SUSPEND_AND_RESUME_SUPPORT}= ${TRUE} ${AUTO_BOOT_TIME_OUT_DEFAULT_VALUE}= 2 +${USB_DETECTION_ITERATIONS_NUMBER}= 5 +${BOOT_FROM_USB_ITERATIONS_NUMBER}= 5 # Dasharo performance ${CPU_FREQUENCY_MEASURE}= ${TRUE} From e4f0c89fde6f129be80dd2bd821b0283e495da87 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Thu, 16 Jan 2025 18:58:44 +0100 Subject: [PATCH 051/416] dasharo-compatibility/usb-hid-and-msc-support.robot: fix Skip flag Signed-off-by: Maciej Pijanowski --- dasharo-compatibility/usb-hid-and-msc-support.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 0d08b98224..928129e1f6 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -32,7 +32,7 @@ USB001.001 USB devices detected in FW Depends On ${HAS_USB_STORAGE} Power On ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - Check USB Stick Detection in Edk2 ${boot_menu} + Check USB Stick Detection In Edk2 ${boot_menu} USB001.002 USB devices detected by OS (Ubuntu) [Documentation] Check whether the external USB devices are detected @@ -77,7 +77,7 @@ USB002.002 USB keyboard in OS (Ubuntu) [Documentation] Check whether the external USB keyboard is detected ... correctly by the Linux OS. Depends On ${USB_KEYBOARD_DETECTION_SUPPORT} - Depends On "${DEVICE_USB_KEYBOARD}" == "${EMPTY}" + Depends On "${DEVICE_USB_KEYBOARD}" != "${EMPTY}" Depends On ${TESTS_IN_UBUNTU_SUPPORT} Power On Boot System Or From Connected Disk ubuntu From 470482aabae6b477bd896bea82f9c9666aa8ff34 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Thu, 16 Jan 2025 19:16:43 +0100 Subject: [PATCH 052/416] dasharo-security/usb-stack.robot: use a single detection kwd Signed-off-by: Maciej Pijanowski --- dasharo-security/usb-stack.robot | 6 ++---- keywords.robot | 11 ----------- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/dasharo-security/usb-stack.robot b/dasharo-security/usb-stack.robot index d46ed3c103..0408e4026d 100644 --- a/dasharo-security/usb-stack.robot +++ b/dasharo-security/usb-stack.robot @@ -35,7 +35,7 @@ USS001.001 Enable USB stack (firmware) Set UEFI Option UsbDriverStack ${TRUE} Set UEFI Option UsbMassStorage ${TRUE} ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - Check That USB Devices Are Detected ${boot_menu} + Check USB Stick Detection In Edk2 ${boot_menu} USS002.001 Disable USB stack (firmware) [Documentation] Check whether If the stack is deactivated, there will be @@ -47,7 +47,6 @@ USS002.001 Disable USB stack (firmware) Set UEFI Option UsbMassStorage ${FALSE} Set UEFI Option UsbDriverStack ${FALSE} ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - # Check That USB Devices Are Not Detected ${boot_menu} USS003.001 Enable USB Mass Storage (firmware) [Documentation] Check whether If the storage support is activated, there @@ -71,7 +70,7 @@ USS003.001 Enable USB Mass Storage (firmware) Set Option State ${usb_menu} Enable USB Mass Storage ${TRUE} Save Changes And Reset ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - Check That USB Devices Are Detected ${boot_menu} + Check USB Stick Detection In Edk2 ${boot_menu} USS004.001 Disable USB Mass Storage (firmware) [Documentation] Check whether If the storage support is deactivated, @@ -96,4 +95,3 @@ USS004.001 Disable USB Mass Storage (firmware) Set Option State ${usb_menu} Enable USB Mass Storage ${FALSE} Save Changes And Reset ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - # Check That USB Devices Are Not Detected ${boot_menu} diff --git a/keywords.robot b/keywords.robot index 8376ea3c73..3e39e3bd65 100644 --- a/keywords.robot +++ b/keywords.robot @@ -1673,17 +1673,6 @@ Get Current CONFIG List Param END RETURN @{attached_usb_list} -Check That USB Devices Are Detected - [Documentation] Checks if the bootable USB devices are visible in the - ... boot menu. - [Arguments] ${boot_menu} - - @{attached_usb_list}= Get Current CONFIG List Param USB_Storage name - FOR ${stick} IN @{attached_usb_list} - # ${stick} should match with one element of ${boot_menu} - Should Contain Match ${boot_menu} *${stick}* - END - Switch To Root User In Ubuntu Server [Documentation] Switch to the root environment in Ubuntu Server. Write Into Terminal sudo su From c22e428d17f332472c4d65ea9d74c11abd0cd6c3 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Thu, 16 Jan 2025 21:45:53 +0100 Subject: [PATCH 053/416] dasharo-compatibility/usb-hid-and-msc-support.robot: assume USB storage is used Signed-off-by: Maciej Pijanowski --- .../usb-hid-and-msc-support.robot | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 928129e1f6..a0e86f5007 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -77,7 +77,7 @@ USB002.002 USB keyboard in OS (Ubuntu) [Documentation] Check whether the external USB keyboard is detected ... correctly by the Linux OS. Depends On ${USB_KEYBOARD_DETECTION_SUPPORT} - Depends On "${DEVICE_USB_KEYBOARD}" != "${EMPTY}" + Depends On ${HAS_KEYBOARD} Depends On ${TESTS_IN_UBUNTU_SUPPORT} Power On Boot System Or From Connected Disk ubuntu @@ -146,15 +146,14 @@ Prepare USB HID Test Suite Set Suite Variable $HAS_KEYBOARD ${FALSE} END ${conf}= Get Current CONFIG ${CONFIG_LIST} - ${has_storage}= Evaluate "USB_Storage" in """${conf}""" + IF "${DUT_CONNECTION_METHOD}" == "pikvm" Upload And Mount DTS Flash Iso - ${has_storage}= Set Variable ${TRUE} - END - IF "${ATTACHED_USB}" != "${EMPTY}" or ${has_storage} - Set Suite Variable $HAS_USB_STORAGE ${TRUE} - ELSE - Set Suite Variable $HAS_USB_STORAGE ${FALSE} END + + # Assume for now that we always have USB storage attached. In fact, all of + # the platforms as of today should have the USB drive with DTS attached. + # Refer to the lib/usb-hid-msc-lib.robot + Set Suite Variable $HAS_USB_STORAGE ${TRUE} Skip If not ${HAS_KEYBOARD} and not ${HAS_USB_STORAGE} ... Platform doesn't have USB keyboard or USB storage attached From 25ed197d365aede7e56164a1ab0993e7f3f56d51 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Thu, 16 Jan 2025 21:49:55 +0100 Subject: [PATCH 054/416] variables.robot: drop USB configs https://github.com/Dasharo/open-source-firmware-validation/issues/674 Signed-off-by: Maciej Pijanowski --- variables.robot | 115 +++++++++++++----------------------------------- 1 file changed, 31 insertions(+), 84 deletions(-) diff --git a/variables.robot b/variables.robot index 582eed2e4e..5ef98514d8 100644 --- a/variables.robot +++ b/variables.robot @@ -365,53 +365,6 @@ ${OS_UBUNTU}= ubuntu ... interface=eMMC count=1 boot_name=eMMC Device @{MMC_LIST}= &{EMMC01} -# ----------------------------------------------------------------------------- -&{USB01}= vendor=Kingston volume=16GB type=USB_Storage -... protocol=3.0 interface=USB count=2 -... sbo_name=USB -&{USB02}= vendor=ADATA volume=16GB type=USB_Storage -... protocol=3.0 interface=USB count=2 -... sbo_name=USB -&{USB03}= vendor=SanDisk volume=16GB type=USB_Storage -... protocol=3.0 interface=USB count=2 -... sbo_name=USB -&{USB04}= vendor=Corsair volume=16GB type=USB_Storage -... protocol=3.0 interface=USB count=2 -... sbo_name=USB -# pfSense stick installer -&{USB05}= vendor=Kingston volume=16GB type=USB_Storage -... protocol=2.0 interface=USB count=1 -... sbo_name=USB -&{USB06}= vendor=SiliconMotion volume=8GB type=USB_Storage -... protocol=3.0 interface=USB count=1 -... sbo_name=USB -&{USB07}= vendor=SanDisk volume=16GB type=USB_Storage -... protocol=3.0 interface=USB count=1 -... sbo_name=USB -&{USB08}= vendor=Adata volume=16GB type=USB_Storage -... protocol=3.1 interface=USB count=1 -... sbo_name=USB -&{USB09}= vendor=Kingston volume=16GB type=USB_Storage -... protocol=3.0 interface=USB count=1 -... sbo_name=USB -&{USB10}= vendor=Goodram volume=16GB type=USB_Storage -... protocol=2.0 interface=USB count=1 -... sbo_name=USB -&{USB11}= vendor=SanDisk volume=32GB type=USB_Storage -... protocol=3.0 interface=USB count=1 -... sbo_name=USB name=USB SanDisk 3.2Gen1 -&{USB12}= vendor=SanDisk volume=32GB type=USB_Storage -... protocol=3.0 interface=USB count=1 -... sbo_name=USB name=SanDisk Ultra USB 3.0 -&{USB13}= vendor=Artificial volume=1GB type=USB_Storage -... protocol=3.0 interface=USB count=1 -... sbo_name=USB name=PiKVM Composite KVM Device -&{USB14}= vendor=Kingston volume=32GB type=USB_Storage -... protocol=3.0 interface=USB count=2 -... sbo_name=USB name=USB DISK 3.0 -@{USB_LIST}= &{USB01} &{USB02} &{USB03} &{USB04} &{USB05} -... &{USB06} &{USB07} &{USB08} &{USB09} &{USB10} -... &{USB11} &{USB12} &{USB13} &{USB14} # ----------------------------------------------------------------------------- &{MODULE01}= vendor=HUAWEI type=LTE_Module interface=mPCIe ... count=1 @@ -439,31 +392,25 @@ ${OS_UBUNTU}= ubuntu ... &{MODULE06} &{MODULE07} &{MODULE08} &{MODULE09} ... &{MODULE10} &{MODULE11} &{MODULE12} # ----------------------------------------------------------------------------- -&{EXPANDER01}= type=USB_Expander slots=2 slot1=&{USB05} -... slot2=&{MODULE04} interface=USB count=1 -&{EXPANDER02}= type=USB_Expander slots=2 slot1=&{USB07} -... slot2=&{EMPTY} interface=USB count=1 -@{EXPANDER_LIST}= &{EXPANDER01} &{EXPANDER02} -# ----------------------------------------------------------------------------- &{ADAPTER01}= type=UART_USB_Adapter interface=UART count=1 @{ADAPTER_LIST}= &{ADAPTER01} # ----------------------------------------------------------------------------- # hardware configurations: -@{CONFIG01}= &{RTE08} &{MODULE10} &{SSD04} &{USB04} -... &{CARD03} &{ADAPTER01} &{EXPANDER02} -@{CONFIG02}= &{RTE09} &{SSD19} &{CARD05} &{USB03} +@{CONFIG01}= &{RTE08} &{MODULE10} &{SSD04} +... &{CARD03} &{ADAPTER01} +@{CONFIG02}= &{RTE09} &{SSD19} &{CARD05} ... &{MODULE08} &{MODULE10} &{MODULE06} &{ADAPTER01} -@{CONFIG03}= &{RTE10} &{HDD01} &{CARD02} &{USB01} -... &{MODULE01} &{MODULE02} &{MODULE04} &{EXPANDER01} +@{CONFIG03}= &{RTE10} &{HDD01} &{CARD02} +... &{MODULE01} &{MODULE02} &{MODULE04} ... &{MODULE10} &{ADAPTER01} -@{CONFIG04}= &{RTE11} &{SSD06} &{CARD06} &{USB03} +@{CONFIG04}= &{RTE11} &{SSD06} &{CARD06} ... &{MODULE06} &{ADAPTER01} &{MODULE10} -@{CONFIG05}= &{RTE12} &{USB03} &{MODULE07} &{CARD05} +@{CONFIG05}= &{RTE12} &{MODULE07} &{CARD05} ... &{ADAPTER01} &{MODULE10} -@{CONFIG06}= &{RTE13} &{SSD05} &{CARD01} &{USB03} +@{CONFIG06}= &{RTE13} &{SSD05} &{CARD01} ... &{MODULE09} &{MODULE10} &{MODULE11} &{ADAPTER01} -@{CONFIG07}= &{RTE14} &{USB06} &{MODULE10} &{SSD03} +@{CONFIG07}= &{RTE14} &{MODULE10} &{SSD03} @{CONFIG08}= &{RTE15} @{CONFIG09}= &{RTE16} @{CONFIG10}= &{RTE17} @@ -474,42 +421,42 @@ ${OS_UBUNTU}= ubuntu @{CONFIG15}= &{RTE22} &{SSD04} &{MODULE10} &{MODULE09} @{CONFIG16}= &{RTE23} @{CONFIG17}= &{RTE24} -@{CONFIG18}= &{RTE25} &{USB07} +@{CONFIG18}= &{RTE25} @{CONFIG19}= &{RTE26} @{CONFIG20}= &{RTE27} -@{CONFIG21}= &{RTE28} &{USB10} &{MODULE10} -@{CONFIG22}= &{RTE29} &{USB10} &{MODULE12} -@{CONFIG23}= &{RTE30} &{MODULE11} &{CARD04} &{USB08} -... &{MODULE09} &{USB09} &{SSD05} &{MODULE10} -@{CONFIG24}= &{RTE32} &{USB09} -@{CONFIG25}= &{RTE33} &{USB14} &{SSD08} -@{CONFIG26}= &{RTE34} &{USB14} &{SSD08} -@{CONFIG27}= &{RTE35} &{USB07} &{SSD02} &{MODULE10} -@{CONFIG28}= &{RTE36} &{USB11} &{SSD09} +@{CONFIG21}= &{RTE28} &{MODULE10} +@{CONFIG22}= &{RTE29} &{MODULE12} +@{CONFIG23}= &{RTE30} &{MODULE11} &{CARD04} +... &{MODULE09} &{SSD05} &{MODULE10} +@{CONFIG24}= &{RTE32} +@{CONFIG25}= &{RTE33} &{SSD08} +@{CONFIG26}= &{RTE34} &{SSD08} +@{CONFIG27}= &{RTE35} &{SSD02} &{MODULE10} +@{CONFIG28}= &{RTE36} &{SSD09} @{CONFIG29}= &{RTE37} &{SSD12} -@{CONFIG30}= &{RTE38} &{USB11} -@{CONFIG31}= &{RTE39} &{USB14} &{SSD08} -@{CONFIG32}= &{RTE40} &{USB12} &{SSD11} +@{CONFIG30}= &{RTE38} +@{CONFIG31}= &{RTE39} &{SSD08} +@{CONFIG32}= &{RTE40} &{SSD11} @{CONFIG33}= &{RTE41} @{CONFIG34}= &{RTE42} &{SSD13} &{EMMC02} @{CONFIG35}= &{RTE43} &{EMMC01} @{CONFIG36}= &{RTE44} &{EMMC01} @{CONFIG37}= &{RTE45} &{EMMC01} -@{CONFIG38}= &{RTE46} &{USB13} &{SSD08} +@{CONFIG38}= &{RTE46} &{SSD08} @{CONFIG39}= &{RTE47} @{CONFIG40}= &{RTE48} -@{CONFIG42}= &{RTE50} &{USB11} &{SSD08} -@{CONFIG43}= &{RTE51} &{USB11} &{SSD10} -@{CONFIG44}= &{RTE52} &{USB11} &{SSD10} -@{CONFIG45}= &{RTE53} &{USB11} &{SSD15} -@{CONFIG46}= &{RTE54} &{USB11} &{SSD07} +@{CONFIG42}= &{RTE50} &{SSD08} +@{CONFIG43}= &{RTE51} &{SSD10} +@{CONFIG44}= &{RTE52} &{SSD10} +@{CONFIG45}= &{RTE53} &{SSD15} +@{CONFIG46}= &{RTE54} &{SSD07} @{CONFIG47}= &{RTE63} &{EMMC01} @{CONFIG48}= &{RTE64} &{SSD17} @{CONFIG49}= &{RTE65} &{SSD17} @{CONFIG50}= &{RTE66} &{SSD18} # Borrowed from NV41PZ -@{CONFIG51}= &{RTE67} &{USB11} -@{CONFIG52}= &{RTE68} &{USB12} &{SSD18} -@{CONFIG53}= &{RTE69} &{USB11} +@{CONFIG51}= &{RTE67} +@{CONFIG52}= &{RTE68} &{SSD18} +@{CONFIG53}= &{RTE69} @{CONFIG_LIST}= @{CONFIG01} @{CONFIG02} @{CONFIG03} @{CONFIG04} ... @{CONFIG05} @{CONFIG06} @{CONFIG08} @{CONFIG09} From 376a17a48b95b0ed2e41f3247c0e7d41220dd36a Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Thu, 16 Jan 2025 21:57:54 +0100 Subject: [PATCH 055/416] keywords.robot: drop some unused keywords (mostly USB-related) Signed-off-by: Maciej Pijanowski --- keywords.robot | 160 ----------------------------------- scripts/refactoring-state.sh | 10 +++ 2 files changed, 10 insertions(+), 160 deletions(-) diff --git a/keywords.robot b/keywords.robot index 3e39e3bd65..69358f0428 100644 --- a/keywords.robot +++ b/keywords.robot @@ -433,57 +433,6 @@ Get Current CONFIG Item Param ${device}= Get Current CONFIG Item ${item} RETURN ${device.${param}} -Get Slot Count - [Documentation] Returns count parameter value from slot key specified in - ... the argument if found, otherwise return 0. - [Arguments] ${slot} - ${is_found}= Evaluate "count" in """${slot}""" - ${return}= Set Variable If - ... ${is_found}==False 0 - ... ${is_found}==True ${slot.count} - RETURN ${return} - -Get USB Slot Count - [Documentation] Returns count parameter value from USB slot key specified - ... in the argument if found, otherwise return 0. - [Arguments] ${slots} - ${is_found1}= Evaluate "USB_Storage" in """${slots.slot1}""" - ${is_found2}= Evaluate "USB_Storage" in """${slots.slot2}""" - IF ${is_found1}==True - ${count1}= Get Slot Count ${slots.slot1} - ELSE - ${count1}= Evaluate 0 - END - IF ${is_found2}==True - ${count2}= Get Slot Count ${slots.slot2} - ELSE - ${count2}= Evaluate 0 - END - ${sum}= Evaluate ${count1}+${count2} - RETURN ${sum} - -Get All USB - [Documentation] Returns number of attached USB storages in current CONFIG. - ${conf}= Get Current CONFIG ${CONFIG_LIST} - ${is_found}= Evaluate "USB_Storage" in """${conf}""" - IF ${is_found}==True - ${usb_count}= Get Current CONFIG Item Param USB_Storage count - ${count_usb}= Evaluate ${usb_count} - ELSE - ${usb_count}= Evaluate "" - ${count_usb}= Evaluate 0 - END - ${is_found}= Evaluate "USB_Expander" in """${conf}""" - IF ${is_found}==True - ${external}= Get Current CONFIG Item USB_Expander - ${external_count}= Get USB Slot Count ${external} - ELSE - ${external}= Evaluate "" - ${external_count}= Evaluate 0 - END - ${count}= Evaluate ${count_usb}+${external_count} - RETURN ${count} - Prepare Lm-sensors [Documentation] Install lm-sensors and probe sensors. Detect Or Install Package lm-sensors @@ -1513,13 +1462,6 @@ Identify Path To USB ${path_to_usb}= Get From List ${split} 2 RETURN ${path_to_usb} -Get Intel ME Mode State - [Documentation] Returns the current state of Intel ME mode. - [Arguments] ${menu_me} - ${menu_me}= Fetch From Right ${menu_me} < - ${actual_state}= Fetch From Left ${menu_me} > - RETURN ${actual_state} - Calculate Smoothing [Documentation] Compares the actual and expected value of the fan speed, ... taking smoothing into account. @@ -1564,100 +1506,6 @@ Get RPM Value From System76 Acpi ${rpm}= Get From List ${speed_split} 2 RETURN ${rpm} -Disable Option In Submenu - [Documentation] Disables selected option in submenu provided in ${menu_construction} - [Arguments] ${menu_construction} ${option_str} - ${option}= Set Variable ${option_str[1:]} - ${line}= Get Matches ${menu_construction} *${option}* - TRY - Should Match Regexp ${line[0]} .*\\[\ \\].* - Refresh Serial Screen In BIOS Editable Settings Menu - EXCEPT - FOR ${element} IN @{menu_construction} - ${matches}= Run Keyword And Return Status - ... Should Match ${element} pattern=*${option}* - IF ${matches} - ${option}= Set Variable ${element} - BREAK - END - END - Strip String ${option} mode=left - ${system_index}= Get Index From List ${menu_construction} ${option} - Press Key N Times And Enter ${system_index} ${ARROW_DOWN} - Press Key N Times 1 ${F10} - Write Bare Into Terminal y - END - -Enable Option In USB Configuration Submenu - [Documentation] Enables option in USB Configuration SubMenu. - [Arguments] ${menu_construction} ${option} - ${line}= Get Matches ${menu_construction} *${option}* - TRY - Should Contain Match ${line} *[X]* - EXCEPT - FOR ${element} IN @{menu_construction} - ${matches}= Run Keyword And Return Status - ... Should Match ${element} pattern=*${option}* - IF ${matches} - ${option}= Set Variable ${element} - BREAK - END - END - Strip String ${option} mode=left - ${system_index}= Get Index From List ${menu_construction} ${option} - ${steps}= Evaluate ${system_index}-1 - Press Key N Times And Enter ${steps} ${ARROW_DOWN} - Write Bare Into Terminal ${F10} - Write Bare Into Terminal Y - END - -Disable Option In USB Configuration Submenu - [Documentation] Disables option in USB Configuration SubMenu. - [Arguments] ${menu_construction} ${option} - ${line}= Get Matches ${menu_construction} *${option}* - TRY - Should Not Contain Match ${line} *[X]* - EXCEPT - FOR ${element} IN @{menu_construction} - ${matches}= Run Keyword And Return Status - ... Should Match ${element} pattern=*${option}* - IF ${matches} - ${option}= Set Variable ${element} - BREAK - END - END - ${system_index}= Get Index From List ${menu_construction} ${option} - ${steps}= Evaluate ${system_index}-1 - Press Key N Times And Enter ${steps} ${ARROW_DOWN} - Write Bare Into Terminal ${F10} - Write Bare Into Terminal Y - END - -Enable Option In Submenu - [Documentation] Enables option in submenu - [Arguments] ${menu_construction} ${option_str} - ${option}= Set Variable ${option_str[1:]} - ${line}= Get Matches ${menu_construction} *${option}* - TRY - Should Not Match Regexp ${line[0]} .*\\[ \\].* - Refresh Serial Screen In BIOS Editable Settings Menu - EXCEPT - FOR ${element} IN @{menu_construction} - ${matches}= Run Keyword And Return Status - ... Should Match ${element} pattern=*${option}* - IF ${matches} - ${option}= Set Variable ${element} - BREAK - END - END - Strip String ${option} mode=left - ${system_index}= Get Index From List ${menu_construction} ${option} - ${steps}= Evaluate ${system_index}-1 - Press Key N Times And Enter ${steps} ${ARROW_DOWN} - Write Bare Into Terminal ${F10} - Write Bare Into Terminal Y - END - Get Current CONFIG List Param [Documentation] Returns current CONFIG list parameters specified in the ... arguments. @@ -1673,14 +1521,6 @@ Get Current CONFIG List Param END RETURN @{attached_usb_list} -Switch To Root User In Ubuntu Server - [Documentation] Switch to the root environment in Ubuntu Server. - Write Into Terminal sudo su - Read From Terminal Until [sudo] password for user: - Write Into Terminal ubuntuserver - Set Prompt For Terminal \# - Read From Terminal Until Prompt - Reboot In OPNsense [Documentation] Perform reboot in OPNsense. Write Into Terminal 6 diff --git a/scripts/refactoring-state.sh b/scripts/refactoring-state.sh index cdc319a9f1..177f846117 100755 --- a/scripts/refactoring-state.sh +++ b/scripts/refactoring-state.sh @@ -30,6 +30,16 @@ kwds_to_remove=( "RTE REST APU Setup" "RTE REST APU Setup" "RteCtrl Get GPIO State" +"Check That USB Devices Are Detected" +"Switch To Root User In Ubuntu Server" +"Get Slot Count" +"Get USB Slot Count" +"Get All USB" +"Enable Option In USB Configuration Submenu" +"Disable Option In USB Configuration Submenu" +"Enable Option In Submenu" +"Disable Option In Submenu" +"Get Intel ME Mode State" ) echo "Keywords that should not be used, but are still used:" From 88e61deace3be9e4f4900e39f60ef019cced021a Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Thu, 16 Jan 2025 21:58:21 +0100 Subject: [PATCH 056/416] platform-configs/protectli-vp2410.robot: define D EVICE_AUDIO1 Signed-off-by: Maciej Pijanowski --- platform-configs/protectli-vp2410.robot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platform-configs/protectli-vp2410.robot b/platform-configs/protectli-vp2410.robot index 679574ecb5..572c694c75 100644 --- a/platform-configs/protectli-vp2410.robot +++ b/platform-configs/protectli-vp2410.robot @@ -26,6 +26,8 @@ ${DMIDECODE_VENDOR}= 3mdeb ${DMIDECODE_FAMILY}= Vault Pro ${DMIDECODE_TYPE}= Desktop +${DEVICE_AUDIO1}= "Gemini Lake HDMI" + ${L3_CACHE_SUPPORT}= ${FALSE} ${DASHARO_SECURITY_MENU_SUPPORT}= ${TRUE} From 3165876e87cf28c2e0393b6ddb6594012b0418c1 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Wed, 15 Jan 2025 00:14:44 +0100 Subject: [PATCH 057/416] pikvm: use package instead of submodule Toe be used with: https://github.com/3mdeb/pikvm-rest-api/pull/19 Signed-off-by: Maciej Pijanowski --- .../custom-boot-menu-key.robot | 1 - dasharo-compatibility/dcu.robot | 1 - dasharo-compatibility/device-detection.robot | 1 - dasharo-compatibility/dmidecode.robot | 1 - dasharo-compatibility/flash-test-stub.robot | 1 - dasharo-compatibility/reset-to-defaults.robot | 1 - dasharo-compatibility/uefi-shell.robot | 1 - dasharo-compatibility/usb-boot.robot | 1 - dasharo-compatibility/usb-detect.robot | 1 - .../usb-hid-and-msc-support.robot | 1 - dasharo-security/me-neuter-static.robot | 1 - dasharo-security/me-neuter.robot | 1 - keywords.robot | 39 ++++++++++--------- requirements.txt | 2 + self-tests/boolean-options.robot | 1 - .../dasharo-system-features-menus.robot | 1 - self-tests/dcu.robot | 1 - self-tests/list-options.robot | 1 - ...e-sure-that-flash-locks-are-disabled.robot | 1 - self-tests/numerical-options.robot | 1 - self-tests/os-boot.robot | 1 - self-tests/scrolling-boot-manager.robot | 1 - self-tests/secure-boot.robot | 1 - self-tests/setup-and-boot-menus.robot | 1 - self-tests/terminal.robot | 1 - util/basic-platform-setup.robot | 1 - 26 files changed, 23 insertions(+), 42 deletions(-) diff --git a/dasharo-compatibility/custom-boot-menu-key.robot b/dasharo-compatibility/custom-boot-menu-key.robot index 402b8b076a..26b6b90de9 100644 --- a/dasharo-compatibility/custom-boot-menu-key.robot +++ b/dasharo-compatibility/custom-boot-menu-key.robot @@ -11,7 +11,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/dasharo-compatibility/dcu.robot b/dasharo-compatibility/dcu.robot index 08a6ce8994..dec3cd8de4 100644 --- a/dasharo-compatibility/dcu.robot +++ b/dasharo-compatibility/dcu.robot @@ -12,7 +12,6 @@ Library FakerLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot Resource ../lib/dcu.robot # TODO: diff --git a/dasharo-compatibility/device-detection.robot b/dasharo-compatibility/device-detection.robot index 4b39abc05f..14365566c1 100644 --- a/dasharo-compatibility/device-detection.robot +++ b/dasharo-compatibility/device-detection.robot @@ -11,7 +11,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/dasharo-compatibility/dmidecode.robot b/dasharo-compatibility/dmidecode.robot index 3061762845..74380fb681 100644 --- a/dasharo-compatibility/dmidecode.robot +++ b/dasharo-compatibility/dmidecode.robot @@ -11,7 +11,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/dasharo-compatibility/flash-test-stub.robot b/dasharo-compatibility/flash-test-stub.robot index 4b34e0ac7d..e25e946ede 100644 --- a/dasharo-compatibility/flash-test-stub.robot +++ b/dasharo-compatibility/flash-test-stub.robot @@ -11,7 +11,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot Resource ../platform-configs/include/protectli-vp66xx.robot # TODO: diff --git a/dasharo-compatibility/reset-to-defaults.robot b/dasharo-compatibility/reset-to-defaults.robot index 70a5cb9eda..f3af74102a 100644 --- a/dasharo-compatibility/reset-to-defaults.robot +++ b/dasharo-compatibility/reset-to-defaults.robot @@ -11,7 +11,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/dasharo-compatibility/uefi-shell.robot b/dasharo-compatibility/uefi-shell.robot index e0b3bb4e3d..df7dfd4460 100644 --- a/dasharo-compatibility/uefi-shell.robot +++ b/dasharo-compatibility/uefi-shell.robot @@ -11,7 +11,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/dasharo-compatibility/usb-boot.robot b/dasharo-compatibility/usb-boot.robot index 7923fcb57f..7c1e811787 100644 --- a/dasharo-compatibility/usb-boot.robot +++ b/dasharo-compatibility/usb-boot.robot @@ -11,7 +11,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/dasharo-compatibility/usb-detect.robot b/dasharo-compatibility/usb-detect.robot index d92b5ece30..43549fef3d 100644 --- a/dasharo-compatibility/usb-detect.robot +++ b/dasharo-compatibility/usb-detect.robot @@ -11,7 +11,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index a0e86f5007..097aa914e9 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -8,7 +8,6 @@ Library SSHLibrary timeout=90 seconds Library RequestsLibrary # TODO: maybe have a single file to include if we need to include the same # stuff in all test cases -Resource ../pikvm-rest-api/pikvm_comm.robot Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot diff --git a/dasharo-security/me-neuter-static.robot b/dasharo-security/me-neuter-static.robot index b047b8200d..0b499bbacb 100644 --- a/dasharo-security/me-neuter-static.robot +++ b/dasharo-security/me-neuter-static.robot @@ -11,7 +11,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/dasharo-security/me-neuter.robot b/dasharo-security/me-neuter.robot index 0dd2c7ac6c..9220c97232 100644 --- a/dasharo-security/me-neuter.robot +++ b/dasharo-security/me-neuter.robot @@ -11,7 +11,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/keywords.robot b/keywords.robot index 69358f0428..c04b85afc3 100644 --- a/keywords.robot +++ b/keywords.robot @@ -1,7 +1,6 @@ *** Settings *** Library Collections Library OperatingSystem -Resource pikvm-rest-api/pikvm_comm.robot Resource lib/bios/menus.robot Resource lib/secure-boot-lib.robot Resource lib/usb-hid-msc-lib.robot @@ -509,16 +508,28 @@ Import Osfv Libraries IF '${SNIPEIT}' == 'yes' Import Library osfv.rf.snipeit_robot Import Library osfv.rf.rte_robot.RobotRTE ${RTE_IP} True - ELSE IF 'sonoff' == '${POWER_CTRL}' - Variable Should Exist ${SONOFF_IP} - # The last parameter is the DUT config name. It needs to be provided if - # it SnipeIT is not used; otherwise the library would not be able to - # determine the platform type. - Import Library osfv.rf.rte_robot.RobotRTE ${RTE_IP} False - ... ${SONOFF_IP} ${CONFIG} + IF 'pikvm' == '${INITIAL_DUT_CONNECTION_METHOD}' + ${pikvm_ip}= Snipeit Get PiKVM IP ${RTE_IP} + Import Library pikvm.client.PiKVMClient ${pikvm_ip} + END ELSE - Import Library osfv.rf.rte_robot.RobotRTE ${RTE_IP} False - ... config=${CONFIG} + IF 'sonoff' == '${POWER_CTRL}' + Variable Should Exist ${SONOFF_IP} + # The last parameter is the DUT config name. It needs to be provided if + # it SnipeIT is not used; otherwise the library would not be able to + # determine the platform type. + Import Library osfv.rf.rte_robot.RobotRTE ${RTE_IP} False + ... ${SONOFF_IP} ${CONFIG} + ELSE + Import Library osfv.rf.rte_robot.RobotRTE ${RTE_IP} False + ... config=${CONFIG} + END + IF 'pikvm' == '${INITIAL_DUT_CONNECTION_METHOD}' + Variable Should Exist + ... ${pikvm_ip} + ... PiKVM IP cannot be fetched from SnipeIT. Please provide it in the 'PIKVM_IP' variable + Import Library pikvm.client.PiKVMClient ${pikvm_ip} + END END Prepare To SSH Connection @@ -590,14 +601,6 @@ Prepare To PiKVM Connection Remap Keys Variables To PiKVM Open Connection And Log In ${platform}= Get Current RTE Param platform - IF '${SNIPEIT}' == 'yes' - ${pikvm_ip}= Snipeit Get PiKVM IP ${RTE_IP} - Set Global Variable ${PIKVM_IP} - END - # If snipeit is set to "no", fetch it from command line - Variable Should Exist - ... ${PIKVM_IP} - ... PiKVM IP cannot be fetched from SnipeIT. Please provide it in the 'PIKVM_IP' variable Set Global Variable ${PLATFORM} Get DUT To Start State diff --git a/requirements.txt b/requirements.txt index 246aa2137e..630573c7d3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: Apache-2.0 +attrs==24.3.0 bcrypt==4.1.2 certifi==2024.2.2 cffi==1.17.1 @@ -31,6 +32,7 @@ osfv @ git+https://github.com/Dasharo/osfv-scripts.git@36a030eb006391c3761c25d69 paramiko==3.4.0 pathspec==0.9.0 pexpect==4.9.0 +pikvm @ git+https://github.com/3mdeb/pikvm-rest-api@7e3a2b0fa5c27e7cf45c8afc9d820826f0e3d99b platformdirs==4.2.1 pre-commit==3.7.0 ptyprocess==0.7.0 diff --git a/self-tests/boolean-options.robot b/self-tests/boolean-options.robot index 8938b6b024..dce9b1e8b1 100644 --- a/self-tests/boolean-options.robot +++ b/self-tests/boolean-options.robot @@ -14,7 +14,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/self-tests/dasharo-system-features-menus.robot b/self-tests/dasharo-system-features-menus.robot index f19b2caabb..b07c61328d 100644 --- a/self-tests/dasharo-system-features-menus.robot +++ b/self-tests/dasharo-system-features-menus.robot @@ -14,7 +14,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/self-tests/dcu.robot b/self-tests/dcu.robot index 44bd5763e1..c057a36261 100644 --- a/self-tests/dcu.robot +++ b/self-tests/dcu.robot @@ -12,7 +12,6 @@ Library FakerLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/self-tests/list-options.robot b/self-tests/list-options.robot index 53a200a3b5..7127f65316 100644 --- a/self-tests/list-options.robot +++ b/self-tests/list-options.robot @@ -14,7 +14,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/self-tests/make-sure-that-flash-locks-are-disabled.robot b/self-tests/make-sure-that-flash-locks-are-disabled.robot index 60eed0efd0..fdb92b1238 100644 --- a/self-tests/make-sure-that-flash-locks-are-disabled.robot +++ b/self-tests/make-sure-that-flash-locks-are-disabled.robot @@ -14,7 +14,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/self-tests/numerical-options.robot b/self-tests/numerical-options.robot index b45f7f0b7c..c61d39997f 100644 --- a/self-tests/numerical-options.robot +++ b/self-tests/numerical-options.robot @@ -14,7 +14,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/self-tests/os-boot.robot b/self-tests/os-boot.robot index 1d4dacf3c3..7ad56bad1d 100644 --- a/self-tests/os-boot.robot +++ b/self-tests/os-boot.robot @@ -15,7 +15,6 @@ Resource ../sonoff-rest-api/sonoff-api.robot Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/self-tests/scrolling-boot-manager.robot b/self-tests/scrolling-boot-manager.robot index 14dadecf58..f06abf997c 100644 --- a/self-tests/scrolling-boot-manager.robot +++ b/self-tests/scrolling-boot-manager.robot @@ -15,7 +15,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/self-tests/secure-boot.robot b/self-tests/secure-boot.robot index 86e59bfec2..0dc6829145 100644 --- a/self-tests/secure-boot.robot +++ b/self-tests/secure-boot.robot @@ -13,7 +13,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/self-tests/setup-and-boot-menus.robot b/self-tests/setup-and-boot-menus.robot index 69bc3c7242..1b1527102c 100644 --- a/self-tests/setup-and-boot-menus.robot +++ b/self-tests/setup-and-boot-menus.robot @@ -15,7 +15,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/self-tests/terminal.robot b/self-tests/terminal.robot index 72f2f9015e..b87ab67439 100644 --- a/self-tests/terminal.robot +++ b/self-tests/terminal.robot @@ -14,7 +14,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index e25e327f66..0a082c10c2 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -12,7 +12,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../pikvm-rest-api/pikvm_comm.robot Resource ../keys-and-keywords/ubuntu-keywords.robot # TODO: From 7d4f82040b7a7555f535c8c78984947b0f4db18a Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Wed, 15 Jan 2025 17:49:48 +0100 Subject: [PATCH 058/416] lib/usb-hid-msc-lib.robot: adjust arguments in PiKVM kyewords PIKVM_IP is not given only once when PiKVM library is imported. Also, in some of the calls the order of argument was wrong. Signed-off-by: Maciej Pijanowski --- lib/usb-hid-msc-lib.robot | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/usb-hid-msc-lib.robot b/lib/usb-hid-msc-lib.robot index 509374fe1b..6bfa76de2b 100644 --- a/lib/usb-hid-msc-lib.robot +++ b/lib/usb-hid-msc-lib.robot @@ -22,9 +22,11 @@ Library OperatingSystem Upload And Mount DTS Flash ISO [Documentation] Mounts a bootable ISO as flash USB. Currently ... only the Qubes OS ISO seems to work for the platform. - Upload Image To PiKVM ${PIKVM_IP} dts-base-image-v1.2.8.iso + + Upload Image To PiKVM ... https://dl.3mdeb.com/open-source-firmware/DTS/v1.2.8/dts-base-image-v1.2.8.iso - Mount Image On PiKVM ${PIKVM_IP} dts-base-image-v1.2.8.iso + ... dts-base-image-v1.2.8.iso + Mount Image On PiKVM dts-base-image-v1.2.8.iso Download ISO And Mount As USB [Documentation] Mounts the desired ISO as USB stick, @@ -43,8 +45,8 @@ Download ISO And Mount As USB Add USB To Qemu img_name=${img_path} ELSE IF "${DUT_CONNECTION_METHOD}" == "pikvm" - Upload Image To PiKVM ${PIKVM_IP} ${img_url} ${img_name} - Mount Image On PiKVM ${PIKVM_IP} ${img_name} + Upload Image To PiKVM ${img_url} ${img_name} + Mount Image On PiKVM ${img_name} ELSE Skip unsupported END From 19e4a7e38f29c759116bf3821c636235c5dbd443 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Wed, 15 Jan 2025 17:50:51 +0100 Subject: [PATCH 059/416] variables.robot: drop pikvm_ip property It is not used. This IP is either retreived from SnipeIT, or must be provided as external variable if SnipeIT is not used. Signed-off-by: Maciej Pijanowski --- variables.robot | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/variables.robot b/variables.robot index 5ef98514d8..a6c5c29abd 100644 --- a/variables.robot +++ b/variables.robot @@ -112,20 +112,16 @@ ${OS_UBUNTU}= ubuntu &{RTE33}= ip=192.168.10.107 ... platform=msi-pro-z690-a-wifi-ddr4 ... platform_vendor=MSI Co., Ltd sonoff_ip=192.168.10.170 -... pikvm_ip=192.168.10.99 &{RTE34}= ip=192.168.10.199 ... platform=msi-pro-z690-a-wifi-ddr4 ... platform_vendor=MSI Co., Ltd sonoff_ip=192.168.10.169 -... pikvm_ip=192.168.10.16 &{RTE39}= ip=192.168.10.188 ... platform=msi-pro-z690-a-ddr5 ... platform_vendor=MSI Co., Ltd sonoff_ip=192.168.10.69 -... pikvm_ip=192.168.10.45 # MSI-PRO-Z790-P platforms (Zir-Blazer) ----------------------------- &{RTE46}= ip=192.168.10.127 ... platform=msi-pro-z790-p-ddr5 ... platform_vendor=MSI Co., Ltd sonoff_ip=192.168.10.253 -... pikvm_ip=192.168.10.226 # PC Engines APU7 platform ----------------------------------------------------- &{RTE35}= ip=192.168.10.177 ... platform=apu7 @@ -189,7 +185,7 @@ ${OS_UBUNTU}= ubuntu # NovaCustom automated laptop testing station -------------------------------- &{RTE52}= ip=192.168.10.91 ... platform=novacustom-ts1 platform_vendor=3mdeb -... sonoff_ip=192.168.10.53 pikvm_ip=192.168.10.52 +... sonoff_ip=192.168.10.53 # 3mdeb Protectli VP6670 ----------------------------------------------------- &{RTE53}= ip=192.168.10.110 ... platform=protectli-vp6670 platform_vendor=protectli @@ -236,7 +232,6 @@ ${OS_UBUNTU}= ubuntu # Odroid-H4 Plus &{RTE66}= ip=192.168.10.193 platform=odroid-h4-Plus ... platform_vendor=Hardkernel -... pikvm_ip=192.168.10.120 # Protectli VP3230 &{RTE67}= ip=192.168.10.35 ... platform=protectli-vp3230 From 585852d540362c3ec1ff4f5e30156d86c50f3334 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Thu, 16 Jan 2025 00:46:29 +0100 Subject: [PATCH 060/416] requirements.txt: update pikvm module Signed-off-by: Maciej Pijanowski --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 630573c7d3..d7193de113 100644 --- a/requirements.txt +++ b/requirements.txt @@ -32,7 +32,7 @@ osfv @ git+https://github.com/Dasharo/osfv-scripts.git@36a030eb006391c3761c25d69 paramiko==3.4.0 pathspec==0.9.0 pexpect==4.9.0 -pikvm @ git+https://github.com/3mdeb/pikvm-rest-api@7e3a2b0fa5c27e7cf45c8afc9d820826f0e3d99b +pikvm @ git+https://github.com/3mdeb/pikvm-rest-api@1a1cc579a286fe82aaa2eccea69f96223712664d platformdirs==4.2.1 pre-commit==3.7.0 ptyprocess==0.7.0 From 2f90d8bfa95a1cdc838599599a6c70e703ff3352 Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Fri, 17 Jan 2025 13:28:56 +0100 Subject: [PATCH 061/416] platform-configs/include/default.robot: changed setup menu key value SETUP_MENU_KEY was set to Delete which did not work with telnet connection method Signed-off-by: Cezary Wieczorkowski --- platform-configs/include/default.robot | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 3fbc2d2e0e..f5f7bbc0cc 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -15,7 +15,7 @@ ${FLASH_SIZE}= ${TBD} ${FLASH_LENGTH}= ${TBD} ${TIANOCORE_STRING}= to boot directly ${BOOT_MENU_KEY}= ${F11} -${SETUP_MENU_KEY}= Delete +${SETUP_MENU_KEY}= ${DELETE} ${BOOT_MENU_STRING}= Please select boot device: ${SETUP_MENU_STRING}= Select Entry ${IPXE_BOOT_ENTRY}= iPXE Network Boot @@ -79,6 +79,7 @@ ${TESTS_IN_UBUNTU_SUPPORT}= ${FALSE} ${TESTS_IN_DEBIAN_SUPPORT}= ${FALSE} ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} ${TESTS_IN_METATB_SUPPORT}= ${FALSE} +${TESTS_IN_HEADS_SUPPORT}= ${FALSE} # Regression test flags ${DASHARO_SECURITY_MENU_SUPPORT}= ${FALSE} From 06590cf5b5a7fcda5482a6920c0872ce12b220da Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Fri, 17 Jan 2025 13:31:20 +0100 Subject: [PATCH 062/416] dasharo-stability: changed boot keyword in nvme and usb tests previously used Boot Operating System keyword failed to detect a bootable OS Signed-off-by: Cezary Wieczorkowski --- dasharo-stability/nvme-detection.robot | 4 ++-- dasharo-stability/usb-type-a-devices-detection.robot | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dasharo-stability/nvme-detection.robot b/dasharo-stability/nvme-detection.robot index 7004581246..dc163949e4 100644 --- a/dasharo-stability/nvme-detection.robot +++ b/dasharo-stability/nvme-detection.robot @@ -51,14 +51,14 @@ SNV0002.001 NVMe detection after warm boot (Ubuntu) Skip If not ${NVME_DETECTION_SUPPORT} SNV002.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SNV002.001 not supported Power On - Boot Operating System ubuntu + Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User ${out}= List Devices In Linux pci Should Contain ${out} ${DEVICE_NVME_DISK} FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_WARMBOOT_ITERATIONS} Perform Warmboot Using Rtcwake - Boot Operating System ubuntu + Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User ${out}= List Devices In Linux pci diff --git a/dasharo-stability/usb-type-a-devices-detection.robot b/dasharo-stability/usb-type-a-devices-detection.robot index 8b9a458914..e54579a882 100644 --- a/dasharo-stability/usb-type-a-devices-detection.robot +++ b/dasharo-stability/usb-type-a-devices-detection.robot @@ -53,7 +53,7 @@ SUD002.001 USB devices detection after warm boot (Ubuntu) Skip If not ${USB_TYPE-a_devices_detection_support} SUD002.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUD002.001 not supported Power On - Boot Operating System ubuntu + Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User ${out}= List Devices In Linux usb @@ -61,7 +61,7 @@ SUD002.001 USB devices detection after warm boot (Ubuntu) Detect Or Install FWTS FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_WARMBOOT_ITERATIONS} Perform Warmboot Using Rtcwake - Boot Operating System ubuntu + Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User ${out}= List Devices In Linux usb From 0dda0ccbadf752d1ffbb3ba470774064643a11a6 Mon Sep 17 00:00:00 2001 From: Cezary Wieczorkowski Date: Fri, 17 Jan 2025 13:33:53 +0100 Subject: [PATCH 063/416] platform-configs/odroid-h4-plus.robot: added missing variable values Signed-off-by: Cezary Wieczorkowski --- platform-configs/odroid-h4-plus.robot | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index 11cfb33b5d..000e3a7919 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -11,9 +11,8 @@ ${MANUFACTURER}= Hardkernel ${CPU}= Intel(R) N97 ${POWER_CTRL}= RteCtrl ${FLASH_VERIFY_METHOD}= tianocore-shell -${WIFI_CARD}= ${TBD} -${MAX_CPU_TEMP}= ${TBD} -${FW_VERSION}= ${TBD} +${MAX_CPU_TEMP}= 105 +${FW_VERSION}= v0.9.0-rc3 ${DMIDECODE_SERIAL_NUMBER}= 123456789 ${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.0-rc3 ${DMIDECODE_PRODUCT_NAME}= ODROID-H4 @@ -27,8 +26,7 @@ ${DEVICE_NVME_DISK}= Non-Volatile memory controller ${CLEVO_DISK}= Samsung SSD 990 PRO 1TB ${DEVICE_AUDIO1}= ALC897 ${DEVICE_AUDIO2}= Alderlake-P HDMI -${USB_MODEL}= ${TBD} -${USB_DEVICE}= ${TBD} +${USB_DEVICE}= Multifunction Composite Gadget ${FLASHROM_FLAGS}= ${TBD} ${TESTS_IN_FIRMWARE_SUPPORT}= ${TRUE} ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} From 4bc2b75a39998799b949f2d85f6218ad94deee92 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Mon, 20 Jan 2025 11:47:46 +0100 Subject: [PATCH 064/416] platform-configs/odroid-h4-plus.robot: enable USB security menu Signed-off-by: Maciej Pijanowski --- platform-configs/odroid-h4-plus.robot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index 000e3a7919..10599ab14e 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -100,6 +100,8 @@ ${DASHARO_USB_MENU_SUPPORT}= ${TRUE} ${SMM_WRITE_PROTECTION_SUPPORT}= ${TRUE} ${VERIFIED_BOOT_POPUP_SUPPORT}= ${TRUE} ${MEASURED_BOOT_SUPPORT}= ${TRUE} +${USB_STACK_SUPPORT}= ${TRUE} +${USB_MASS_STORAGE_SUPPORT}= ${TRUE} # Dasharo stability ${NVME_DETECTION_SUPPORT}= ${TRUE} From f641f7ba3f6a23a7af781dd12d07455e0b661969 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Mon, 20 Jan 2025 13:39:03 +0100 Subject: [PATCH 065/416] dasharo-compatibility/usb-detect.robot: pre-commit format Signed-off-by: Maciej Pijanowski --- dasharo-compatibility/usb-detect.robot | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dasharo-compatibility/usb-detect.robot b/dasharo-compatibility/usb-detect.robot index 43549fef3d..20e9c33855 100644 --- a/dasharo-compatibility/usb-detect.robot +++ b/dasharo-compatibility/usb-detect.robot @@ -35,7 +35,7 @@ UDT001.001 USB detection after coldboot FOR ${index} IN RANGE 0 ${USB_DETECTION_ITERATIONS_NUMBER} Power Cycle On ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - ${found}= Check USB Stick Detection in Edk2 ${boot_menu} + ${found}= Check USB Stick Detection In Edk2 ${boot_menu} IF '${found}' != '${TRUE}' ${failed_detection}= Evaluate ${failed_detection} + 1 @@ -53,7 +53,7 @@ UDT001.002 USB detection after warmboot FOR ${index} IN RANGE 0 ${USB_DETECTION_ITERATIONS_NUMBER} Power On ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - ${found}= Check USB Stick Detection in Edk2 ${boot_menu} + ${found}= Check USB Stick Detection In Edk2 ${boot_menu} IF '${found}' != '${TRUE}' ${failed_detection}= Evaluate ${failed_detection} + 1 @@ -71,7 +71,7 @@ UDT001.003 USB detection after system reboot Power On FOR ${index} IN RANGE 0 ${USB_DETECTION_ITERATIONS_NUMBER} ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - ${found}= Check USB Stick Detection in Edk2 ${boot_menu} + ${found}= Check USB Stick Detection In Edk2 ${boot_menu} Boot System Or From Connected Disk ubuntu boot_menu=${boot_menu} Login To Linux Switch To Root User From 6418d7fc35dba8238b5fb96e91e8888eb0288e9e Mon Sep 17 00:00:00 2001 From: Jan Prusinowski Date: Wed, 9 Oct 2024 10:42:10 +0200 Subject: [PATCH 066/416] terminal.robot: Reworked Execute UEFI Shell Command kwd to read all output and not just 1 sec Signed-off-by: Jan Prusinowski secure-boot-lib.robot: Added set prompt to Enter UEFI Shell kwd Signed-off-by: Jan Prusinowski --- lib/secure-boot-lib.robot | 3 ++- lib/terminal.robot | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/secure-boot-lib.robot b/lib/secure-boot-lib.robot index f5e6e1a167..9bfa74fd29 100644 --- a/lib/secure-boot-lib.robot +++ b/lib/secure-boot-lib.robot @@ -224,9 +224,10 @@ Select File In File Explorer Enter UEFI Shell [Documentation] Boots into UEFI Shell. Should be called after Power On or ... reboot + Set Prompt For Terminal Shell> ${boot_menu}= Enter Boot Menu Tianocore And Return Construction Enter Submenu From Snapshot ${boot_menu} UEFI Shell - Read From Terminal Until Shell> + Read From Terminal Until Prompt Sleep 1s Execute File In UEFI Shell diff --git a/lib/terminal.robot b/lib/terminal.robot index e2ae35cb4a..0f91a2901c 100644 --- a/lib/terminal.robot +++ b/lib/terminal.robot @@ -163,13 +163,12 @@ Execute Command In Terminal Execute UEFI Shell Command [Documentation] Universal keyword to execute command in Shell. - [Arguments] ${command} ${timeout}=30s ${uefi_shell_input_latency}=3 + [Arguments] ${command} ${timeout}=30s ${uefi_shell_input_latency}=10 Set DUT Response Timeout ${timeout} ${length}= Get Length ${command} ${timeout}= Evaluate ${length} * ${uefi_shell_input_latency} Write Bare Into Terminal ${command} Sleep ${timeout}ms Press Enter - Sleep 1s - ${output}= Read From Terminal + ${output}= Read From Terminal Until Prompt RETURN ${output} From e49f688ac66caa524d3629758d0a4985c7cf3aef Mon Sep 17 00:00:00 2001 From: Jan Prusinowski Date: Wed, 9 Oct 2024 10:43:05 +0200 Subject: [PATCH 067/416] terminal.robot: Reworked Exec. UEFI Shell Cmd. test to repeat 50 times and added a command which generates a long output. Signed-off-by: Jan Prusinowski --- self-tests/terminal.robot | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/self-tests/terminal.robot b/self-tests/terminal.robot index b87ab67439..e3a742d1d1 100644 --- a/self-tests/terminal.robot +++ b/self-tests/terminal.robot @@ -30,12 +30,18 @@ Execute UEFI Shell Command [Documentation] Test Execute Shell Command kwd Power On Enter UEFI Shell - ${out}= Execute UEFI Shell Command map - Should Contain ${out} Alias(s): - ${out}= Execute UEFI Shell Command devices - Should Contain ${out} Device Name - ${out}= Execute UEFI Shell Command bcfg boot dump - Should Contain ${out} Optional- N + Set Prompt For Terminal Shell> + FOR ${iteration} IN RANGE 1 50 + Log To Console Iteration: ${iteration} + ${out}= Execute UEFI Shell Command map + Should Contain ${out} Alias(s): + ${out}= Execute UEFI Shell Command devices + Should Contain ${out} Device Name + ${out}= Execute UEFI Shell Command bcfg boot dump + Should Contain ${out} Optional- N + ${out}= Execute UEFI Shell Command dmpstore # this command prints data for a long time + Should Contain ${out} GlobalVariable + END Execute Command In Terminal over SSH (Windows) [Documentation] Test Execute Command In Terminal keyword over SSH. This is related From 4eda90ceca6ecc3950aa099b20bbe21e22f39dbb Mon Sep 17 00:00:00 2001 From: Jan Prusinowski Date: Wed, 9 Oct 2024 14:21:54 +0200 Subject: [PATCH 068/416] capsule-update.robot: Reworked tests to use new version of Exec UEFI Shell Cmd. Signed-off-by: Jan Prusinowski --- dasharo-stability/capsule-update.robot | 28 +++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/dasharo-stability/capsule-update.robot b/dasharo-stability/capsule-update.robot index c7ca494422..4040ba3ce4 100644 --- a/dasharo-stability/capsule-update.robot +++ b/dasharo-stability/capsule-update.robot @@ -40,12 +40,14 @@ ${FUM_DIALOG_BOTTOM}= The platform will automatically reboot and disable F *** Test Cases *** CUP001.001 Capsule Update With Wrong Keys [Documentation] Check that DUT rejects flashing a capsule signed with invalid certificate. - Boot Into UEFI Shell + Power On + Enter UEFI Shell ${original_bios_version}= Get BIOS Version Before update Perform Capsule Update wrong_cert.cap - Select UEFI Shell Boot Option + Enter UEFI Shell + ${updated_bios_version}= Get BIOS Version After update Should Be Equal ${original_bios_version} ${updated_bios_version} @@ -55,12 +57,14 @@ CUP001.001 Capsule Update With Wrong Keys CUP002.001 Capsule Update With Wrong GUID [Documentation] Check that DUT rejects flashing a capsule with invalid GUID. - Boot Into UEFI Shell + Power On + Enter UEFI Shell ${original_bios_version}= Get BIOS Version Before Update Perform Capsule Update invalid_guid.cap - Select UEFI Shell Boot Option + Enter UEFI Shell + ${updated_bios_version}= Get BIOS Version After Update Should Be Equal ${original_bios_version} ${updated_bios_version} @@ -82,13 +86,15 @@ CUP150.001 Capsule Update ... Please note that the test number is high on purpose. This test will flash FW! In future ... if additional test cases will be created - when running the whole suite - It will be good ... to keep the number of actual FW updates to minimum to prevent chip degradation. - Boot Into UEFI Shell + Power On + Enter UEFI Shell ${original_bios_version}= Get BIOS Version Before Update Perform Capsule Update valid_capsule.cap Check The Update Screen For The Correct UX - Select UEFI Shell Boot Option + Set DUT Response Timeout 5m + Enter UEFI Shell ${updated_bios_version}= Get BIOS Version After Update Should Not Be Equal ${original_bios_version} ${updated_bios_version} @@ -186,7 +192,8 @@ CUP250.001 Capsule Update Progress Bar - Default Logo # Bump the timeout for memory training Set DUT Response Timeout 5m Turn Off Active ME - Boot Into UEFI Shell + Power On + Enter UEFI Shell Perform Capsule Update valid_capsule.cap Check The Update Screen For The Correct UX @@ -327,10 +334,10 @@ Perform Capsule Update Should Not Contain ${out} is not a valid capsule. Should Not Contain ${out} failed to query capsule capability Should Contain ${out} CapsuleApp: creating capsule descriptors at - Should Contain ${out} :\\capsule_testing\\> # Reset the system manually - Execute UEFI Shell Command reset 5m + Write Bare Into Terminal reset + Press Key N Times 1 ${ENTER} # Confirm update by following instructions of Firmware Update Mode dialog Read From Terminal Until ${FUM_DIALOG_TOP} @@ -370,14 +377,17 @@ Check If Capsule Files Are Present Enter Capsule Testing Folder ${fss}= Get FS From Uefi Shell FOR ${fs} IN @{fss} + Set Prompt For Terminal ${fs}:\\> ${out}= Execute UEFI Shell Command ${fs}: IF 'is not a valid mapping.' in '''${out}''' Fail Failed to find a file-system with capsule_testing/ END + Set Prompt For Terminal \\> ${out}= Execute UEFI Shell Command cd capsule_testing IF 'is not a directory.' not in '''${out}''' BREAK END + Set Prompt For Terminal ${fs}:\\capsule_testing\\> Get FS From Uefi Shell ${map}= Execute UEFI Shell Command map From 3c31b8547914ef15a76429bd4c6e757efcd1969d Mon Sep 17 00:00:00 2001 From: Jan Prusinowski Date: Mon, 4 Nov 2024 10:40:13 +0100 Subject: [PATCH 069/416] capsule.update, usb-hid-and-msc-support: removed redundant kwds and moved setting propt to Enter UEFI Shell --- dasharo-stability/capsule-update.robot | 9 --------- 1 file changed, 9 deletions(-) diff --git a/dasharo-stability/capsule-update.robot b/dasharo-stability/capsule-update.robot index 4040ba3ce4..ea511ff70c 100644 --- a/dasharo-stability/capsule-update.robot +++ b/dasharo-stability/capsule-update.robot @@ -236,15 +236,6 @@ Get Key To Press Log Found digit: ${digit} RETURN ${digit} -Select UEFI Shell Boot Option - ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - Enter Submenu From Snapshot ${boot_menu} UEFI Shell - Read From Terminal Until Shell> - -Boot Into UEFI Shell - Power On - Select UEFI Shell Boot Option - Extract BIOS Version [Arguments] ${text} ${lines}= Split To Lines ${text} From 9f0622ee9ee9cd3803b8fafedb40df1007e43c89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 16 Dec 2024 16:58:01 +0100 Subject: [PATCH 070/416] secure-boot-lib.robot: Execute File In UEFI Shell set prompts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/secure-boot-lib.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/secure-boot-lib.robot b/lib/secure-boot-lib.robot index 9bfa74fd29..1099bb4d35 100644 --- a/lib/secure-boot-lib.robot +++ b/lib/secure-boot-lib.robot @@ -234,10 +234,10 @@ Execute File In UEFI Shell # UEFI shell has different line ending than the one we have set for the # Telnet connection. We cannot change it while the connection is open. [Arguments] ${file} + Set Prompt For Terminal FS0:\\> ${out}= Execute UEFI Shell Command fs0: - Should Contain ${out} FS0:\\> ${out}= Execute UEFI Shell Command ${file} - Should Contain ${out} FS0:\\> + Set Prompt For Terminal Shell> RETURN ${out} Restore Secure Boot Defaults From a17867279b48e2de5a990219e46781551c2c1f42 Mon Sep 17 00:00:00 2001 From: Danik Klimuk <109155473+DaniilKl@users.noreply.github.com> Date: Tue, 28 Jan 2025 14:50:21 +0100 Subject: [PATCH 071/416] dts: e2e: fix DPP access mesage (#685) Signed-off-by: Daniil Klimuk --- dts/dts-e2e.robot | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dts/dts-e2e.robot b/dts/dts-e2e.robot index 2157b9ca86..6124e28783 100644 --- a/dts/dts-e2e.robot +++ b/dts/dts-e2e.robot @@ -49,9 +49,9 @@ ${DTS_DCR_UEFI_OPT}= c ${DTS_DPP_UEFI_OPT}= d ${DTS_DPP_SEA_OPT}= s # DTS subscription checkpoints: -${DTS_NOACCESS_DPP_UEFI}= DPP version (coreboot + UEFI) available but you don't have access -${DTS_NOACCESS_DPP_SEABIOS}= DPP version (coreboot + SeaBIOS) available but you don't have access -${DTS_NOACCESS_DPP_HEADS}= DPP version (coreboot + Heads) available but you don't have access +${DTS_NOACCESS_DPP_UEFI}= Dasharo Pro Package version (coreboot + UEFI) is also available. +${DTS_NOACCESS_DPP_SEABIOS}= Dasharo Pro Package version (coreboot + SeaBIOS) is also available. +${DTS_NOACCESS_DPP_HEADS}= Dasharo Pro Package version (coreboot + Heads) is also available. *** Test Cases *** From d86cceb47fa6a268b5b52009c2ceeca6a2294427 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Wed, 4 Sep 2024 11:38:27 +0200 Subject: [PATCH 072/416] dasharo-security/tpm-support.robot: Refactor TPM version and support tests This commit introduces two new variables, EXPECTED_TPM_CHIP and EXPECTED_TPM_VERSION. Additionally, refactor few keywords and tests within tpm-support.robot Signed-off-by: Sebastian Czapla --- dasharo-security/tpm-support.robot | 63 +++++++++---------- lib/tpm.robot | 37 +++++++++++ platform-configs/include/default.robot | 2 + .../include/optiplex-common.robot | 3 + platform-configs/novacustom-nv41pz.robot | 3 + platform-configs/novacustom-v540tnd.robot | 3 + platform-configs/protectli-vp2420.robot | 3 + platform-configs/protectli-vp2430.robot | 3 + platform-configs/protectli-vp3230.robot | 3 + platform-configs/protectli-vp4650.robot | 3 + 10 files changed, 91 insertions(+), 32 deletions(-) diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index 67cb70b756..66950c3a66 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -10,6 +10,7 @@ Library RequestsLibrary # stuff in all test cases Resource ../variables.robot Resource ../keywords.robot +Resource ../lib/tpm.robot Resource ../keys.robot # TODO: @@ -20,22 +21,27 @@ Suite Setup Run Keywords ... Prepare Test Suite ... AND ... Skip If not ${TPM_SUPPORT} TPM tests not supported +... AND +... Skip If '${TPM_EXPECTED_VERSION}' == '0' TPM Version unset Suite Teardown Run Keyword ... Log Out And Close Connection *** Test Cases *** TPM001.001 TPM Support (firmware) - [Documentation] This test aims to verify that the TPM is initialized - ... correctly and the PCRs can be accessed from the firmware. + [Documentation] This test aims to verify that the TPM is initialized, + ... detected and logged correctly by FW via cbmem, directly in Ubuntu Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM001.001 not supported Power On Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User - Get Cbmem From Cloud - ${out}= Execute Command In Terminal cbmem -L - Should Contain Any ${out} TPM2 log TCPA log + Verify Presence Of TPM Via Sysfs + ${result}= Run Keyword And Ignore Error Validate Expected TPM Chip Via Cbmem + IF '${result}[0]' == 'FAIL' + Log To Console \nChip detection failed, attempting cbmem log detection\n + Validate Expected TPM Version Via Cbmem Log + END TPM001.002 TPM Support (Ubuntu) [Documentation] Check whether the TPM is initialized correctly and the @@ -45,7 +51,8 @@ TPM001.002 TPM Support (Ubuntu) Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User - Validate Any TPM + Verify Presence Of TPM Via Sysfs + Verify Presence Of Any PCRs Via Sysfs TPM001.003 TPM Support (Windows) [Documentation] Check whether the TPM is initialized correctly and the @@ -69,9 +76,12 @@ TPM002.001 Verify TPM version (firmware) Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User - Get Cbmem From Cloud - ${out}= Execute Command In Terminal cbmem -L - Should Contain Any ${out} TPM2 log TCPA log + Verify Presence Of TPM Via Sysfs + ${result}= Run Keyword And Ignore Error Validate Expected TPM Chip Via Cbmem + IF '${result}[0]' == 'FAIL' + Log To Console \nChip detection failed, attempting cbmem log detection\n + Validate Expected TPM Version Via Cbmem Log + END TPM002.002 Verify TPM version (Ubuntu) [Documentation] This test aims to verify that the TPM version is @@ -82,9 +92,8 @@ TPM002.002 Verify TPM version (Ubuntu) Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User - ${out}= Execute Command In Terminal cat /sys/class/tpm/tpm0/tpm_version_major - # TPM 2.0 and 1.2 - Should Contain Any ${out} 1 2 + Verify Presence Of TPM Via Sysfs + Validate Expected TPM Version Via Sysfs TPM002.003 Verify TPM version (Windows) [Documentation] This test aims to verify that the TPM version is @@ -98,7 +107,8 @@ TPM002.003 Verify TPM version (Windows) TPM003.001 Check TPM Physical Presence Interface (firmware) [Documentation] This test aims to verify that the TPM Physical Presence - ... Interface is supported by the firmware. + ... Interface is supported by the firmware and the log can be detected + ... with cbmem within Ubuntu Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.001 not supported Power On Boot System Or From Connected Disk ubuntu @@ -117,8 +127,15 @@ TPM003.002 Check TPM Physical Presence Interface (Ubuntu) Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User + Verify Presence Of TPM Via Sysfs ${out}= Execute Command In Terminal cat /sys/class/tpm/tpm0/ppi/version - Should Contain Any ${out} 1.2 1.3 + IF '${TPM_EXPECTED_VERSION}' == '1' + Should Contain ${out} 1.2 + ELSE IF '${TPM_EXPECTED_VERSION}' == '2' + Should Contain ${out} 1.3 + ELSE + Fail Invalid expected version, please verify config + END TPM003.003 Check TPM Physical Presence Interface (Windows) [Documentation] This test aims to verify that the TPM Physical Presence @@ -135,21 +152,3 @@ TPM003.003 Check TPM Physical Presence Interface (Windows) # Skip If not ${tpm_support} TPM003.004 not supported # Skip If not ${tests_in_ubuntu_support} TPM003.004 not supported # TODO: https://docs.dasharo.com/unified-test-documentation/dasharo-security/200-tpm-support/#tpm003004-change-active-pcr-banks-with-tpm-ppi-firmware - - -*** Keywords *** -Validate Any TPM - [Documentation] Checks for TPM major version, and validates it. - ${tpm_ver}= Execute Command In Terminal cat /sys/class/tpm/tpm0/tpm_version_major - IF '${tpm_ver}' == '2' - Detect Or Install Package tpm2-tools - ${out}= Execute Command In Terminal tpm2_pcrread - Should Contain ${out} sha1: - Should Contain ${out} sha256: - ELSE IF '${tpm_ver}' == '1' - Detect Or Install Package tpm-tools - ${out}= Execute Command In Terminal tpm_selftest - Should Contain ${out} TPM Test Results: - ELSE - Fail No valid TPM version available. - END diff --git a/lib/tpm.robot b/lib/tpm.robot index 610231da27..d935a2d6d7 100644 --- a/lib/tpm.robot +++ b/lib/tpm.robot @@ -67,3 +67,40 @@ Validate PCRs Against Event Log Should Contain ${hash} ${sha_hash} ignore_case=${TRUE} END END + +Validate Expected TPM Version Via Sysfs + [Documentation] Checks if detected major TPM version matches the expected + ... value. + ${tpm_ver}= Execute Command In Terminal cat /sys/class/tpm/tpm0/tpm_version_major + IF '${TPM_EXPECTED_VERSION}' != '${tpm_ver}' + Fail Platform TPM version mismatch + END + +Validate Expected TPM Chip Via Cbmem + [Documentation] Check that correct TPM chip is found while FW boots + Get Cbmem From Cloud + ${tpm_chip_found}= Execute Command In Terminal cbmem -1 | grep -i "Found TPM" + Should Contain ${tpm_chip_found} ${TPM_EXPECTED_CHIP} + +Validate Expected TPM Version Via Cbmem Log + [Documentation] Check if appropriate log is created by FW + Get Cbmem From Cloud + ${out}= Execute Command In Terminal cbmem -L + IF '${TPM_EXPECTED_VERSION}' == '1' + Should Contain ${out} TCPA log + ELSE IF '${TPM_EXPECTED_VERSION}' == '2' + Should Contain ${out} TPM2 log + ELSE + Fail Invalid expected version, please verify config + END + +Verify Presence Of TPM Via Sysfs + [Documentation] Use sysfs interface to detect presence of TPM + ... in the system. + ${tpm_presence}= Execute Command In Terminal test -d /sys/class/tpm/tpm0 && echo "Found TPM" + Should Contain ${tpm_presence} Found TPM + +Verify Presence Of Any PCRs Via Sysfs + [Documentation] Check sysfs interface for presence of any PCR + ${pcr_state}= Execute Command In Terminal ls /sys/class/tpm/tpm0/pcr-sha* &>/dev/null && echo "Found PCRs" + Should Contain ${pcr_state} Found PCRs diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index f5f7bbc0cc..b2115af8d0 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -178,6 +178,8 @@ ${ROMHOLE_SUPPORT}= ${FALSE} # Test module: dasharo-security ${TPM_SUPPORT}= ${FALSE} +${TPM_EXPECTED_CHIP}= FILL_WITH_CORRECT_VALUE_BEFORE_TESTING +${TPM_EXPECTED_VERSION}= 0 ${VERIFIED_BOOT_SUPPORT}= ${FALSE} ${VERIFIED_BOOT_POPUP_SUPPORT}= ${FALSE} ${MEASURED_BOOT_SUPPORT}= ${FALSE} diff --git a/platform-configs/include/optiplex-common.robot b/platform-configs/include/optiplex-common.robot index 0f77045ff8..5c6b428831 100644 --- a/platform-configs/include/optiplex-common.robot +++ b/platform-configs/include/optiplex-common.robot @@ -67,6 +67,9 @@ ${DCU_SERIAL_SUPPORT}= ${TRUE} # Test module: dasharo-security ${TPM_SUPPORT}= ${TRUE} +${TPM_EXPECTED_VERSION}= 1 +# Cannot acquire tpm chip with cbmem on Optiplex platforms +${TPM_EXPECTED_CHIP}= N/A ${MEASURED_BOOT_SUPPORT}= ${TRUE} ${SECURE_BOOT_SUPPORT}= ${TRUE} ${USB_MASS_STORAGE_SUPPORT}= ${TRUE} diff --git a/platform-configs/novacustom-nv41pz.robot b/platform-configs/novacustom-nv41pz.robot index 5e167891f9..ec55c11703 100644 --- a/platform-configs/novacustom-nv41pz.robot +++ b/platform-configs/novacustom-nv41pz.robot @@ -27,3 +27,6 @@ ${POWER_CTRL}= none ${USB_STACK_SUPPORT}= ${TRUE} ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} + +${TPM_EXPECTED_VERSION}= 2 +${TPM_EXPECTED_CHIP}= SLB9670 diff --git a/platform-configs/novacustom-v540tnd.robot b/platform-configs/novacustom-v540tnd.robot index f0616cedb4..c57c412105 100644 --- a/platform-configs/novacustom-v540tnd.robot +++ b/platform-configs/novacustom-v540tnd.robot @@ -35,3 +35,6 @@ ${CLEVO_USB_C_HUB}= Thunderbolt 4 Dock ${DOCKING_STATION_USB_C_CHARGING_SUPPORT}= ${TRUE} ${DOCKING_STATION_AUDIO_SUPPORT}= ${TRUE} ${VERIFIED_BOOT_SUPPORT}= ${TRUE} + +${TPM_EXPECTED_VERSION}= 2 +${TPM_EXPECTED_CHIP}= SLB9672 diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index a95dacacea..d85f30f0f6 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -29,6 +29,9 @@ ${WATCHDOG_SUPPORT}= ${TRUE} ${ETHERNET_ID}= 8086:15f3 +${TPM_EXPECTED_VERSION}= 2 +${TPM_EXPECTED_CHIP}= SLB9670 + *** Keywords *** Flash Protectli VP2420 Internal diff --git a/platform-configs/protectli-vp2430.robot b/platform-configs/protectli-vp2430.robot index 1b884d369f..5734e6e3ec 100644 --- a/platform-configs/protectli-vp2430.robot +++ b/platform-configs/protectli-vp2430.robot @@ -49,3 +49,6 @@ ${BLUETOOTH_CARD_UBUNTU}= Intel Corp. AX200 Bluetooth ... 00-e0-97-1b-00-4a ${ETHERNET_ID}= 8086:125c + +${TPM_EXPECTED_VERSION}= 2 +${TPM_EXPECTED_CHIP}= SLB9670 diff --git a/platform-configs/protectli-vp3230.robot b/platform-configs/protectli-vp3230.robot index db39a7e47d..ffe5f70d24 100644 --- a/platform-configs/protectli-vp3230.robot +++ b/platform-configs/protectli-vp3230.robot @@ -43,3 +43,6 @@ ${CLEVO_DISK}= N/A @{ETH_PORTS}= 64-62-66-23-8f-19 ... 64-62-66-23-8f-1a + +${TPM_EXPECTED_VERSION}= 2 +${TPM_EXPECTED_CHIP}= SLB9670 diff --git a/platform-configs/protectli-vp4650.robot b/platform-configs/protectli-vp4650.robot index e2b7fe9dfe..5e35dd611c 100644 --- a/platform-configs/protectli-vp4650.robot +++ b/platform-configs/protectli-vp4650.robot @@ -27,3 +27,6 @@ ${CPU_MIN_FREQUENCY}= 300 ... 64-62-66-21-42-8e ... 64-62-66-21-42-8d ... 64-62-66-21-42-8c + +${TPM_EXPECTED_VERSION}= 2 +${TPM_EXPECTED_CHIP}= SLB9665 From 9a77d98297a6e66441c66359f4ed3f4324615be1 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 27 Jan 2025 11:55:32 +0100 Subject: [PATCH 073/416] scripts/get-robot-variables.sh: Add TPM to config generation Signed-off-by: Sebastian Czapla --- scripts/get-robot-variables.sh | 45 ++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/scripts/get-robot-variables.sh b/scripts/get-robot-variables.sh index e151ea0476..815bc75fa2 100755 --- a/scripts/get-robot-variables.sh +++ b/scripts/get-robot-variables.sh @@ -159,6 +159,49 @@ while IFS= read -r audio_device_name; do eval "DEVICE_AUDIO$counter='$audio_device_name'" done <<< "$audio_device_names" +# cbmem and TPM detection variables +CBMEM_BINARY_PATH="/usr/local/bin/cbmem" +CBMEM_EXPECTED_HASH="169c5a5a63699cb37cf08d1eff83e59f146ffa98cf283145f27adecc081ac3f6" +CBMEM_URL="https://cloud.3mdeb.com/index.php/s/C6LJMi4bWz3wzR9/download" +TPM_VER_PATH="/sys/class/tpm/tpm0/tpm_version_major" + +ensure_valid_cbmem() { + if [[ -f "$CBMEM_BINARY_PATH" ]]; then + local current_hash + current_hash=$(sha256sum "$CBMEM_BINARY_PATH" | awk '{print $1}') + + if [[ "$current_hash" == "$CBMEM_EXPECTED_HASH" ]]; then + sudo chmod 777 "$CBMEM_BINARY_PATH" + return 0 + fi + else + echo "Fetching cbmem from cloud..." + sudo curl -o "$CBMEM_BINARY_PATH" "$CBMEM_URL" + + if [[ $? -eq 0 ]]; then + echo "Success!" + sudo chmod 777 "$CBMEM_BINARY_PATH" + else + echo "Failed..." + return 1 + fi + fi +} + +ensure_valid_cbmem + +if [ -f ${TPM_VER_PATH} ]; then + TPM_EXPECTED_VERSION=$(cat ${TPM_VER_PATH}) +else + TPM_EXPECTED_VERSION=0 +fi + +if [ -f /usr/local/bin/cbmem ]; then + TPM_EXPECTED_CHIP=$(sudo /usr/local/bin/cbmem -1 | grep "Found TPM" | awk 'NR==1{print $5}'); +else + TPM_EXPECTED_CHIP="Unknown" +fi + # Print collected information if -p is provided if [ "$PRINT" = true ]; then echo "-----------------------WiFi-------------------------" @@ -271,6 +314,8 @@ fi [[ -n "$DEF_CORES_PER_SOCKET" ]] && echo "\${DEF_CORES_PER_SOCKET}= $DEF_CORES_PER_SOCKET" [[ -n "$DEF_SOCKETS" ]] && echo "\${DEF_SOCKETS}= $DEF_SOCKETS" [[ -n "$DEF_ONLINE_CPU" ]] && echo "\${DEF_ONLINE_CPU}= $DEF_ONLINE_CPU" + [[ -n "$TPM_EXPECTED_VERSION" ]] && echo "\${TPM_EXPECTED_VERSION}= $TPM_EXPECTED_VERSION" + [[ -n "$TPM_EXPECTED_CHIP" ]] && echo "\${TPM_EXPECTED_CHIP}= $TPM_EXPECTED_CHIP" for i in $(seq 1 $counter); do eval "audio_device_name=\$DEVICE_AUDIO$i" From 40708db1f3606e08a6176b3dd89cbd1f3edd30d9 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 27 Jan 2025 12:12:31 +0100 Subject: [PATCH 074/416] dasharo-security/tpm2-commands.robot: Add more skip conditions Signed-off-by: Sebastian Czapla --- dasharo-security/measured-boot.robot | 4 +++- dasharo-security/tpm2-commands.robot | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dasharo-security/measured-boot.robot b/dasharo-security/measured-boot.robot index 462cf9c8cf..a5fbd063ae 100644 --- a/dasharo-security/measured-boot.robot +++ b/dasharo-security/measured-boot.robot @@ -10,8 +10,8 @@ Library RequestsLibrary # stuff in all test cases Resource ../variables.robot Resource ../keywords.robot -Resource ../keys.robot Resource ../lib/tpm.robot +Resource ../keys.robot # TODO: # - document which setup/teardown keywords to use and what are they doing @@ -301,8 +301,10 @@ Measured Boot Suite Setup Prepare Test Suite Skip If not ${MEASURED_BOOT_SUPPORT} Measured boot is not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Tests in Ubuntu are not supported + Skip If '${TPM_EXPECTED_VERSION}' == '0' TPM Version in platform config does not support this suite Power On Boot Ubuntu And Login To Root + Verify Presence Of TPM Via Sysfs Detect Or Install Package tpm2-tools # Disable service that adds dbx certificates which could interfere with tests Execute Command In Terminal systemctl disable secureboot-db.service diff --git a/dasharo-security/tpm2-commands.robot b/dasharo-security/tpm2-commands.robot index e7a57260a4..70861607f8 100644 --- a/dasharo-security/tpm2-commands.robot +++ b/dasharo-security/tpm2-commands.robot @@ -10,6 +10,7 @@ Library RequestsLibrary # stuff in all test cases Resource ../variables.robot Resource ../keywords.robot +Resource ../lib/tpm.robot Resource ../keys.robot # TODO: @@ -264,9 +265,11 @@ TPM2 Suite Setup Prepare Test Suite Skip If not ${TPM_SUPPORT} TPM tests not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM commands tests supported only on Ubuntu + Skip If '${TPM_EXPECTED_VERSION}' != '2' TPM Version in platform config does not support this suite Power On Boot System Or From Connected Disk ubuntu Login To Linux + Verify Presence Of TPM Via Sysfs Switch To Root User Detect Or Install Package tpm2-tools ${passed}= Run Keyword And Return Status From dcceb930adbe3205ef2bd7ab94ac7178a1de337d Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 27 Jan 2025 12:57:56 +0100 Subject: [PATCH 075/416] scripts/get-robot-variables.sh: Fix awk expression Signed-off-by: Sebastian Czapla --- scripts/get-robot-variables.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/get-robot-variables.sh b/scripts/get-robot-variables.sh index 815bc75fa2..abbf054408 100755 --- a/scripts/get-robot-variables.sh +++ b/scripts/get-robot-variables.sh @@ -197,7 +197,7 @@ else fi if [ -f /usr/local/bin/cbmem ]; then - TPM_EXPECTED_CHIP=$(sudo /usr/local/bin/cbmem -1 | grep "Found TPM" | awk 'NR==1{print $5}'); + TPM_EXPECTED_CHIP=$(sudo /usr/local/bin/cbmem -1 | grep "Found TPM" | awk 'NR==1{print $6}'); else TPM_EXPECTED_CHIP="Unknown" fi From 3bae854c22bd45bbb49ed82bb24aeacc871e7922 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 27 Jan 2025 15:47:06 +0100 Subject: [PATCH 076/416] tpm-support: Merge TPM variables Signed-off-by: Sebastian Czapla --- dasharo-security/measured-boot.robot | 2 +- dasharo-security/tpm-support.robot | 10 ++++------ dasharo-security/tpm2-commands.robot | 5 ++--- lib/tpm.robot | 6 +++--- platform-configs/include/default.robot | 3 +-- platform-configs/include/msi-z690-common.robot | 2 +- platform-configs/include/novacustom-common.robot | 2 +- platform-configs/include/optiplex-common.robot | 3 +-- platform-configs/include/pcengines.robot | 2 +- platform-configs/include/protectli-common.robot | 2 +- platform-configs/novacustom-nv41pz.robot | 2 +- platform-configs/novacustom-v540tnd.robot | 2 +- platform-configs/odroid-h4-plus.robot | 2 +- platform-configs/protectli-vp2420.robot | 2 +- platform-configs/protectli-vp2430.robot | 2 +- platform-configs/protectli-vp3230.robot | 2 +- platform-configs/protectli-vp4650.robot | 2 +- platform-configs/protectli-vp6650.robot | 2 ++ platform-configs/qemu.robot | 2 +- platform-configs/raptor-cs_talos2.robot | 2 +- platform-configs/rpi-3b.robot | 2 +- scripts/get-robot-variables.sh | 6 +++--- scripts/lib/mappings.json | 2 +- trenchboot/01-without-drtm.robot | 2 +- trenchboot/02-with-drtm.robot | 2 +- 25 files changed, 34 insertions(+), 37 deletions(-) diff --git a/dasharo-security/measured-boot.robot b/dasharo-security/measured-boot.robot index a5fbd063ae..169677747a 100644 --- a/dasharo-security/measured-boot.robot +++ b/dasharo-security/measured-boot.robot @@ -299,9 +299,9 @@ Restore SB And Tianocore Defaults And Reset Measured Boot Suite Setup Prepare Test Suite + Skip If ${TPM_SUPPORTED_VERSION} == None Measured boot tests require TPM Skip If not ${MEASURED_BOOT_SUPPORT} Measured boot is not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Tests in Ubuntu are not supported - Skip If '${TPM_EXPECTED_VERSION}' == '0' TPM Version in platform config does not support this suite Power On Boot Ubuntu And Login To Root Verify Presence Of TPM Via Sysfs diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index 66950c3a66..2625ec44b5 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -20,9 +20,7 @@ Resource ../keys.robot Suite Setup Run Keywords ... Prepare Test Suite ... AND -... Skip If not ${TPM_SUPPORT} TPM tests not supported -... AND -... Skip If '${TPM_EXPECTED_VERSION}' == '0' TPM Version unset +... Skip If ${TPM_SUPPORTED_VERSION} == None TPM tests not supported Suite Teardown Run Keyword ... Log Out And Close Connection @@ -129,9 +127,9 @@ TPM003.002 Check TPM Physical Presence Interface (Ubuntu) Switch To Root User Verify Presence Of TPM Via Sysfs ${out}= Execute Command In Terminal cat /sys/class/tpm/tpm0/ppi/version - IF '${TPM_EXPECTED_VERSION}' == '1' + IF '${TPM_SUPPORTED_VERSION}' == '1' Should Contain ${out} 1.2 - ELSE IF '${TPM_EXPECTED_VERSION}' == '2' + ELSE IF '${TPM_SUPPORTED_VERSION}' == '2' Should Contain ${out} 1.3 ELSE Fail Invalid expected version, please verify config @@ -149,6 +147,6 @@ TPM003.003 Check TPM Physical Presence Interface (Windows) # TPM003.004 Change active PCR banks with TPM PPI (firmware) # [Documentation] This test aims to verify that the TPM Physical Presence # ... Interface is working properly in the firmware by changing active TPM PCR banks. -# Skip If not ${tpm_support} TPM003.004 not supported +# Skip If not ${TPM_SUPPORTED_VERSION} TPM003.004 not supported # Skip If not ${tests_in_ubuntu_support} TPM003.004 not supported # TODO: https://docs.dasharo.com/unified-test-documentation/dasharo-security/200-tpm-support/#tpm003004-change-active-pcr-banks-with-tpm-ppi-firmware diff --git a/dasharo-security/tpm2-commands.robot b/dasharo-security/tpm2-commands.robot index 70861607f8..b0adee1802 100644 --- a/dasharo-security/tpm2-commands.robot +++ b/dasharo-security/tpm2-commands.robot @@ -263,14 +263,13 @@ Check If SHA1 And SHA256 Banks Are Enabled TPM2 Suite Setup Prepare Test Suite - Skip If not ${TPM_SUPPORT} TPM tests not supported + Skip If ${TPM_SUPPORTED_VERSION} != '2' TPM commands tests supported only TPM2 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM commands tests supported only on Ubuntu - Skip If '${TPM_EXPECTED_VERSION}' != '2' TPM Version in platform config does not support this suite Power On Boot System Or From Connected Disk ubuntu Login To Linux - Verify Presence Of TPM Via Sysfs Switch To Root User + Verify Presence Of TPM Via Sysfs Detect Or Install Package tpm2-tools ${passed}= Run Keyword And Return Status ... Check If SHA1 And SHA256 Banks Are Enabled diff --git a/lib/tpm.robot b/lib/tpm.robot index d935a2d6d7..8f99d14e47 100644 --- a/lib/tpm.robot +++ b/lib/tpm.robot @@ -72,7 +72,7 @@ Validate Expected TPM Version Via Sysfs [Documentation] Checks if detected major TPM version matches the expected ... value. ${tpm_ver}= Execute Command In Terminal cat /sys/class/tpm/tpm0/tpm_version_major - IF '${TPM_EXPECTED_VERSION}' != '${tpm_ver}' + IF '${TPM_SUPPORTED_VERSION}' != '${tpm_ver}' Fail Platform TPM version mismatch END @@ -86,9 +86,9 @@ Validate Expected TPM Version Via Cbmem Log [Documentation] Check if appropriate log is created by FW Get Cbmem From Cloud ${out}= Execute Command In Terminal cbmem -L - IF '${TPM_EXPECTED_VERSION}' == '1' + IF '${TPM_SUPPORTED_VERSION}' == '1' Should Contain ${out} TCPA log - ELSE IF '${TPM_EXPECTED_VERSION}' == '2' + ELSE IF '${TPM_SUPPORTED_VERSION}' == '2' Should Contain ${out} TPM2 log ELSE Fail Invalid expected version, please verify config diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index b2115af8d0..d42a047322 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -177,9 +177,8 @@ ${DCU_SERIAL_SUPPORT}= ${FALSE} ${ROMHOLE_SUPPORT}= ${FALSE} # Test module: dasharo-security -${TPM_SUPPORT}= ${FALSE} +${TPM_SUPPORTED_VERSION}= ${None} ${TPM_EXPECTED_CHIP}= FILL_WITH_CORRECT_VALUE_BEFORE_TESTING -${TPM_EXPECTED_VERSION}= 0 ${VERIFIED_BOOT_SUPPORT}= ${FALSE} ${VERIFIED_BOOT_POPUP_SUPPORT}= ${FALSE} ${MEASURED_BOOT_SUPPORT}= ${FALSE} diff --git a/platform-configs/include/msi-z690-common.robot b/platform-configs/include/msi-z690-common.robot index b08506be46..8bb3083bf7 100644 --- a/platform-configs/include/msi-z690-common.robot +++ b/platform-configs/include/msi-z690-common.robot @@ -90,7 +90,7 @@ ${SATA_SUPPORT}= ${TRUE} ${RESET_TO_DEFAULTS_SUPPORT}= ${TRUE} # Test module: dasharo-security -${TPM_SUPPORT}= ${TRUE} +${TPM_SUPPORTED_VERSION}= 2 ${VERIFIED_BOOT_SUPPORT}= ${TRUE} ${VERIFIED_BOOT_POPUP_SUPPORT}= ${TRUE} ${MEASURED_BOOT_SUPPORT}= ${TRUE} diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index c73e28ba8d..245b3bb50a 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -99,7 +99,7 @@ ${DTS_FIRMWARE_FLASHING_SUPPORT}= ${TRUE} ${DTS_EC_FLASHING_SUPPORT}= ${TRUE} # Test module: dasharo-security -${TPM_SUPPORT}= ${TRUE} +${TPM_SUPPORTED_VERSION}= 2 ${VERIFIED_BOOT_SUPPORT}= ${TRUE} ${VERIFIED_BOOT_POPUP_SUPPORT}= ${TRUE} ${MEASURED_BOOT_SUPPORT}= ${TRUE} diff --git a/platform-configs/include/optiplex-common.robot b/platform-configs/include/optiplex-common.robot index 5c6b428831..6b63041786 100644 --- a/platform-configs/include/optiplex-common.robot +++ b/platform-configs/include/optiplex-common.robot @@ -66,8 +66,7 @@ ${DCU_UUID_SUPPORT}= ${TRUE} ${DCU_SERIAL_SUPPORT}= ${TRUE} # Test module: dasharo-security -${TPM_SUPPORT}= ${TRUE} -${TPM_EXPECTED_VERSION}= 1 +${TPM_SUPPORTED_VERSION}= 1 # Cannot acquire tpm chip with cbmem on Optiplex platforms ${TPM_EXPECTED_CHIP}= N/A ${MEASURED_BOOT_SUPPORT}= ${TRUE} diff --git a/platform-configs/include/pcengines.robot b/platform-configs/include/pcengines.robot index 29c9b9991e..5a066ab160 100644 --- a/platform-configs/include/pcengines.robot +++ b/platform-configs/include/pcengines.robot @@ -83,7 +83,7 @@ ${MINI_PC_IE_SLOT_SUPPORT}= ${TRUE} ${APU_CONFIGURATION_MENU_SUPPORT}= ${TRUE} # Test module: dasharo-security -${TPM_SUPPORT}= ${TRUE} +${TPM_SUPPORTED_VERSION}= 2 ${VERIFIED_BOOT_SUPPORT}= ${TRUE} ${VERIFIED_BOOT_POPUP_SUPPORT}= ${TRUE} ${MEASURED_BOOT_SUPPORT}= ${TRUE} diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index 03ef611509..1904ff75eb 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -77,7 +77,7 @@ ${DCU_UUID_SUPPORT}= ${TRUE} ${DCU_SERIAL_SUPPORT}= ${TRUE} # Test module: dasharo-security -${TPM_SUPPORT}= ${TRUE} +${TPM_SUPPORTED_VERSION}= 2 ${SECURE_BOOT_SUPPORT}= ${TRUE} ${SECURE_BOOT_DEFAULT_STATE}= Disabled ${USB_STACK_SUPPORT}= ${TRUE} diff --git a/platform-configs/novacustom-nv41pz.robot b/platform-configs/novacustom-nv41pz.robot index ec55c11703..f8f4f00e90 100644 --- a/platform-configs/novacustom-nv41pz.robot +++ b/platform-configs/novacustom-nv41pz.robot @@ -28,5 +28,5 @@ ${POWER_CTRL}= none ${USB_STACK_SUPPORT}= ${TRUE} ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} -${TPM_EXPECTED_VERSION}= 2 +${TPM_SUPPORTED_VERSION}= 2 ${TPM_EXPECTED_CHIP}= SLB9670 diff --git a/platform-configs/novacustom-v540tnd.robot b/platform-configs/novacustom-v540tnd.robot index c57c412105..3c563abb1b 100644 --- a/platform-configs/novacustom-v540tnd.robot +++ b/platform-configs/novacustom-v540tnd.robot @@ -36,5 +36,5 @@ ${DOCKING_STATION_USB_C_CHARGING_SUPPORT}= ${TRUE} ${DOCKING_STATION_AUDIO_SUPPORT}= ${TRUE} ${VERIFIED_BOOT_SUPPORT}= ${TRUE} -${TPM_EXPECTED_VERSION}= 2 +${TPM_SUPPORTED_VERSION}= 2 ${TPM_EXPECTED_CHIP}= SLB9672 diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index 10599ab14e..6eb3a5bab5 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -89,7 +89,7 @@ ${CPU_TEMPERATURE_MEASURE}= ${TRUE} ${PLATFORM_STABILITY_CHECKING}= ${TRUE} # Dasharo security -${TPM_SUPPORT}= ${TRUE} +${TPM_SUPPORTED_VERSION}= 2 ${TPM_DETECT_SUPPORT}= ${TRUE} ${VERIFIED_BOOT_SUPPORT}= ${TRUE} ${BIOS_LOCK_SUPPORT}= ${TRUE} diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index d85f30f0f6..d1a855be7d 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -29,7 +29,7 @@ ${WATCHDOG_SUPPORT}= ${TRUE} ${ETHERNET_ID}= 8086:15f3 -${TPM_EXPECTED_VERSION}= 2 +${TPM_SUPPORTED_VERSION}= 2 ${TPM_EXPECTED_CHIP}= SLB9670 diff --git a/platform-configs/protectli-vp2430.robot b/platform-configs/protectli-vp2430.robot index 5734e6e3ec..7b3c6a90ad 100644 --- a/platform-configs/protectli-vp2430.robot +++ b/platform-configs/protectli-vp2430.robot @@ -50,5 +50,5 @@ ${BLUETOOTH_CARD_UBUNTU}= Intel Corp. AX200 Bluetooth ${ETHERNET_ID}= 8086:125c -${TPM_EXPECTED_VERSION}= 2 +${TPM_SUPPORTED_VERSION}= 2 ${TPM_EXPECTED_CHIP}= SLB9670 diff --git a/platform-configs/protectli-vp3230.robot b/platform-configs/protectli-vp3230.robot index ffe5f70d24..6197ebc0b1 100644 --- a/platform-configs/protectli-vp3230.robot +++ b/platform-configs/protectli-vp3230.robot @@ -44,5 +44,5 @@ ${CLEVO_DISK}= N/A @{ETH_PORTS}= 64-62-66-23-8f-19 ... 64-62-66-23-8f-1a -${TPM_EXPECTED_VERSION}= 2 +${TPM_SUPPORTED_VERSION}= 2 ${TPM_EXPECTED_CHIP}= SLB9670 diff --git a/platform-configs/protectli-vp4650.robot b/platform-configs/protectli-vp4650.robot index 5e35dd611c..3224df5347 100644 --- a/platform-configs/protectli-vp4650.robot +++ b/platform-configs/protectli-vp4650.robot @@ -28,5 +28,5 @@ ${CPU_MIN_FREQUENCY}= 300 ... 64-62-66-21-42-8d ... 64-62-66-21-42-8c -${TPM_EXPECTED_VERSION}= 2 +${TPM_SUPPORTED_VERSION}= 2 ${TPM_EXPECTED_CHIP}= SLB9665 diff --git a/platform-configs/protectli-vp6650.robot b/platform-configs/protectli-vp6650.robot index 3d83fc8f5c..327d7422cb 100644 --- a/platform-configs/protectli-vp6650.robot +++ b/platform-configs/protectli-vp6650.robot @@ -28,3 +28,5 @@ ${PLATFORM_RAM_SIZE}= 65536 ... 64-62-66-22-84-f6 ... 64-62-66-22-84-f7 ... 64-62-66-22-84-f8 + +${TPM_SUPPORTED_VERSION}= ${None} diff --git a/platform-configs/qemu.robot b/platform-configs/qemu.robot index dd5bdf0016..90265e2628 100644 --- a/platform-configs/qemu.robot +++ b/platform-configs/qemu.robot @@ -61,7 +61,7 @@ ${RESET_TO_DEFAULTS_SUPPORT}= ${TRUE} ${ESP_SCANNING_SUPPORT}= ${TRUE} # Test module: dasharo-security -${TPM_SUPPORT}= ${TRUE} +${TPM_SUPPORTED_VERSION}= 2 ${VERIFIED_BOOT_SUPPORT}= ${TRUE} ${VERIFIED_BOOT_POPUP_SUPPORT}= ${TRUE} ${MEASURED_BOOT_SUPPORT}= ${TRUE} diff --git a/platform-configs/raptor-cs_talos2.robot b/platform-configs/raptor-cs_talos2.robot index adeeca0efd..cc1c7b4ddc 100644 --- a/platform-configs/raptor-cs_talos2.robot +++ b/platform-configs/raptor-cs_talos2.robot @@ -108,7 +108,7 @@ ${ESP_SCANNING_SUPPORT}= ${FALSE} ${L3_CACHE_SUPPORT}= ${TRUE} # Test module: dasharo-security -${TPM_SUPPORT}= ${TRUE} +${TPM_SUPPORTED_VERSION}= 2 ${VERIFIED_BOOT_SUPPORT}= ${FALSE} ${VERIFIED_BOOT_POPUP_SUPPORT}= ${FALSE} ${MEASURED_BOOT_SUPPORT}= ${FALSE} diff --git a/platform-configs/rpi-3b.robot b/platform-configs/rpi-3b.robot index 223fcec657..e2a3c5632f 100644 --- a/platform-configs/rpi-3b.robot +++ b/platform-configs/rpi-3b.robot @@ -118,7 +118,7 @@ ${DEFAULT_POWER_STATE_AFTER_FAIL}= Powered Off ${ESP_SCANNING_SUPPORT}= ${FALSE} # Test module: dasharo-security -${TPM_SUPPORT}= ${FALSE} +${TPM_SUPPORTED_VERSION}= ${None} ${VERIFIED_BOOT_SUPPORT}= ${FALSE} ${VERIFIED_BOOT_POPUP_SUPPORT}= ${FALSE} ${MEASURED_BOOT_SUPPORT}= ${FALSE} diff --git a/scripts/get-robot-variables.sh b/scripts/get-robot-variables.sh index abbf054408..942000f6c5 100755 --- a/scripts/get-robot-variables.sh +++ b/scripts/get-robot-variables.sh @@ -191,9 +191,9 @@ ensure_valid_cbmem() { ensure_valid_cbmem if [ -f ${TPM_VER_PATH} ]; then - TPM_EXPECTED_VERSION=$(cat ${TPM_VER_PATH}) + TPM_SUPPORTED_VERSION=$(cat ${TPM_VER_PATH}) else - TPM_EXPECTED_VERSION=0 + TPM_SUPPORTED_VERSION=\$\{None\} fi if [ -f /usr/local/bin/cbmem ]; then @@ -314,7 +314,7 @@ fi [[ -n "$DEF_CORES_PER_SOCKET" ]] && echo "\${DEF_CORES_PER_SOCKET}= $DEF_CORES_PER_SOCKET" [[ -n "$DEF_SOCKETS" ]] && echo "\${DEF_SOCKETS}= $DEF_SOCKETS" [[ -n "$DEF_ONLINE_CPU" ]] && echo "\${DEF_ONLINE_CPU}= $DEF_ONLINE_CPU" - [[ -n "$TPM_EXPECTED_VERSION" ]] && echo "\${TPM_EXPECTED_VERSION}= $TPM_EXPECTED_VERSION" + [[ -n "$TPM_SUPPORTED_VERSION" ]] && echo "\${TPM_SUPPORTED_VERSION}= $TPM_SUPPORTED_VERSION" [[ -n "$TPM_EXPECTED_CHIP" ]] && echo "\${TPM_EXPECTED_CHIP}= $TPM_EXPECTED_CHIP" for i in $(seq 1 $counter); do diff --git a/scripts/lib/mappings.json b/scripts/lib/mappings.json index b2bb01a766..0c4f7aec09 100644 --- a/scripts/lib/mappings.json +++ b/scripts/lib/mappings.json @@ -2,7 +2,7 @@ "options": { "CONFIG_MAINBOARD_POWER_FAILURE_STATE": "DEFAULT_POWER_STATE_AFTER_FAIL", "CONFIG_VBOOT": "VERIFIED_BOOT_SUPPORT", - "CONFIG_TPM": "TPM_SUPPORT", + "CONFIG_TPM": "TPM_SUPPORTED_VERSION", "CONFIG_EDK2_SECURE_BOOT_SUPPORT": "SECURE_BOOT_SUPPORT", "CONFIG_EDK2_IPXE_OPTION_NAME": "IPXE_BOOT_ENTRY", "CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME": "DMIDECODE_PRODUCT_NAME", diff --git a/trenchboot/01-without-drtm.robot b/trenchboot/01-without-drtm.robot index 9fdbf6e278..37dca3c849 100644 --- a/trenchboot/01-without-drtm.robot +++ b/trenchboot/01-without-drtm.robot @@ -57,7 +57,7 @@ WOD004.001 DRTM event log doesn't exist TrenchBoot Suite Setup Prepare Test Suite - Skip If not ${TPM_SUPPORT} TPM tests not supported + Skip If ${TPM_SUPPORTED_VERSION} == None TPM tests not supported Skip If not ${TRENCHBOOT_SUPPORT} TrenchBoot tests aren't supported Skip If not ${TESTS_IN_METATB_SUPPORT} Tests in meta-trenchboot aren't supported diff --git a/trenchboot/02-with-drtm.robot b/trenchboot/02-with-drtm.robot index c5627893a4..7655b95abf 100644 --- a/trenchboot/02-with-drtm.robot +++ b/trenchboot/02-with-drtm.robot @@ -159,7 +159,7 @@ WTD007.001 SRTM log aligns with PCR values TrenchBoot Suite Setup Prepare Test Suite - Skip If not ${TPM_SUPPORT} TPM tests not supported + Skip If ${TPM_SUPPORTED_VERSION} == None TPM tests not supported Skip If not ${TRENCHBOOT_SUPPORT} TrenchBoot tests aren't supported Skip If not ${TESTS_IN_METATB_SUPPORT} Tests in meta-trenchboot aren't supported From e8ffeace23e5dd0a4335b20de9cfc9a21a7339fa Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 27 Jan 2025 16:22:26 +0100 Subject: [PATCH 077/416] dasharo-security/tpm-support.robot: Extract common actions into kwd Signed-off-by: Sebastian Czapla --- dasharo-security/tpm-support.robot | 45 +++++++++++------------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index 2625ec44b5..b2501488ba 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -30,11 +30,7 @@ TPM001.001 TPM Support (firmware) [Documentation] This test aims to verify that the TPM is initialized, ... detected and logged correctly by FW via cbmem, directly in Ubuntu Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM001.001 not supported - Power On - Boot System Or From Connected Disk ubuntu - Login To Linux - Switch To Root User - Verify Presence Of TPM Via Sysfs + Prepare TPM Test On Ubuntu ${result}= Run Keyword And Ignore Error Validate Expected TPM Chip Via Cbmem IF '${result}[0]' == 'FAIL' Log To Console \nChip detection failed, attempting cbmem log detection\n @@ -45,11 +41,7 @@ TPM001.002 TPM Support (Ubuntu) [Documentation] Check whether the TPM is initialized correctly and the ... PCRs can be accessed from the Linux OS. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM001.002 not supported - Power On - Boot System Or From Connected Disk ubuntu - Login To Linux - Switch To Root User - Verify Presence Of TPM Via Sysfs + Prepare TPM Test On Ubuntu Verify Presence Of Any PCRs Via Sysfs TPM001.003 TPM Support (Windows) @@ -70,11 +62,7 @@ TPM002.001 Verify TPM version (firmware) [Documentation] This test aims to verify that the TPM version is ... correctly recognized by the firmware. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM002.001 not supported - Power On - Boot System Or From Connected Disk ubuntu - Login To Linux - Switch To Root User - Verify Presence Of TPM Via Sysfs + Prepare TPM Test On Ubuntu ${result}= Run Keyword And Ignore Error Validate Expected TPM Chip Via Cbmem IF '${result}[0]' == 'FAIL' Log To Console \nChip detection failed, attempting cbmem log detection\n @@ -86,11 +74,7 @@ TPM002.002 Verify TPM version (Ubuntu) ... correctly recognized by the operating system. [Tags] minimal-regression Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM002.002 not supported - Power On - Boot System Or From Connected Disk ubuntu - Login To Linux - Switch To Root User - Verify Presence Of TPM Via Sysfs + Prepare TPM Test On Ubuntu Validate Expected TPM Version Via Sysfs TPM002.003 Verify TPM version (Windows) @@ -108,10 +92,7 @@ TPM003.001 Check TPM Physical Presence Interface (firmware) ... Interface is supported by the firmware and the log can be detected ... with cbmem within Ubuntu Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.001 not supported - Power On - Boot System Or From Connected Disk ubuntu - Login To Linux - Switch To Root User + Prepare TPM Test On Ubuntu Get Cbmem From Cloud ${out}= Execute Command In Terminal cbmem -1 | grep PPI Should Contain ${out} PPI: Pending OS request @@ -121,11 +102,7 @@ TPM003.002 Check TPM Physical Presence Interface (Ubuntu) [Documentation] This test aims to verify that the TPM Physical Presence ... Interface is correctly recognized by the operating system. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.002 not supported - Power On - Boot System Or From Connected Disk ubuntu - Login To Linux - Switch To Root User - Verify Presence Of TPM Via Sysfs + Prepare TPM Test On Ubuntu ${out}= Execute Command In Terminal cat /sys/class/tpm/tpm0/ppi/version IF '${TPM_SUPPORTED_VERSION}' == '1' Should Contain ${out} 1.2 @@ -150,3 +127,13 @@ TPM003.003 Check TPM Physical Presence Interface (Windows) # Skip If not ${TPM_SUPPORTED_VERSION} TPM003.004 not supported # Skip If not ${tests_in_ubuntu_support} TPM003.004 not supported # TODO: https://docs.dasharo.com/unified-test-documentation/dasharo-security/200-tpm-support/#tpm003004-change-active-pcr-banks-with-tpm-ppi-firmware + + +*** Keywords *** +Prepare TPM Test On Ubuntu + [Documentation] Run common actions required for TPM tests in Ubuntu + Power On + Boot System Or From Connected Disk ubuntu + Login To Linux + Switch To Root User + Verify Presence Of TPM Via Sysfs From d6cb5fa1a5021d00e71324f11d9160bf94854492 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Tue, 28 Jan 2025 09:39:04 +0100 Subject: [PATCH 078/416] dasharo-security/tpm-support.robot: Fix skip conditions in WIP code Signed-off-by: Sebastian Czapla --- dasharo-security/tpm-support.robot | 4 ++-- platform-configs/protectli-vp6650.robot | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index b2501488ba..99a72d16cf 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -124,8 +124,8 @@ TPM003.003 Check TPM Physical Presence Interface (Windows) # TPM003.004 Change active PCR banks with TPM PPI (firmware) # [Documentation] This test aims to verify that the TPM Physical Presence # ... Interface is working properly in the firmware by changing active TPM PCR banks. -# Skip If not ${TPM_SUPPORTED_VERSION} TPM003.004 not supported -# Skip If not ${tests_in_ubuntu_support} TPM003.004 not supported +# Skip If not ${TPM_SUPPORTED_VERSION} == None TPM003.004 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.004 not supported # TODO: https://docs.dasharo.com/unified-test-documentation/dasharo-security/200-tpm-support/#tpm003004-change-active-pcr-banks-with-tpm-ppi-firmware diff --git a/platform-configs/protectli-vp6650.robot b/platform-configs/protectli-vp6650.robot index 327d7422cb..3d83fc8f5c 100644 --- a/platform-configs/protectli-vp6650.robot +++ b/platform-configs/protectli-vp6650.robot @@ -28,5 +28,3 @@ ${PLATFORM_RAM_SIZE}= 65536 ... 64-62-66-22-84-f6 ... 64-62-66-22-84-f7 ... 64-62-66-22-84-f8 - -${TPM_SUPPORTED_VERSION}= ${None} From ab540eb037f8a81499eb5f699c627fe276e0a4d7 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Tue, 4 Feb 2025 13:16:55 +0100 Subject: [PATCH 079/416] dasharo-security/tpm-support.robot: Clarify kwd names, fix variable gen Signed-off-by: Sebastian Czapla --- dasharo-security/tpm-support.robot | 8 ++++---- lib/tpm.robot | 4 ++-- scripts/get-robot-variables.sh | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index 99a72d16cf..4778c1fe30 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -31,10 +31,10 @@ TPM001.001 TPM Support (firmware) ... detected and logged correctly by FW via cbmem, directly in Ubuntu Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM001.001 not supported Prepare TPM Test On Ubuntu - ${result}= Run Keyword And Ignore Error Validate Expected TPM Chip Via Cbmem + ${result}= Run Keyword And Ignore Error Validate Expected TPM Chip Via Cbmem Console Log IF '${result}[0]' == 'FAIL' Log To Console \nChip detection failed, attempting cbmem log detection\n - Validate Expected TPM Version Via Cbmem Log + Validate Expected TPM Version Via Cbmem TPM Eventlog END TPM001.002 TPM Support (Ubuntu) @@ -63,10 +63,10 @@ TPM002.001 Verify TPM version (firmware) ... correctly recognized by the firmware. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM002.001 not supported Prepare TPM Test On Ubuntu - ${result}= Run Keyword And Ignore Error Validate Expected TPM Chip Via Cbmem + ${result}= Run Keyword And Ignore Error Validate Expected TPM Chip Via Cbmem Console Log IF '${result}[0]' == 'FAIL' Log To Console \nChip detection failed, attempting cbmem log detection\n - Validate Expected TPM Version Via Cbmem Log + Validate Expected TPM Version Via Cbmem TPM Eventlog END TPM002.002 Verify TPM version (Ubuntu) diff --git a/lib/tpm.robot b/lib/tpm.robot index 8f99d14e47..9152dce7a6 100644 --- a/lib/tpm.robot +++ b/lib/tpm.robot @@ -76,13 +76,13 @@ Validate Expected TPM Version Via Sysfs Fail Platform TPM version mismatch END -Validate Expected TPM Chip Via Cbmem +Validate Expected TPM Chip Via Cbmem Console Log [Documentation] Check that correct TPM chip is found while FW boots Get Cbmem From Cloud ${tpm_chip_found}= Execute Command In Terminal cbmem -1 | grep -i "Found TPM" Should Contain ${tpm_chip_found} ${TPM_EXPECTED_CHIP} -Validate Expected TPM Version Via Cbmem Log +Validate Expected TPM Version Via Cbmem TPM Eventlog [Documentation] Check if appropriate log is created by FW Get Cbmem From Cloud ${out}= Execute Command In Terminal cbmem -L diff --git a/scripts/get-robot-variables.sh b/scripts/get-robot-variables.sh index 942000f6c5..82ccf911e0 100755 --- a/scripts/get-robot-variables.sh +++ b/scripts/get-robot-variables.sh @@ -196,8 +196,8 @@ else TPM_SUPPORTED_VERSION=\$\{None\} fi -if [ -f /usr/local/bin/cbmem ]; then - TPM_EXPECTED_CHIP=$(sudo /usr/local/bin/cbmem -1 | grep "Found TPM" | awk 'NR==1{print $6}'); +if [ -f ${CBMEM_BINARY_PATH} ]; then + TPM_EXPECTED_CHIP=$(sudo ${CBMEM_BINARY_PATH} -1 | grep "Found TPM" | awk 'NR==1{print $6}'); else TPM_EXPECTED_CHIP="Unknown" fi @@ -314,7 +314,7 @@ fi [[ -n "$DEF_CORES_PER_SOCKET" ]] && echo "\${DEF_CORES_PER_SOCKET}= $DEF_CORES_PER_SOCKET" [[ -n "$DEF_SOCKETS" ]] && echo "\${DEF_SOCKETS}= $DEF_SOCKETS" [[ -n "$DEF_ONLINE_CPU" ]] && echo "\${DEF_ONLINE_CPU}= $DEF_ONLINE_CPU" - [[ -n "$TPM_SUPPORTED_VERSION" ]] && echo "\${TPM_SUPPORTED_VERSION}= $TPM_SUPPORTED_VERSION" + [[ -n "$TPM_SUPPORTED_VERSION" ]] && echo "\${TPM_SUPPORTED_VERSION}= $TPM_SUPPORTED_VERSION" [[ -n "$TPM_EXPECTED_CHIP" ]] && echo "\${TPM_EXPECTED_CHIP}= $TPM_EXPECTED_CHIP" for i in $(seq 1 $counter); do From 11b43143a9aa26e08158a4e7b0b7e18b2e937e01 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 20 Jan 2025 14:12:47 +0100 Subject: [PATCH 080/416] lib/network.robot: Update detection mechanisms On systems with docker-provided interfaces, or with a LTE module, a DUT may acquire an IP address like 172.x.x.x, before the 192.168.10.x. Such address is not valid for purpose of file transfer, for example, during flashing process on freshly booted machine. Adding 50s retry period ensures that all IP addresses were assigned. Additionally, swap keyword cross-dependency. Previously, connection detection would be attempted, even if our IP was not set. This makes certain tests fail (especially on a package installation keyword). Furthermore, we technically don't need Internet connection to have IP address assigned, so we also bring this behavior to what might be expected. Signed-off-by: Sebastian Czapla --- lib/network.robot | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/network.robot b/lib/network.robot index cda4312cdf..7b4ec122e6 100644 --- a/lib/network.robot +++ b/lib/network.robot @@ -16,6 +16,8 @@ Send File To DUT Set Local Variable ${ip_address} localhost Set Local Variable ${port} 5222 ELSE + Wait Until Keyword Succeeds 5x 10s + ... Get Hostname Ip ${ip_address}= Get Hostname Ip Set Local Variable ${port} 22 END @@ -33,11 +35,6 @@ Send File To DUT Get Hostname Ip [Documentation] Returns local IP address of the DUT. - # TODO: We do not necessarily need Internet to be reachable for the internal - # addresses to be assigned. But if it is, the local IPs are definitely - # already in place. - Wait Until Keyword Succeeds 5x 1s - ... Check Internet Connection On Linux ${out_hostname}= Execute Command In Terminal hostname -I Should Not Contain ${out_hostname} link is not ready ${ip_address}= String.Get Regexp Matches ${out_hostname} \\b(?:192\\.168|10\\.0)\\.\\d{1,3}\\.\\d{1,3}\\b @@ -46,6 +43,8 @@ Get Hostname Ip Check Internet Connection On Linux [Documentation] Check internet connection on Linux. + Wait Until Keyword Succeeds 5x 10s + ... Get Hostname Ip ${out}= Execute Linux Command ping -c 4 google-public-dns-a.google.com Should Contain ${out} , 0% packet loss From f8d9eb2b47c6022878cb7e63ef152fb30321484a Mon Sep 17 00:00:00 2001 From: Danik Klimuk <109155473+DaniilKl@users.noreply.github.com> Date: Thu, 6 Feb 2025 15:09:28 +0100 Subject: [PATCH 081/416] dts: dts-e2e.robot: E2E006.004: fix to update (#691) Signed-off-by: Daniil Klimuk --- dts/dts-e2e.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dts/dts-e2e.robot b/dts/dts-e2e.robot index 6124e28783..626bf76089 100644 --- a/dts/dts-e2e.robot +++ b/dts/dts-e2e.robot @@ -1020,7 +1020,7 @@ E2E006.004 Odroid H4 DPP update (Coreboot + UEFI -> Coreboot + UEFI) - with cred Provide DPP Credentials # 4) Start initial deployment: - Go Through Initial Deployment DPP UEFI + Go Through Update # 5) The final step is rebooting: Wait For Checkpoint Rebooting From 3962b9af4a1cbfce0e5ce3658d510a49bb178037 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Thu, 6 Feb 2025 11:31:23 +0100 Subject: [PATCH 082/416] platform-configs/protectli-vp2430.robot: Update config Signed-off-by: Sebastian Czapla --- platform-configs/protectli-vp2430.robot | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/platform-configs/protectli-vp2430.robot b/platform-configs/protectli-vp2430.robot index 7b3c6a90ad..b04b500415 100644 --- a/platform-configs/protectli-vp2430.robot +++ b/platform-configs/protectli-vp2430.robot @@ -9,18 +9,16 @@ ${FLASHING_METHOD}= external # eMMC driver support ${E_MMC_NAME}= BJTD4R -@{ATTACHED_USB}= ${TBD} - ${DMIDECODE_SERIAL_NUMBER}= 123456789 -${DMIDECODE_FIRMWARE_VERSION}= N/A +${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.0-rc2 ${DMIDECODE_PRODUCT_NAME}= VP2430 -${DMIDECODE_RELEASE_DATE}= N/A +${DMIDECODE_RELEASE_DATE}= 12/17/2024 ${DMIDECODE_TYPE}= Desktop ${CPU_MAX_FREQUENCY}= 3400 ${CPU_MIN_FREQUENCY}= 700 -${WATCHDOG_SUPPORT}= ${TRUE} +${WATCHDOG_SUPPORT}= ${FALSE} ${DEF_THREADS_TOTAL}= 4 ${DEF_THREADS_PER_CORE}= 1 @@ -28,7 +26,7 @@ ${DEF_CORES_PER_SOCKET}= 4 ${DEF_SOCKETS}= 1 ${DEF_ONLINE_CPU}= 0-3 -${PLATFORM_CPU_SPEED}= 0,80 # get-robot-variables suggests 3,40, but 0,80 is what setup menu shows +${PLATFORM_CPU_SPEED}= 0.80 # get-robot-variables suggests 3,40, but 0,80 is what setup menu shows ${PLATFORM_RAM_SPEED}= 4800 ${PLATFORM_RAM_SIZE}= 16384 @@ -37,12 +35,13 @@ ${CPU}= Intel(R) N100 ${DEVICE_AUDIO1}= Alderlake-P HDMI ${DEVICE_AUDIO1_WIN}= ${TBD} # On Windows: "Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW)" -${WIFI_CARD}= -... ${TBD} +${WIFI_CARD}= Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW) ${USB_MODEL}= SanDisk ${USB_DEVICE}= SanDisk ${BLUETOOTH_CARD_UBUNTU}= Intel Corp. AX200 Bluetooth +@{ATTACHED_USB}= SanDisk +${ESP_SCANNING_SUPPORT}= ${TRUE} @{ETH_PORTS}= 00-e0-97-1b-00-47 ... 00-e0-97-1b-00-48 ... 00-e0-97-1b-00-49 @@ -50,5 +49,4 @@ ${BLUETOOTH_CARD_UBUNTU}= Intel Corp. AX200 Bluetooth ${ETHERNET_ID}= 8086:125c -${TPM_SUPPORTED_VERSION}= 2 ${TPM_EXPECTED_CHIP}= SLB9670 From 7b4092ddafbb6ce4a512508148aee1445e6f47ac Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Thu, 6 Feb 2025 11:32:30 +0100 Subject: [PATCH 083/416] platform-configs/protectli-vp2420.robot: Update config Signed-off-by: Sebastian Czapla --- platform-configs/protectli-vp2420.robot | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index d1a855be7d..c01fa5bfff 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -10,9 +10,9 @@ ${FLASHING_METHOD}= internal ${E_MMC_NAME}= 8GTF4R ${DMIDECODE_SERIAL_NUMBER}= N/A -${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v1.2.1-rc1 +${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v1.2.1-rc3 ${DMIDECODE_PRODUCT_NAME}= VP2420 -${DMIDECODE_RELEASE_DATE}= 12/18/2024 +${DMIDECODE_RELEASE_DATE}= 1/13/2025 ${DMIDECODE_TYPE}= Desktop ${CPU_MAX_FREQUENCY}= 2700 @@ -28,8 +28,8 @@ ${WATCHDOG_SUPPORT}= ${TRUE} ... 00-e0-67-1c-29-7c ${ETHERNET_ID}= 8086:15f3 +${NVME_DISK_SUPPORT}= ${FALSE} -${TPM_SUPPORTED_VERSION}= 2 ${TPM_EXPECTED_CHIP}= SLB9670 From 42c427e56805925b6c44ffceeb841c072da1e899 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Thu, 6 Feb 2025 11:33:20 +0100 Subject: [PATCH 084/416] platform-configs/protectli-vp6670.robot: Update config Signed-off-by: Sebastian Czapla --- platform-configs/protectli-vp6670.robot | 1 + 1 file changed, 1 insertion(+) diff --git a/platform-configs/protectli-vp6670.robot b/platform-configs/protectli-vp6670.robot index a986834cc0..909b656c3d 100644 --- a/platform-configs/protectli-vp6670.robot +++ b/platform-configs/protectli-vp6670.robot @@ -15,6 +15,7 @@ ${WIFI_CARD_UBUNTU}= ${TBD} ${LTE_CARD}= ${TBD} ${DEVICE_NVME_DISK}= Non-Volatile memory controller ${USB_MODEL}= SanDisk +@{ATTACHED_USB}= Wilk USB ${DMIDECODE_PRODUCT_NAME}= VP6670 From e21703b4d7e84ac2c749846d3e2be27353463ad4 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Thu, 6 Feb 2025 11:33:59 +0100 Subject: [PATCH 085/416] osfv: Small fixes Signed-off-by: Sebastian Czapla --- dasharo-compatibility/efibootmgr.robot | 1 + dasharo-compatibility/esp-scanning.robot | 2 -- self-tests/os-boot.robot | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/dasharo-compatibility/efibootmgr.robot b/dasharo-compatibility/efibootmgr.robot index 7d6fa0bd42..4d86c2a364 100644 --- a/dasharo-compatibility/efibootmgr.robot +++ b/dasharo-compatibility/efibootmgr.robot @@ -120,6 +120,7 @@ EBM004.001 Custom Boot Order Remove *** Keywords *** Login And Remove Test Boot Entry + Power Cycle On Login To Linux Switch To Root User Remove Test Boot Entry Return Bootorder diff --git a/dasharo-compatibility/esp-scanning.robot b/dasharo-compatibility/esp-scanning.robot index 4bfc5f495c..379d15d9f7 100644 --- a/dasharo-compatibility/esp-scanning.robot +++ b/dasharo-compatibility/esp-scanning.robot @@ -102,8 +102,6 @@ ESP002.001 ESP Scan after deleting additional .efi files [Documentation] This test aims to verify that none of the systems linger ... on in the boot menu after we've deleted their files from /EFI/. Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} ESP002.001 not supported - Skip If not ${ESP_SCANNING_SUPPORT} ESP002.001 not supported - Power On Clear Out EFI Partition Power On diff --git a/self-tests/os-boot.robot b/self-tests/os-boot.robot index 7ad56bad1d..f513e97ba3 100644 --- a/self-tests/os-boot.robot +++ b/self-tests/os-boot.robot @@ -11,7 +11,6 @@ Library SSHLibrary timeout=90 seconds Library RequestsLibrary # TODO: maybe have a single file to include if we need to include the same # stuff in all test cases -Resource ../sonoff-rest-api/sonoff-api.robot Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot From a0aea0d1f53c670ebe53d57e77e2ed519c9bbbb9 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Thu, 6 Feb 2025 16:07:05 +0100 Subject: [PATCH 086/416] dasharo-compatibility/esp-scanning.robot: Clean init/teardown process Signed-off-by: Sebastian Czapla --- dasharo-compatibility/esp-scanning.robot | 43 ++++++++++++------------ 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/dasharo-compatibility/esp-scanning.robot b/dasharo-compatibility/esp-scanning.robot index 379d15d9f7..01e11055a1 100644 --- a/dasharo-compatibility/esp-scanning.robot +++ b/dasharo-compatibility/esp-scanning.robot @@ -13,29 +13,14 @@ Resource ../keywords.robot Resource ../keys.robot # Library ../lib/QemuMonitor.py /tmp/qmp-socket -# Required setup keywords: -# Prepare Test Suite - generic setup keyword for all tests -# Required teardown keywords: -# Log Out And Close Connection - generic setup keyword for all tests, -# closes all connections to DUT and PiKVM -Suite Setup Run Keywords -... Prepare Test Suite -... AND -... Skip If not ${ESP_SCANNING_SUPPORT} ESP scanning tests not supported -... AND -... Prepare Required Files For Qemu -... AND -... Prepare EFI Partition With System Files -Suite Teardown Run Keywords -... Clear Out EFI Partition AND -... Log Out And Close Connection +Suite Setup Setup Esp Scanning Suite +Suite Teardown Teardown Esp Scanning Suite *** Test Cases *** ESP001.001 ESP Scan with OS-specific .efi files added [Documentation] This test aims to verify that any properly added .efi ... files will have boot menu entries created for them. - Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} ESP001.001 not supported Power On ${boot_menu}= Enter Boot Menu Tianocore And Return Construction FOR ${system} IN @{SYSTEMS_FOR_ESP_TESTING} @@ -49,7 +34,6 @@ ESP003.001 ESP Scan ignores OSes on removable media [Documentation] This test aims to verify that the bootable /EFI ... partitions of removable media are ignored by the scan and aren't ... listed in boot menu, except for DTS. - Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} ESP003.001 not supported Power On Download ISO And Mount As USB ${DL_CACHE_DIR}/CorePlus-current.iso ... ${TINYCORE_URL} @@ -62,7 +46,6 @@ ESP004.001 ESP Scan does not create duplicate entries [Documentation] This test aims to verify that the firmware will not ... create duplicate entries, for example, if both shimx64 and grubx64 ... are present for a single OS. - Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} ESP004.001 not supported Power On ${boot_menu}= Enter Boot Menu Tianocore And Return Construction @@ -78,7 +61,6 @@ ESP005.001 ESP Scan detects Dasharo Tools Suite [Documentation] This test aims to verify that the firmware detects ... Dasharo Tools Suite boot media and creates a corresponding boot ... menu entry. - Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} ESP005.001 not supported Power On Download ISO And Mount As USB ... ${DL_CACHE_DIR}/dts-base-i${DL_CACHE_DIR}/mage-v1.2.8.iso @@ -91,7 +73,6 @@ ESP005.001 ESP Scan detects Dasharo Tools Suite ESP006.001 ESP Scan does not find non-block boot devices [Documentation] This test aims to verify that the firmware will not ... find non-block boot devices - Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} ESP004.001 not supported Power On ${boot_menu}= Enter Boot Menu Tianocore And Return Construction FOR ${boot_option} IN @{boot_menu} @@ -101,7 +82,6 @@ ESP006.001 ESP Scan does not find non-block boot devices ESP002.001 ESP Scan after deleting additional .efi files [Documentation] This test aims to verify that none of the systems linger ... on in the boot menu after we've deleted their files from /EFI/. - Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} ESP002.001 not supported Power On Clear Out EFI Partition Power On @@ -109,3 +89,22 @@ ESP002.001 ESP Scan after deleting additional .efi files FOR ${system} IN @{SYSTEMS_FOR_ESP_TESTING} Should Not Contain Match ${boot_menu} ${system}* END + + +*** Keywords *** +Setup Esp Scanning Suite + [Documentation] Load platform config and prepare files for the testing + Prepare Test Suite + Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} ESP scanning tests not supported + Skip If not ${ESP_SCANNING_SUPPORT} ESP scanning tests not supported + Prepare Required Files For Qemu + Prepare EFI Partition With System Files + +Teardown Esp Scanning Suite + [Documentation] Teardown ESP suite. To reduce cross-suite interaction + ... we clear call Clear Out EFI Partition only if suite run in the + ... first place + IF ${ESP_SCANNING_SUPPORT} and ${TESTS_IN_FIRMWARE_SUPPORT} + Clear Out EFI Partition + END + Log Out And Close Connection From abd613cd4b75728eb88a605537a4dcc5ecbe1077 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Tue, 18 Feb 2025 11:44:46 +0100 Subject: [PATCH 087/416] dasharo-security/tpm2-commands.robot: Fix incorrect skip condition Signed-off-by: Sebastian Czapla --- dasharo-security/tpm2-commands.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dasharo-security/tpm2-commands.robot b/dasharo-security/tpm2-commands.robot index b0adee1802..b7a91b961d 100644 --- a/dasharo-security/tpm2-commands.robot +++ b/dasharo-security/tpm2-commands.robot @@ -263,7 +263,7 @@ Check If SHA1 And SHA256 Banks Are Enabled TPM2 Suite Setup Prepare Test Suite - Skip If ${TPM_SUPPORTED_VERSION} != '2' TPM commands tests supported only TPM2 + Skip If '${TPM_SUPPORTED_VERSION}' != '2' TPM commands tests supported only TPM2 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM commands tests supported only on Ubuntu Power On Boot System Or From Connected Disk ubuntu From 2cc98404f73476ddfae4ae1c916f2c4736db908a Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Tue, 11 Feb 2025 13:28:14 +0100 Subject: [PATCH 088/416] osfv: Initial support for systems with disabled UEFI Shell Signed-off-by: Sebastian Czapla --- .../network-boot-utilities.robot | 15 ++++++++++++++- dasharo-compatibility/uefi-shell.robot | 12 ++++++++---- platform-configs/include/protectli-common.robot | 4 +--- platform-configs/raptor-cs_talos2.robot | 2 +- platform-configs/rpi-3b.robot | 1 - 5 files changed, 24 insertions(+), 10 deletions(-) diff --git a/dasharo-compatibility/network-boot-utilities.robot b/dasharo-compatibility/network-boot-utilities.robot index 57b6af857a..0f71518c66 100644 --- a/dasharo-compatibility/network-boot-utilities.robot +++ b/dasharo-compatibility/network-boot-utilities.robot @@ -24,7 +24,7 @@ Resource ../keys.robot Suite Setup Run Keywords ... Prepare Test Suite ... AND -... Skip If not ${NETBOOT_UTILITIES_SUPPORT} Network BOot and Utilities tests not supported +... Skip If not ${NETBOOT_UTILITIES_SUPPORT} Network Boot and Utilities tests not supported Suite Teardown Run Keyword ... Log Out And Close Connection @@ -141,3 +141,16 @@ NBT007.001 Change netboot URL option works correctly Enter Submenu From Snapshot ${ipxe_menu} Change Netboot iPXE Payload URL ${out}= Read From Terminal Until Reset to Default Should Contain ${out} http://boot.dasharo.com/dts/dts.ipxe + +NBT008.001 iPXE Autoboot is disabled + [Documentation] Check whether platform can reenter the IPXE menu + ... without booting automatically + Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} NBT008.001 not supported + Power On + ${boot_menu}= Enter Boot Menu Tianocore And Return Construction + Enter Submenu From Snapshot ${boot_menu} Network Boot and Utilities + ${ipxe_menu_initial}= Get IPXE Boot Menu Construction + Sleep 15 + Reenter Menu + ${ipxe_menu_secondary}= Get IPXE Boot Menu Construction + Should Be Equal ${ipxe_menu_initial} ${ipxe_menu_secondary} diff --git a/dasharo-compatibility/uefi-shell.robot b/dasharo-compatibility/uefi-shell.robot index df7dfd4460..080f576cdc 100644 --- a/dasharo-compatibility/uefi-shell.robot +++ b/dasharo-compatibility/uefi-shell.robot @@ -25,10 +25,14 @@ Suite Teardown Run Keyword *** Test Cases *** USH001.001 UEFI Shell [Documentation] Check whether the DUT has the ability to boot into an - ... integrated UEFI Shell application. + ... integrated UEFI Shell application or that the UEFI Shell does + ... not appear, based on the UEFI_SHELL_SUPPORT value. Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} USH001.001 not supported - Skip If not ${UEFI_SHELL_SUPPORT} USH001.001 not supported Power On ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - Enter Submenu From Snapshot ${boot_menu} UEFI Shell - Read From Terminal Until UEFI Interactive Shell + IF ${UEFI_SHELL_SUPPORT} + Enter Submenu From Snapshot ${boot_menu} UEFI Shell + Read From Terminal Until UEFI Interactive Shell + ELSE + Should Not Contain ${boot_menu} UEFI Shell + END diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index 1904ff75eb..f26129b7da 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -18,8 +18,7 @@ ${EDK2_IPXE_CHECKPOINT}= Advanced ${MANUFACTURER}= ${TBD} ${CPU}= ${TBD} ${POWER_CTRL}= RteCtrl -${FLASH_VERIFY_METHOD}= tianocore-shell -${FLASH_VERIFY_OPTION}= UEFI Shell +${FLASH_VERIFY_METHOD}= none ${DMIDECODE_SERIAL_NUMBER}= N/A ${DMIDECODE_MANUFACTURER}= Protectli @@ -51,7 +50,6 @@ ${CUSTOM_NETWORK_BOOT_ENTRIES_SUPPORT}= ${TRUE} ${EXTERNAL_HDMI_DISPLAY_SUPPORT}= ${TRUE} ${EXTERNAL_DISPLAY_PORT_SUPPORT}= ${TRUE} ${CUSTOM_LOGO_SUPPORT}= ${TRUE} -${UEFI_SHELL_SUPPORT}= ${TRUE} ${UEFI_COMPATIBLE_INTERFACE_SUPPORT}= ${TRUE} ${NETBOOT_UTILITIES_SUPPORT}= ${TRUE} ${WIRELESS_CARD_SUPPORT}= ${TRUE} diff --git a/platform-configs/raptor-cs_talos2.robot b/platform-configs/raptor-cs_talos2.robot index cc1c7b4ddc..b8026056d3 100644 --- a/platform-configs/raptor-cs_talos2.robot +++ b/platform-configs/raptor-cs_talos2.robot @@ -61,7 +61,7 @@ ${USB_DISKS_DETECTION_SUPPORT}= ${FALSE} ${USB_KEYBOARD_DETECTION_SUPPORT}= ${FALSE} ${USB_CAMERA_DETECTION_SUPPORT}= ${FALSE} ${USB_TYPE_C_DISPLAY_SUPPORT}= ${FALSE} -${UEFI_SHELL_SUPPORT}= ${FALSE} + ${UEFI_COMPATIBLE_INTERFACE_SUPPORT}= ${FALSE} ${IPXE_BOOT_SUPPORT}= ${FALSE} ${NETBOOT_UTILITIES_SUPPORT}= ${FALSE} diff --git a/platform-configs/rpi-3b.robot b/platform-configs/rpi-3b.robot index e2a3c5632f..61ffa69c17 100644 --- a/platform-configs/rpi-3b.robot +++ b/platform-configs/rpi-3b.robot @@ -75,7 +75,6 @@ ${USB_DISKS_DETECTION_SUPPORT}= ${FALSE} ${USB_KEYBOARD_DETECTION_SUPPORT}= ${FALSE} ${USB_CAMERA_DETECTION_SUPPORT}= ${FALSE} ${USB_TYPE_C_DISPLAY_SUPPORT}= ${FALSE} -${UEFI_SHELL_SUPPORT}= ${FALSE} ${UEFI_COMPATIBLE_INTERFACE_SUPPORT}= ${FALSE} ${IPXE_BOOT_SUPPORT}= ${FALSE} ${NETBOOT_UTILITIES_SUPPORT}= ${FALSE} From 362c3d11c513566ed39be3b925f1fcb025b489d7 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Thu, 13 Feb 2025 11:48:51 +0100 Subject: [PATCH 089/416] dasharo-compatibility/usb-hid-and-msc-support.robot: Add UEFI shell dependency Signed-off-by: Sebastian Czapla --- dasharo-compatibility/usb-hid-and-msc-support.robot | 1 + platform-configs/raptor-cs_talos2.robot | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 097aa914e9..0e550359e0 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -66,6 +66,7 @@ USB002.001 USB keyboard detected in FW ... according to their labels. [Tags] minimal-regression Depends On ${TESTS_IN_FIRMWARE_SUPPORT} + Depends On ${UEFI_SHELL_SUPPORT} Depends On ${HAS_KEYBOARD} Power On Enter UEFI Shell diff --git a/platform-configs/raptor-cs_talos2.robot b/platform-configs/raptor-cs_talos2.robot index b8026056d3..cdb3e9c3e7 100644 --- a/platform-configs/raptor-cs_talos2.robot +++ b/platform-configs/raptor-cs_talos2.robot @@ -61,7 +61,6 @@ ${USB_DISKS_DETECTION_SUPPORT}= ${FALSE} ${USB_KEYBOARD_DETECTION_SUPPORT}= ${FALSE} ${USB_CAMERA_DETECTION_SUPPORT}= ${FALSE} ${USB_TYPE_C_DISPLAY_SUPPORT}= ${FALSE} - ${UEFI_COMPATIBLE_INTERFACE_SUPPORT}= ${FALSE} ${IPXE_BOOT_SUPPORT}= ${FALSE} ${NETBOOT_UTILITIES_SUPPORT}= ${FALSE} From 7dd5c9e8ecf64bcf19a95a1614ae5300d775ca08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 17 Dec 2024 11:48:16 +0100 Subject: [PATCH 090/416] contributing.md: Add KW documentation guideline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś contributing.md: docs example: use proper syntax for sections Signed-off-by: Filip Gołaś docs/contributing: Fix broken interline spacing in example doc lists Signed-off-by: Filip Gołaś docs/contributing.md: Add link to robot docs formatting Signed-off-by: Filip Gołaś contributing.md: Add a note that RF 5.0 is used Signed-off-by: Filip Gołaś contributing.md: KW docs requirements: split to public and private KWds Signed-off-by: Filip Gołaś contributing.md: Fix example to return as documented Signed-off-by: Filip Gołaś --- docs/contributing.md | 72 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/docs/contributing.md b/docs/contributing.md index bb8c65276e..624afb47cb 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -94,3 +94,75 @@ and add as guidelines: * Each new (or modified) file, test, keyword, must have a `[Documentation]` section. + +#### Public Keyword Documentation Requirements + +Public keywords are supposed to be called from other files, which import +it as a resource. They should be well documented to make them easier to use and +less prone to misusage and causing regression errors when modifying them. + +The documentation of a public keyword should contain: + +* A brief description of what the keyword does. +* The starting conditions that the keyword expects. Whether the DUT is power ON + or OFF, whether a specific OS is booted or not, what connection type is + required (SSH, Telnet/Serial), if any packages are required to be installed +* The arguments, their types and short descriptions of what the arguments are + for and what values can be passed in them. +* The return value, if it is used, what is it's type and what does it contain +* Side Effects, if the keyword shuts down the device, reboots it, logs in/out, + does anything, that could cause persistent effects or interfere with other + keywords' starting conditions. + +Example, that can be used as a template: + +```robotframework +Cowsay Keyword + [Documentation] + ... Saves a cowsay message of ``${input_text}`` to ``${out_file}`` + ... + ... === Requirements === + ... - The device has to be turned on + ... - Ubuntu has to be booted, logged in + ... - ``cowsay`` package to be installed + ... + ... === Arguments === + ... - ``${input_text}``: ``string`` - The text that will be used for the + ... \ cowsay message. Can be any string. + ... - ``${out_file}``: ``string`` - The file path under which the cowsay + ... \ message will be saved. Default: ``cowsay.txt``. Has to be a valid + ... \ path. Does not have to be absolute. + ... + ... === Return Value === + ... - ``string`` - The generated cowsay message + ... + ... === Side Effects === + ... - Creates ``${out_file}`` file with the cowsay message. Overwrites + ... \ the file if already exists. + [Arguments] ${input_text} ${out_file}="cowsay.txt" + + ${output}= Execute Command In Terminal cowsay ${input_text} | tee ${out_file} + RETURN ${output} +``` + +The documentation on robot documentation syntax can be found at [robotframework.org](http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#documentation-formatting). + +Note that the repository uses Robot Framework version 5.0, in which spaces need +to be escaped in keyword documentation, just like in the example. + +#### Private Keyword Documentation Requirements + +Private (local) keywords can be defined in both test suites and libraries +as a way to organize the code. Local keywords should be tagged with the +`robot:private` tag. Keywords with this tag are not supposed to be called +from the outside and don't need to be documented comprehensively. Calling a +keyword tagged as private causes a warning to appear in the logs. +Example private keyword: + +```robotframework +Hello World Printer Helper + [Documentation] Prints "Hello World!" to the RF console + [Tags] robot:private + + Log To Console Hello World! +``` From d72a66c6767fc3ab69b3878ea3558694488c2f03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 21 Jan 2025 10:13:34 +0100 Subject: [PATCH 091/416] docs/contributing.md: Documentation header `Side Effects` -> `Effects` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/contributing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/contributing.md b/docs/contributing.md index 624afb47cb..e82fe57987 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -110,7 +110,7 @@ The documentation of a public keyword should contain: * The arguments, their types and short descriptions of what the arguments are for and what values can be passed in them. * The return value, if it is used, what is it's type and what does it contain -* Side Effects, if the keyword shuts down the device, reboots it, logs in/out, +* Effects, if the keyword shuts down the device, reboots it, logs in/out, does anything, that could cause persistent effects or interfere with other keywords' starting conditions. @@ -136,7 +136,7 @@ Cowsay Keyword ... === Return Value === ... - ``string`` - The generated cowsay message ... - ... === Side Effects === + ... === Effects === ... - Creates ``${out_file}`` file with the cowsay message. Overwrites ... \ the file if already exists. [Arguments] ${input_text} ${out_file}="cowsay.txt" From 230d47b2232765aa24cd385b7d83c4f38012644b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 16 Jan 2025 11:40:06 +0100 Subject: [PATCH 092/416] kaywords.robot: Add "Abstract" Power On keyword to override in configs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Defining "Power On" in platform configs will override it. Having this "abstract" keyword allows to create a documentation in one place, to make it appear in the HTML documentation and to be detected by LSP servers Signed-off-by: Filip Gołaś --- keywords.robot | 24 ++++++++++++++++++++++++ platform-configs/include/default.robot | 7 +++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/keywords.robot b/keywords.robot index c04b85afc3..661f6ec424 100644 --- a/keywords.robot +++ b/keywords.robot @@ -500,6 +500,8 @@ Prepare Test Suite END IF '${CONFIG}' == 'rpi-3b' Verify Number Of Connected SD Wire Devices + Set Library Search Order ${CONFIG} + Import Osfv Libraries [Documentation] Import osfv_cli libraries based on config and command ... line variables @@ -1541,3 +1543,25 @@ Should Contain All FOR ${substring} IN @{substrings} Should Contain ${string} ${substring} END + +Power On + [Documentation] Clears telnet buffer and sets Device Under Test + ... into Power On state. Has to be implemented in platform configs + ... using the theory of operation of a specific platform. + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - The platform is ON + ... - Telnet buffer is cleared + ... - Always performs a full power cycle, even if the device was ON + ... - Does nothing if ${POWER_CTRL} is set to "none" + + Fail Not Implemented in ${CONFIG}.robot diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index d42a047322..0ea99b1ba7 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -276,10 +276,9 @@ ${ETH_PORTS}= ${EMPTY} *** Keywords *** Power On Default - [Documentation] Keyword clears terminal buffer and sets Device Under Test - ... into Power On state using RTE OC buffers. Implementation - ... must be compatible with the theory of operation of a - ... specific platform. + [Documentation] The default implementation of the Power On keyword. + ... Keyword clears terminal buffer and sets Device Under Test + ... into Power On state using RTE OC buffers. Restore Initial DUT Connection Method IF '${DUT_CONNECTION_METHOD}' == 'SSH' RETURN Sleep 2s From 62e7bfa7c6b3bb772b807dcdc59c1c9276d7791e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 9 Jan 2025 12:16:01 +0100 Subject: [PATCH 093/416] docs/contributing.md: Add link to robot docs formatting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś From 96ab207ac801da0f17375e087cce243f79a958c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 20 Jan 2025 08:26:17 +0100 Subject: [PATCH 094/416] platform-configs: Update Power On impls docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- platform-configs/include/msi-z690-common.robot | 1 + platform-configs/include/novacustom-common.robot | 4 +--- platform-configs/include/optiplex-common.robot | 1 + platform-configs/include/protectli-common.robot | 1 + platform-configs/minnowboard-turbot.robot | 1 + platform-configs/qemu-selftests.robot | 4 ---- platform-configs/qemu.robot | 4 ---- platform-configs/raptor-cs_talos2.robot | 5 +---- 8 files changed, 6 insertions(+), 15 deletions(-) diff --git a/platform-configs/include/msi-z690-common.robot b/platform-configs/include/msi-z690-common.robot index 8bb3083bf7..3bf1d09e5f 100644 --- a/platform-configs/include/msi-z690-common.robot +++ b/platform-configs/include/msi-z690-common.robot @@ -120,4 +120,5 @@ ${BOOT_FROM_USB_ITERATIONS_NUMBER}= 5 *** Keywords *** Power On + [Documentation] Implementation of keywords.Power On Power On Default diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index 245b3bb50a..960a7ba0e9 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -136,9 +136,7 @@ ${L2_CACHE_SUPPORT}= ${TRUE} *** Keywords *** Power On - [Documentation] Keyword clears SSH buffer and sets Device Under Test - ... into Power On state from Mechanical Off. (coldboot) For example: - ... sonoff, RTE relays. + [Documentation] Implementation of keywords.Power On IF "${POWER_CTRL}"=="none" RETURN Restore Initial DUT Connection Method Power Cycle On diff --git a/platform-configs/include/optiplex-common.robot b/platform-configs/include/optiplex-common.robot index 6b63041786..509459c367 100644 --- a/platform-configs/include/optiplex-common.robot +++ b/platform-configs/include/optiplex-common.robot @@ -98,4 +98,5 @@ ${HIBERNATION_AND_RESUME_SUPPORT}= ${TRUE} *** Keywords *** Power On + [Documentation] Implementation of keywords.Power On Power On Default diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index f26129b7da..0571c345a9 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -133,6 +133,7 @@ ${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 *** Keywords *** Power On + [Documentation] Implementation of keywords.Power On Power On Default Check Coreboot Components Measurement diff --git a/platform-configs/minnowboard-turbot.robot b/platform-configs/minnowboard-turbot.robot index 7f1452743c..c2ac97748f 100644 --- a/platform-configs/minnowboard-turbot.robot +++ b/platform-configs/minnowboard-turbot.robot @@ -37,4 +37,5 @@ ${CUSTOM_BOOT_MENU_KEY_SUPPORT}= ${TRUE} *** Keywords *** Power On + [Documentation] Implementation of keywords.Power On Power On Default diff --git a/platform-configs/qemu-selftests.robot b/platform-configs/qemu-selftests.robot index d6f62d5947..cd9d9c833e 100644 --- a/platform-configs/qemu-selftests.robot +++ b/platform-configs/qemu-selftests.robot @@ -45,9 +45,5 @@ ${DASHARO_MEMORY_MENU_SUPPORT}= ${TRUE} *** Keywords *** Power On - [Documentation] Keyword clears telnet buffer and sets Device Under Test - ... into Power On state using RTE OC buffers. Implementation - ... must be compatible with the theory of operation of a - ... specific platform. Read From Terminal Qemu Monitor.System Reset diff --git a/platform-configs/qemu.robot b/platform-configs/qemu.robot index 90265e2628..205bf2e298 100644 --- a/platform-configs/qemu.robot +++ b/platform-configs/qemu.robot @@ -87,9 +87,5 @@ ${CAPSULE_UPDATE_SUPPORT}= ${TRUE} *** Keywords *** Power On - [Documentation] Keyword clears telnet buffer and sets Device Under Test - ... into Power On state using RTE OC buffers. Implementation - ... must be compatible with the theory of operation of a - ... specific platform. Read From Terminal Qemu Monitor.System Reset diff --git a/platform-configs/raptor-cs_talos2.robot b/platform-configs/raptor-cs_talos2.robot index cdb3e9c3e7..fc7e87c708 100644 --- a/platform-configs/raptor-cs_talos2.robot +++ b/platform-configs/raptor-cs_talos2.robot @@ -266,10 +266,7 @@ Set Chassis Power State Close OBMC Service Connection Power On - [Documentation] Keyword sets Device Under Test into Power On state using - ... openbmc-test-automation library and opens console client. - ... Implementation must be compatible with the theory of - ... operation of a specific platform. + [Documentation] Implementation of keywords.Power On Variable Should Exist ${OPENBMC_HOST} Set Global Variable ${AUTH_URI} https://${OPENBMC_HOST}${AUTH_SUFFIX} ${host_state}= Get Host State From 95bd9c8d9f5a025b56a63a4c225193e044b18066 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 20 Jan 2025 09:26:54 +0100 Subject: [PATCH 095/416] lib/options: Document keywords MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- keywords.robot | 4 +- lib/options/dcu.robot | 6 +- lib/options/options.robot | 192 ++++++++++++++++++++++++++ lib/options/uefi-setup-menu.robot | 2 + platform-configs/odroid-h4-plus.robot | 1 + 5 files changed, 202 insertions(+), 3 deletions(-) create mode 100644 lib/options/options.robot diff --git a/keywords.robot b/keywords.robot index 661f6ec424..fa23e52800 100644 --- a/keywords.robot +++ b/keywords.robot @@ -17,6 +17,7 @@ Resource lib/CPU-performance-lib.robot Resource lib/framework.robot Resource lib/me.robot Resource lib/network.robot +Resource lib/options/uefi-options.robot Variables platform-configs/fan-curve-config.yaml @@ -500,7 +501,7 @@ Prepare Test Suite END IF '${CONFIG}' == 'rpi-3b' Verify Number Of Connected SD Wire Devices - Set Library Search Order ${CONFIG} + Set Library Search Order ${CONFIG} ${OPTIONS_LIB} Import Osfv Libraries [Documentation] Import osfv_cli libraries based on config and command @@ -1548,6 +1549,7 @@ Power On [Documentation] Clears telnet buffer and sets Device Under Test ... into Power On state. Has to be implemented in platform configs ... using the theory of operation of a specific platform. + ... Needs to be implemented in platform-configs. ... ... === Requirements === ... None diff --git a/lib/options/dcu.robot b/lib/options/dcu.robot index edeb5c3c78..0558f68890 100644 --- a/lib/options/dcu.robot +++ b/lib/options/dcu.robot @@ -16,14 +16,16 @@ Resource ../dcu.robot *** Keywords *** Set UEFI Option - [Documentation] Set an UEFI option to a value. + [Documentation] Set an UEFI option to a value. The device has to be ON + ... and logged in to Ubuntu [Arguments] ${option_name} ${value} DCU Variable Set UEFI Option In DUT ${option_name} ${value} Execute Reboot Command Sleep 20s Get UEFI Option - [Documentation] Read an UEFI option value. + [Documentation] Read an UEFI option value. The device has to be ON + ... and logged in to Ubuntu [Arguments] ${option_name} ${out}= DCU Variable Get UEFI Option From DUT ${option_name} RETURN ${out} diff --git a/lib/options/options.robot b/lib/options/options.robot new file mode 100644 index 0000000000..c6f822a0d0 --- /dev/null +++ b/lib/options/options.robot @@ -0,0 +1,192 @@ +*** Settings *** +Documentation Library for UEFI configuration using Dasharo Configuration +... Utility tool. Commonly used when serial port is not +... available. + +Library Collections +Library OperatingSystem +Library Process +Library String +Library SSHLibrary +Resource ../terminal.robot +Resource ../../keywords.robot +Resource ../cbmem.robot +Resource ../dcu.robot + + +*** Keywords *** +Set UEFI Option + [Documentation] + ... Sets an UEFI option. + ... Implementations in ``/lib/options/`` + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${option_name}``: ``string`` - The name of the UEFI option. Can + ... be one of the names defined in lib/bios/menus.py "getoptionpath" + ... dictionary + ... - ``${value}``: ``string or boolean`` - The value to set. + ... - For boolean options: either ``${TRUE}`` or ``${FALSE}`` + ... - For numeric options: a numeric string, like ``1234`` + ... - For lists: the exact value of the list item, like ``Set UEFI Option ActiveECores All active`` + ... + ... === Return Value === + ... - ``boolean`` - The result. ``${TRUE}`` if options was changed, ``${FALSE}`` + ... if it was not. ``${FALSE}`` can mean that the option was already in the + ... requested state. + ... + ... === Side Effects === + ... - The device gets rebooted + ... - The UEFI option ``${option_name}`` is set to ``${value}`` + [Arguments] ${option_name} ${value} + + Fail Not implemented + +Get UEFI Option + [Documentation] + ... Gets the value of an UEFI option. + ... Implementations in /lib/options/ + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${option_name}``: ``string`` - The name of the UEFI option. Can + ... be one of the names defined in ``lib/bios/menus.py`` ``getoptionpath`` + ... dictionary + ... + ... === Return Value === + ... - ``string or boolean`` - The value of the option. + ... - Boolean ``${TRUE}``/``${FALSE}`` for boolean options + ... - String for numeric and list options + ... + ... === Side Effects === + ... - The device might get rebooted, depending on implementation + [Arguments] ${option_name} + Fail Not implemented + +Reset UEFI Options To Defaults + [Documentation] + ... Resets all the UEFI options to their default values + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - All the UEFI options are reset to the defaults. Make sure the + ... default value of ``SerialRedirection`` is set to Enabled if using + ... Telnet/Serial + ... - The device gets rebooted + Fail Not implemented + +Get UEFI Boot Manager Entries + [Documentation] + ... Reads the Boot Manager entries + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... - ``string`` - The boot menu entries, separated with newlines + ... + ... === Side Effects === + ... - The device might get rebooted, depending on implementation + Fail Not implemented + +Measure Coldboot Time + [Documentation] + ... Performs a measurement of average coldboot + ... boot time + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${iterations}``: ``integer`` - the amount of coldboots + ... to be tested + ... + ... === Return Value === + ... - ``float`` - MIN coldboot time + ... - ``float`` - MAX coldboot time + ... - ``float`` - Average coldboot time + ... - ``float`` - Standard deviation of the coldboot time + ... + ... === Side Effects === + ... - The device will be rebooted ${iterations} times + [Arguments] ${iterations} + Skip Coldboot not supported without serial connection + +Measure Warmboot Time + [Documentation] + ... Performs a measurement of average warmboot + ... boot time + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${iterations}``: ``integer`` - the amount of warmboots + ... to be tested + ... + ... === Return Value === + ... - ``float`` - MIN warmboot time + ... - ``float`` - MAX warmboot time + ... - ``float`` - Average warmboot time + ... - ``float`` - Standard deviation of the warmboot time + ... + ... === Side Effects === + ... - The device will be rebooted ${iterations} times + [Arguments] ${iterations} + Fail Not implemented + +Measure Reboot Time + [Documentation] + ... Performs a measurement of average reboot + ... boot time + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${iterations}``: ``integer`` - the amount of reboots + ... to be tested + ... + ... === Return Value === + ... - ``float`` - MIN reboot time + ... - ``float`` - MAX reboot time + ... - ``float`` - Average reboot time + ... - ``float`` - Standard deviation of the reboot time + ... + ... === Side Effects === + ... - The device will be rebooted ${iterations} times + [Arguments] ${iterations} + Fail Not implemented + +Make Sure That Flash Locks Are Disabled + [Documentation] Makes sure that all flash locks are disabled in the UEFI + ... settings. + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - The device will get rebooted + ... - Causes a FAIL if disabling locks is not possible + Fail Not implemented diff --git a/lib/options/uefi-setup-menu.robot b/lib/options/uefi-setup-menu.robot index 0d90a6929a..2a41af58ad 100644 --- a/lib/options/uefi-setup-menu.robot +++ b/lib/options/uefi-setup-menu.robot @@ -14,6 +14,7 @@ Set UEFI Option [Documentation] Set an UEFI option to a value. ... TODO: Only works with options following the submenu/submenu/option ... pattern (e.g. all Dasharo System Features options). + ... Uses the ``Power On`` keyword. [Arguments] ${option_name} ${value} Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} Can not configure UEFI settings on this platform. @@ -41,6 +42,7 @@ Get UEFI Option [Documentation] Set an UEFI option to a value. ... TODO: Only works with options following the submenu/submenu/option ... pattern (e.g. all Dasharo System Features options). + ... Uses the ``Power On`` keyword [Arguments] ${option_name} Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} Can not configure UEFI settings on this platform. diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index 6eb3a5bab5..cd7ec59702 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -111,4 +111,5 @@ ${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 *** Keywords *** Power On + [Documentation] Implementation of keywords.Power On Power On Default From 03789bc3d500de1c048c310ee0803fc3e2714b87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 20 Jan 2025 11:28:10 +0100 Subject: [PATCH 096/416] robocop.toml: Increase max kwd length to allow comprehensive docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- robocop.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/robocop.toml b/robocop.toml index 8f4af4c2a5..eba4216e93 100644 --- a/robocop.toml +++ b/robocop.toml @@ -21,7 +21,8 @@ configure = [ # TODO: fix and re-enable "0328:enabled:False", # TODO: consider reducing to default 40, or less - "0501:max_len:50", + # Has to be high to allow comprehensive documentation of library keywords + "0501:max_len:80", # TODO: consider reducing to default 10, or less "0503:max_calls:50", # TODO: consider reducing to dfeault 20, or less From f4fc0deec1c68ba1d4e7153c6c80675d4609ea59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 20 Jan 2025 11:28:36 +0100 Subject: [PATCH 097/416] lib/bios/menus.robot: Document kwds up to the experimental kwds marker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/bios/menus.robot | 444 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 414 insertions(+), 30 deletions(-) diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index 130278a9b7..e268239281 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -8,8 +8,24 @@ Library ./menus.py *** Keywords *** Enter Boot Menu Tianocore - [Documentation] Enter Boot Menu with tianocore boot menu key mapped in + [Documentation] + ... Enter Boot Menu with tianocore boot menu key mapped in ... keys list. + ... + ... === Requirements === + ... - Serial port connection has to be supported by the platform + ... - Has to be called in quick succession after ``Power On`` in order to + ... \ react before the auto boot time-out passes + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - UEFI Boot menu is entered + Read From Terminal Until ${TIANOCORE_STRING} IF '${DUT_CONNECTION_METHOD}' == 'pikvm' Single Key PiKVM ${BOOT_MENU_KEY} @@ -23,7 +39,22 @@ Enter Boot Menu Tianocore END Get Boot Menu Construction - [Documentation] Keyword allows to get and return boot menu construction. + [Documentation] + ... Reads and returns the construction of the boot menu + ... + ... === Requirements === + ... - Boot menu has to be entered using ``Enter Boot Menu Tianocore`` + ... - The serial must not have been read after entering the boot menu + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... - ``string`` - The boot menu construction - entries, line by line + ... + ... === Side Effects === + ... - The boot menu is read from the serial buffer + ${menu}= Read From Terminal Until exit # Lines to strip: # TOP: @@ -67,13 +98,46 @@ Get Boot Menu Construction RETURN ${construction} Enter Boot Menu Tianocore And Return Construction - [Documentation] Enters boot menu, returning menu construction + [Documentation] + ... Enters and returns the construction of the boot menu + ... + ... === Requirements === + ... - Serial port connection has to be supported by the platform + ... - Has to be called in quick succession after ``Power On`` in order to + ... \ react before the auto boot time-out passes + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... - ``string`` - The boot menu construction - entries, line by line + ... + ... === Side Effects === + ... - UEFI Boot menu is entered + ... - The boot menu is read from the serial buffer + Enter Boot Menu Tianocore ${menu}= Get Boot Menu Construction RETURN ${menu} Enter Setup Menu Tianocore - [Documentation] Enter Setup Menu with key specified in platform-configs. + [Documentation] + ... Enter Setup Menu with key specified in platform-configs. + ... + ... === Requirements === + ... - Serial port connection has to be supported by the platform + ... - Has to be called in quick succession after ``Power On`` in order to + ... \ react before the auto boot time-out passes + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - UEFI Setup menu is entered + Read From Terminal Until ${TIANOCORE_STRING} IF '${DUT_CONNECTION_METHOD}' == 'pikvm' Single Key PiKVM ${SETUP_MENU_KEY} @@ -82,8 +146,23 @@ Enter Setup Menu Tianocore END Get Setup Menu Construction - [Documentation] Keyword allows to get and return setup menu construction. + [Documentation] + ... Reads and returns the construction of the setup menu + ... + ... === Requirements === + ... - Setup menu has to be entered using ``Enter Setup Menu Tianocore`` + ... - The serial must not have been read after entering the setup menu + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... - ``string`` - The setup menu construction, line by line + ... + ... === Side Effects === + ... - The setup menu is read from the serial buffer [Arguments] ${checkpoint}=Select Entry + # Lines to strip: # TOP: # Standard PC (Q35 + ICH9 2009) @@ -95,15 +174,54 @@ Get Setup Menu Construction RETURN ${menu} Get Menu Construction - [Documentation] Keyword allows to get and return setup menu construction. + [Documentation] + ... Keyword allows to read and return setup menu construction. + ... + ... === Requirements === + ... - Boot or Setup menu has to be entered + ... - The serial must not have been read after entering the setup menu + ... + ... === Arguments === + ... - ``${checkpoint}``: ``string`` - text marking the end of the menu. + ... \ Text will be read from serial until ``${checkpoint}`` is read. + ... - ``${lines_top}``: ``integer`` - number of lines to be dropped from + ... \ the top of the menu + ... - ``${lines_bot}``: ``integer`` - number of lines to be dropped from + ... \ the bottom of the menu + ... + ... === Return Value === + ... - ``string`` - The setup menu construction, line by line + ... + ... === Side Effects === + ... - The setup menu is read from the serial buffer [Arguments] ${checkpoint}=ESC=exit ${lines_top}=1 ${lines_bot}=0 + Sleep 1s ${out}= Read From Terminal Until ${checkpoint} ${menu}= Parse Menu Snapshot Into Construction ${out} ${lines_top} ${lines_bot} RETURN ${menu} Parse Menu Snapshot Into Construction - [Documentation] Breaks grabbed menu data into lines. + [Documentation] + ... Parses the raw contents of the menu read from serial (Snapshot) + ... into lines with decorators removed (Construction) + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${menu}``: ``string`` - the raw menu contents, read directly from + ... \ the serial + ... - ``${lines_top}``: ``integer`` - number of lines to be dropped from + ... \ the top of the menu + ... - ``${lines_bot}``: ``integer`` - number of lines to be dropped from + ... \ the bottom of the menu + ... + ... === Return Value === + ... - ``string`` - The parsed setup menu contents, line by line + ... + ... === Side Effects === + ... None [Arguments] ${menu} ${lines_top} ${lines_bot} ${slice_start}= Set Variable ${lines_top} IF ${lines_bot} == 0 @@ -148,13 +266,52 @@ Parse Menu Snapshot Into Construction RETURN ${construction} Enter Setup Menu Tianocore And Return Construction - [Documentation] Enters Setup Menu and returns Setup Menu construction + [Documentation] + ... Enters Setup Menu and returns Setup Menu construction + ... + ... === Requirements === + ... - Serial port connection has to be supported by the platform + ... - Has to be called in quick succession after ``Power On`` in order to + ... \ react before the auto boot time-out passes + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... - ``string`` - The setup menu construction, line by line + ... + ... === Side Effects === + ... - UEFI Setup menu is entered + ... - The setup menu is read from the serial buffer Enter Setup Menu Tianocore ${menu}= Get Setup Menu Construction RETURN ${menu} Get Submenu Construction + [Documentation] + ... Reads and returns the construction of a setup menu submenu + ... + ... === Requirements === + ... - A setup submenu was just entered + ... - The serial must not have been read after entering the submenu + ... + ... === Arguments === + ... - ``${checkpoint}``: ``string`` - text marking the end of the menu. + ... Text will be read from serial until ``${checkpoint}`` is read. + ... - ``${lines_top}``: ``integer`` - number of lines to be dropped from + ... \ the top of the menu + ... - ``${lines_bot}``: ``integer`` - number of lines to be dropped from + ... \ the bottom of the menu + ... - ``${opt_only}``: ``boolean`` - if ``${TRUE}``, filters the menu + ... \ for configurable UEFI options + ... + ... === Return Value === + ... - ``string`` - The setup menu construction, line by line + ... + ... === Side Effects === + ... - The setup submenu is read from the serial buffer [Arguments] ${checkpoint}=Esc=Exit ${lines_top}=1 ${lines_bot}=1 ${opt_only}="${FALSE}" + # In most cases, we need to strip two lines: # TOP: # Title line, such as: Dasharo System Features @@ -180,41 +337,124 @@ Get Submenu Construction RETURN ${submenu} Enter Submenu From Snapshot - [Documentation] Enter given Setup Menu Tianocore option after entering - ... Setup Menu Tianocore + [Documentation] + ... Enter given Setup Menu Tianocore option after entering Setup Menu + ... Tianocore + ... + ... === Requirements === + ... - A setup submenu was just entered + ... - The serial must not have been read after entering the submenu + ... + ... === Arguments === + ... - ``${menu}``: ``string`` - the submenu construction or snapshot + ... - ``${option}``: ``string`` - the name of the submenu to enter + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - A setup submenu is entered [Arguments] ${menu} ${option} + ${index}= Get Index Of Matching Option In Menu ${menu} ${option} Should Not Be Equal As Integers ${index} -1 msg=Option ${option} not found in menu Press Key N Times And Enter ${index} ${ARROW_DOWN} Enter Submenu From Snapshot And Return Construction [Documentation] Enter given Setup Menu Tianocore option after entering - ... Setup Menu Tianocore + ... Setup Menu Tianocore and return it's construction + ... + ... === Requirements === + ... A menu/submenu had to be entered and read to pass as the ``${menu}`` + ... parameter + ... + ... === Arguments === + ... - ``${menu}``: ``string`` - the submenu construction or snapshot + ... - ``${option}``: ``string`` - the name of the submenu to enter + ... - ``${opt_only}``: ``boolean`` - if ``${TRUE}``, filters the returned + ... \ menu contents for configurable UEFI options + ... + ... === Return Value === + ... - ``string`` - The setup menu contents, line by line + ... + ... === Side Effects === + ... - A setup submenu is entered + ... - The setup submenu is read from the serial buffer [Arguments] ${menu} ${option} ${opt_only}=${FALSE} + Enter Submenu From Snapshot ${menu} ${option} ${submenu}= Get Submenu Construction opt_only=${opt_only} RETURN ${submenu} Save BIOS Changes - [Documentation] This keyword saves introduced changes + [Documentation] + ... Saves Setup Menu changes + ... + ... === Requirements === + ... Must be in the setup menu + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - The performed changes will be saved and applied. + ... \ Most options require a reboot to take effect. Some of them don't. + Press Key N Times 1 ${F10} Write Bare Into Terminal y Enter Dasharo System Features + [Documentation] + ... Enters the ``Dasharo System Features`` submenu and returns it's + ... contents + ... + ... === Requirements === + ... - The UEFI Setup Menu main menu has to be entered + ... + ... === Arguments === + ... - ``${setup_menu}``: ``string`` - the menu construction or snapshot + ... - ``${option}``: ``string`` - the name of the submenu to enter + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - A setup submenu is entered [Arguments] ${setup_menu} + ${dasharo_menu}= Enter Submenu From Snapshot And Return Construction ... ${setup_menu} ... Dasharo System Features RETURN ${dasharo_menu} Enter Dasharo APU Configuration + [Documentation] + ... Enters the ``Dasharo APU Configuration`` submenu and returns it's + ... contents + ... + ... === Requirements === + ... - The UEFI Setup Menu main menu has to be entered + ... + ... === Arguments === + ... - ``${setup_menu}``: ``string`` - the menu construction or snapshot + ... - ``${option}``: ``string`` - the name of the submenu to enter + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - A setup submenu is entered [Arguments] ${setup_menu} + ${apu_menu}= Enter Submenu From Snapshot And Return Construction ... ${setup_menu} ... Dasharo APU Configuration RETURN ${apu_menu} -Enter Dasharo Submenu +Enter Dasharo Submenu # TODO remove: redundant keyword, only used to change the default parameter [Arguments] ${dasharo_menu} ${option} ${submenu}= Enter Submenu From Snapshot And Return Construction ... ${dasharo_menu} @@ -223,9 +463,24 @@ Enter Dasharo Submenu RETURN ${submenu} Get Index Of Matching Option In Menu - [Documentation] This keyword returns the index of element that matches - ... one in given menu + [Documentation] + ... This keyword returns the index of a line matching ``${option}`` in + ... ``${menu_construction}`` + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${menu_construction}``: ``string`` - the menu construction + ... - ``${option}``: ``string`` - the content to match + ... + ... === Return Value === + ... - ``integer`` - the index of the matched construction line + ... + ... === Side Effects === + ... None [Arguments] ${menu_construction} ${option} ${ignore_not_found_error}=${FALSE} + FOR ${element} IN @{menu_construction} ${matches}= Run Keyword And Return Status ... Should Match ${element} *${option}* @@ -241,14 +496,45 @@ Get Index Of Matching Option In Menu RETURN ${index} Press Key N Times And Enter - [Documentation] Enter specified in the first argument times the specified - ... in the second argument key and then press Enter. + [Documentation] + ... Enter the ``${key}`` ``${n}`` times and then Enter + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${n}``: ``string`` - number of times to enter the ``${key}`` + ... - ``${key}``: ``string`` - the key to enter + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - The keyword itself causes no side effects + ... - Pressing the ``Enter`` key might cause multiple side effects + ... \ depending on the context [Arguments] ${n} ${key} + Press Key N Times ${n} ${key} Press Enter Press Enter - # Before entering new menu, make sure we get rid of all leftovers + [Documentation] + ... Presses the Enter key + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - The keyword itself causes no side effects + ... - Pressing the ``Enter`` key might cause multiple side effects + ... \ depending on the context Sleep 1s Read From Terminal IF '${DUT_CONNECTION_METHOD}' == 'pikvm' @@ -260,7 +546,22 @@ Press Enter Press Key N Times [Documentation] Enter specified in the first argument times the specified ... in the second argument key. + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - The keyword itself causes no side effects + ... - Pressing the ``${key}`` might cause multiple side effects + ... depending on the context and the key pressed [Arguments] ${n} ${key} + FOR ${index} IN RANGE 0 ${n} IF '${DUT_CONNECTION_METHOD}' == 'pikvm' Single Key PiKVM ${key} @@ -279,8 +580,23 @@ Press Key N Times END Get Option State - [Documentation] Gets menu construction and option name as arguments. - ... Returns option state, which can be: True, False, or numeric value. + [Documentation] + ... Returns the option state + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${menu}``: ``string`` - the menu construction + ... - ``${option}``: ``string`` - the option name + ... + ... === Return Value === + ... - ``string or boolean`` - the state of the option. + ... \ ``${TRUE}`` / ``${FALSE}`` if the option is boolean. + ... \ ``string`` otherwise + ... + ... === Side Effects === + ... None [Arguments] ${menu} ${option} ${index}= Get Index Of Matching Option In Menu ${menu} ${option} ${value}= Get Value From Brackets ${menu}[${index}] @@ -297,9 +613,23 @@ Get Option State RETURN ${state} Get Option Type - [Documentation] Accepts option state and returns option type. Option - ... type can be one of: bool, numeric, list. + [Documentation] + ... Determines the type of the option state value + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${state}``: ``string`` - the option state + ... + ... === Return Value === + ... - ``string`` - the type of the option. Can one of: + ... \ ``bool``, ``numeric``, ``list``. + ... + ... === Side Effects === + ... None [Arguments] ${state} + # This type of field can either be boolean ([X] or [ ]), or free entry # field. At first, find out which one is it. IF '${state}' == '${TRUE}' or '${state}' == '${FALSE}' @@ -316,9 +646,26 @@ Get Option Type RETURN ${type} Select State From List - [Documentation] Accepts a list of option and states (current and target). - ... Selects the target state. + [Documentation] Changes a option of list type to a given state + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${list}``: ``string`` - the selectable list options + ... - ``${current_state}``: ``string`` - the currently selected state + ... - ``${target_state}``: ``string`` - the state to wchich the option + ... \ will be changed + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - The option state will be changed from ``${current_state}`` to ``${target_state}`` + ... - Causes a FAIL if the ``${current_state}`` or the ``${target_state}`` + ... \ are incorrect [Arguments] ${list} ${current_state} ${target_state} + # Calculate offset and direction ${current_index}= Get Index Of Matching Option In Menu ${list} ${current_state} Should Not Be Equal As Integers ${current_index} -1 @@ -336,10 +683,27 @@ Select State From List Press Key N Times And Enter ${offset} ${direction} Set Option State - [Documentation] Gets menu construction option name, and desired state - ... as arguments. Return TRUE if the option was changed and FALSE if - ... option was already in target state. + [Documentation] Changes the state of an option + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${menu}``: ``string`` - the submenu construction + ... - ``${option}``: ``string`` - the option name + ... - ``${target_state}``: ``string`` - the state to wchich the option + ... \ will be changed + ... + ... === Return Value === + ... - ``boolean`` - ${TRUE} if the state was changed. ${FALSE} if the + ... \ option was already in the target state + ... + ... === Side Effects === + ... - The option state will be changed to ``${target_state}`` + ... - Causes a FAIL if the ``${option}`` or the ``${target_state}`` + ... \ are incorrect. [Arguments] ${menu} ${option} ${target_state} + ${current_state}= Get Option State ${menu} ${option} IF '${current_state}' != '${target_state}' ${type}= Get Option Type ${current_state} @@ -371,7 +735,7 @@ Set Option State RETURN ${FALSE} END -Try To Insert Non-numeric Values Into Numeric Option +Try To Insert Non-numeric Values Into Numeric Option # TODO should be moved? It's a test case helper, not a library kwd [Documentation] Check whether accepts only numeric values. [Arguments] ${menu} ${option} ${non_numeric_characters}= Set Variable @@ -391,9 +755,29 @@ Try To Insert Non-numeric Values Into Numeric Option Fail Wrong option type (not accept numeric value) END -Get IPXE Boot Menu Construction - [Documentation] Keyword allows to get and return iPXE menu construction. +Get IPXE Boot Menu Construction # TODO possibly redundant, as it only gives a default checkpoint value + [Documentation] + ... Keyword allows to get and return iPXE menu construction. + ... + ... === Requirements === + ... - The IPXE Boot menu was entered + ... - The serial must not have been read after entering the menu + ... + ... === Arguments === + ... - ``${lines_top}``: ``integer`` - number of lines to be dropped from + ... \ the top of the menu + ... - ``${lines_bot}``: ``integer`` - number of lines to be dropped from + ... \ the bottom of the menu + ... - ``${checkpoint}``: ``string`` - text marking the end of the menu. + ... Text will be read from serial until ``${checkpoint}`` is read. + ... + ... === Return Value === + ... - ``string`` - The IPXE menu construction, line by line + ... + ... === Side Effects === + ... - The IPXE menu is read from the serial buffer [Arguments] ${lines_top}=1 ${lines_bot}=0 ${checkpoint}=${EDK2_IPXE_CHECKPOINT} + ${menu}= Read From Terminal Until ${checkpoint} ${construction}= Parse Menu Snapshot Into Construction ${menu} ${lines_top} ${lines_bot} RETURN ${construction} From db3bcfd855ad4cf57f9f3799084bc8b03343c7a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 20 Jan 2025 11:39:20 +0100 Subject: [PATCH 098/416] lib/bios/menus.robot: Document kwds up to `Exit From Current Menu` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/bios/menus.robot | 49 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index e268239281..06e4b5a51c 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -794,6 +794,20 @@ Reset To Defaults Tianocore [Documentation] Resets all Tianocore options to defaults. It is invoked ... by pressing F9 and confirming with 'y' when in option ... setting menu. + ... + ... === Requirements === + ... - The Tianocore setup menu entered + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - The UEFI setup options are restored to defaults + ... - The device gets rebooted + Tianocore Reset System ${main_menu}= Enter Setup Menu Tianocore And Return Construction Read From Terminal @@ -824,7 +838,23 @@ Reset To Defaults Tianocore # network boot just yet. Enter IPXE - [Documentation] Enter iPXE after device power cutoff. + [Documentation] + ... Enter iPXE menu + ... + ... === Requirements === + ... - Serial port connection has to be supported by the platform + ... - Has to be called in quick succession after ``Power On`` in order to + ... \ react before the auto boot time-out passes + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - The iPXE menu is entered + # TODO: problem with iPXE string (e.g. when 3 network interfaces are available) ${boot_menu}= Enter Boot Menu Tianocore And Return Construction Enter Submenu From Snapshot ${boot_menu} ${IPXE_BOOT_ENTRY} @@ -838,7 +868,22 @@ Enter IPXE Read From Terminal Until Prompt Exit From Current Menu - [Documentation] Exits from current menu, refreshing screen. + [Documentation] + ... Exits from current menu, refreshing screen. + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - Flushes the serial buffer + ... - Exits from a submenu + # Before entering new menu, make sure we get rid of all leftovers Read From Terminal Press Key N Times 1 ${ESC} From 3b3f93f76f6658bfcf4098925f75c8e543e15ae3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 20 Jan 2025 12:49:16 +0100 Subject: [PATCH 099/416] lib/bios/menus.robot: Document remainging kwds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/bios/menus.robot | 253 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 233 insertions(+), 20 deletions(-) diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index 06e4b5a51c..431f0bbad9 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -14,7 +14,7 @@ Enter Boot Menu Tianocore ... ... === Requirements === ... - Serial port connection has to be supported by the platform - ... - Has to be called in quick succession after ``Power On`` in order to + ... - Has to be called in quick succession after powering on or rebooting in order to ... \ react before the auto boot time-out passes ... ... === Arguments === @@ -103,7 +103,7 @@ Enter Boot Menu Tianocore And Return Construction ... ... === Requirements === ... - Serial port connection has to be supported by the platform - ... - Has to be called in quick succession after ``Power On`` in order to + ... - Has to be called in quick succession after powering on or rebooting in order to ... \ react before the auto boot time-out passes ... ... === Arguments === @@ -126,7 +126,7 @@ Enter Setup Menu Tianocore ... ... === Requirements === ... - Serial port connection has to be supported by the platform - ... - Has to be called in quick succession after ``Power On`` in order to + ... - Has to be called in quick succession after powering on or rebooting in order to ... \ react before the auto boot time-out passes ... ... === Arguments === @@ -271,7 +271,7 @@ Enter Setup Menu Tianocore And Return Construction ... ... === Requirements === ... - Serial port connection has to be supported by the platform - ... - Has to be called in quick succession after ``Power On`` in order to + ... - Has to be called in quick succession after powering on or rebooting in order to ... \ react before the auto boot time-out passes ... ... === Arguments === @@ -386,7 +386,7 @@ Enter Submenu From Snapshot And Return Construction ${submenu}= Get Submenu Construction opt_only=${opt_only} RETURN ${submenu} -Save BIOS Changes +Save BIOS Changes # TODO duplicate of menus.`Save Changes` [Documentation] ... Saves Setup Menu changes ... @@ -454,8 +454,24 @@ Enter Dasharo APU Configuration ... Dasharo APU Configuration RETURN ${apu_menu} -Enter Dasharo Submenu # TODO remove: redundant keyword, only used to change the default parameter +Enter Dasharo Submenu # TODO redundant keyword, only used to change the default parameter + [Documentation] + ... Enters given Dasharo submenu and returns construction + ... + ... === Requirements === + ... - To be in the Dasharo setup menu + ... + ... === Arguments === + ... - ``${dasharo_menu}``: ``string`` - the menu construction or snapshot + ... - ``${option}``: ``string`` - the name of the submenu to enter + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - A setup submenu is entered [Arguments] ${dasharo_menu} ${option} + ${submenu}= Enter Submenu From Snapshot And Return Construction ... ${dasharo_menu} ... ${option} @@ -535,6 +551,7 @@ Press Enter ... - The keyword itself causes no side effects ... - Pressing the ``Enter`` key might cause multiple side effects ... \ depending on the context + Sleep 1s Read From Terminal IF '${DUT_CONNECTION_METHOD}' == 'pikvm' @@ -598,6 +615,7 @@ Get Option State ... === Side Effects === ... None [Arguments] ${menu} ${option} + ${index}= Get Index Of Matching Option In Menu ${menu} ${option} ${value}= Get Value From Brackets ${menu}[${index}] ${len}= Get Length ${value} @@ -796,7 +814,7 @@ Reset To Defaults Tianocore ... setting menu. ... ... === Requirements === - ... - The Tianocore setup menu entered + ... - Must be called from a Tianocore setup submenu ... ... === Arguments === ... None @@ -843,7 +861,7 @@ Enter IPXE ... ... === Requirements === ... - Serial port connection has to be supported by the platform - ... - Has to be called in quick succession after ``Power On`` in order to + ... - Has to be called in quick succession after powering on or rebooting in order to ... \ react before the auto boot time-out passes ... ... === Arguments === @@ -872,7 +890,7 @@ Exit From Current Menu ... Exits from current menu, refreshing screen. ... ... === Requirements === - ... None + ... - Must be called from a setup submenu ... ... === Arguments === ... None @@ -889,9 +907,24 @@ Exit From Current Menu Press Key N Times 1 ${ESC} Reenter Menu - [Documentation] Returns to the previous menu and enters the same one - ... again + [Documentation] + ... Moves back and forth in the submenus structure + ... + ... === Requirements === + ... - Must be called from a setup submenu + ... + ... === Arguments === + ... - ``${forward}``: ``boolean`` - If ``${FALSE}`` - exits to parent and reeenters. + ... \ If ``${TRUE}`` - Enters the selected submenu and goes back. + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - The current submenu reappears on the serial buffer + ... - The entered submenu is flushed from the serial buffer [Arguments] ${forward}=${FALSE} + IF ${forward} == True Press Enter Exit From Current Menu @@ -901,8 +934,23 @@ Reenter Menu END Reenter Menu And Return Construction - [Documentation] Enters the same menu again, returning updated menu construction + [Documentation] + ... Enters the same menu again, returning updated menu construction + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${forward}``: ``boolean`` - If ``${FALSE}`` - exits to parent and reeenters. + ... \ If ``${TRUE}`` - Enters the selected submenu and goes back. + ... + ... === Return Value === + ... - ``string`` - the current menu construction + ... + ... === Side Effects === + ... None [Arguments] ${forward}=${FALSE} + Reenter Menu ${forward} ${menu}= Get Submenu Construction RETURN ${menu} @@ -911,19 +959,48 @@ Reenter Menu And Return Construction Type In The Password [Documentation] Operation for typing in the password + ... The ``${keys_password}`` is written and confirmed with Enter + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... - ``${keys_password}``: ``string`` - the password + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... None [Arguments] ${keys_password} + + # TODO loop and defining the password as a list can be removed by + # passing ${interval} to `Write Bare Into Terminal` FOR ${key} IN @{keys_password} Write Bare Into Terminal ${key} Sleep 0.5s END - Press Key N Times 1 ${ENTER} + Press Enter # This should stay, maybe improved if needed Type In New Disk Password [Documentation] Types in new disk password when prompted. The actual ... password is passed as list of keys. + ... + ... === Requirements === + ... - New disk password prompt to be currently shown + ... + ... === Arguments === + ... - ``${keys_password}``: ``string`` - the password + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... None [Arguments] ${keys_password} + Read From Terminal Until your new password Sleep 0.5s # FIXME: Often the TCG OPAL test fails to enter Setup Menu after typing @@ -938,8 +1015,22 @@ Type In New Disk Password # This should stay, maybe improved if needed Type In BIOS Password - [Documentation] Types in password in general BIOS prompt + [Documentation] + ... Types in password in general BIOS prompt + ... + ... === Requirements === + ... - BIOS password prompt to be currently shown + ... + ... === Arguments === + ... - ``${keys_password}``: ``string`` - the password + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... None [Arguments] ${keys_password} + Read From Terminal Until password Sleep 0.5s Type In The Password ${keys_password} @@ -947,8 +1038,22 @@ Type In BIOS Password # This should stay, maybe improved if needed Type In Disk Password - [Documentation] Types in the disk password + [Documentation] + ... Types in the disk password + ... + ... === Requirements === + ... - Disk password prompt to be currently shown + ... + ... === Arguments === + ... - ``${keys_password}``: ``string`` - the password + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... None [Arguments] ${keys_password} + Read From Terminal Until Unlock Sleep 0.5s # FIXME: See a comment in: Type in new disk password @@ -959,8 +1064,24 @@ Type In Disk Password # This should stay, maybe improved if needed Remove Disk Password - [Documentation] Removes disk password + [Documentation] + ... Removes disk password + ... + ... === Requirements === + ... - Serial port connection has to be supported by the platform + ... - Has to be called in quick succession after powering on or rebooting in order to + ... \ react before the auto boot time-out passes + ... + ... === Arguments === + ... - ``${keys_password}``: ``string`` - the password + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... None [Arguments] ${keys_password} + ${setup_menu}= Enter Setup Menu Tianocore And Return Construction ${device_mgr_menu}= Enter Submenu From Snapshot And Return Construction ... ${setup_menu} @@ -982,6 +1103,21 @@ Remove Disk Password Press Key N Times 1 ${SETUP_MENU_KEY} Tianocore Reset System + [Documentation] + ... Performs a reboot from inside the Tianocore setup menu + ... + ... === Requirements === + ... - To be inside the setup menu + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - Platform is rebooted + # EDK2 interprets Alt + Ctrl + Del on USB keyboards as reset combination. # On serial console it is ESC R ESC r ESC R. IF '${DUT_CONNECTION_METHOD}' == 'SSH' @@ -998,7 +1134,22 @@ Tianocore Reset System END Save Changes - [Documentation] Saves current UEFI settings + [Documentation] + ... Saves Setup Menu changes + ... + ... === Requirements === + ... Must be in the setup menu + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - The performed changes will be saved and applied. + ... \ Most options require a reboot to take effect. Some of them don't. + Press Key N Times 1 ${F10} Read From Terminal Until Save configuration changes? Sleep 1s @@ -1006,14 +1157,45 @@ Save Changes Sleep 2s Save Changes And Reset - [Documentation] Saves current UEFI settings and restarts. + [Documentation] + ... Saves Setup Menu changes and rebootsthe platform + ... + ... === Requirements === + ... Must be in the setup menu + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - The performed changes will be saved and applied. + ... - The platform will be rebooted to ensure all changes are applied. + Save Changes Tianocore Reset System Boot System Or From Connected Disk # robocop: disable=too-long-keyword [Documentation] Tries to boot ${system_name}. If it is not possible then it tries ... to boot from connected disk set up in config + ... + ... === Requirements === + ... - Has to be called in quick succession after powering on or rebooting in order to + ... \ react before the auto boot time-out passes + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - Boots into the selected OS + ... - Does nothing if ${DUT_CONNECTION_METHOD}' == 'SSH' - selecting OS's + ... \ not supported via ssh. [Arguments] ${system_name} ${boot_menu}=NOT_SET + IF '${DUT_CONNECTION_METHOD}' == 'SSH' RETURN IF '''${SEABIOS_BOOT_DEVICE}''' != '' @@ -1072,15 +1254,46 @@ Boot System Or From Connected Disk # robocop: disable=too-long-keyword Press Key N Times And Enter ${system_index} ${ARROW_DOWN} Make Sure That Network Boot Is Enabled - [Documentation] This keywords checks that "Enable network boot" in + [Documentation] Checks that "Enable network boot" in ... "Networking Options" is enabled when present, so the network ... boot tests can be executed. + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... None + ... + ... === Side Effects === + ... - The ``NetworkBoot`` option will be set to ``Enabled`` + ... - The platform will be rebooted + ... - Performs a ``SKIP`` if ``NetworkBoot`` is not supported + IF not ${DASHARO_NETWORKING_MENU_SUPPORT} RETURN Set UEFI Option NetworkBoot ${TRUE} Get Firmware Version From Tianocore Setup Menu - [Documentation] Keyword allows to read firmware version from Tianocore + [Documentation] Reads the firmware version from Tianocore ... Setup menu header. + ... + ... === Requirements === + ... - Serial port connection has to be supported by the platform + ... - Has to be called in quick succession after powering on or rebooting in order to + ... \ react before the auto boot time-out passes + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... - ``string`` - The version of the firmware, as displayed in the Setup menu + ... + ... === Side Effects === + ... - The ``NetworkBoot`` option will be set to ``Enabled`` + ... - The platform will be rebooted + Enter Setup Menu Tianocore ${output}= Read From Terminal Until Select Entry ${firmware_line}= Get Lines Containing String ${output} Dasharo (coreboot+UEFI) From 63c1bf53e5505d7c0b52747af792fb6b577ef02b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 20 Jan 2025 12:49:59 +0100 Subject: [PATCH 100/416] lib/bios/menus.robot: Remove duplicate&unused `Save Bios Changes` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/bios/menus.robot | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index 431f0bbad9..ce855a8810 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -386,26 +386,6 @@ Enter Submenu From Snapshot And Return Construction ${submenu}= Get Submenu Construction opt_only=${opt_only} RETURN ${submenu} -Save BIOS Changes # TODO duplicate of menus.`Save Changes` - [Documentation] - ... Saves Setup Menu changes - ... - ... === Requirements === - ... Must be in the setup menu - ... - ... === Arguments === - ... None - ... - ... === Return Value === - ... None - ... - ... === Side Effects === - ... - The performed changes will be saved and applied. - ... \ Most options require a reboot to take effect. Some of them don't. - - Press Key N Times 1 ${F10} - Write Bare Into Terminal y - Enter Dasharo System Features [Documentation] ... Enters the ``Dasharo System Features`` submenu and returns it's From 5d708c2aeb191eaeb9d865a3d0c1539d1e14bbba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 20 Jan 2025 12:53:27 +0100 Subject: [PATCH 101/416] lib/bios/menus.robot: Move one-suite specific kwd to the suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../auto-boot-time-out.robot | 24 +++++++++++++++++++ lib/bios/menus.robot | 20 ---------------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/dasharo-compatibility/auto-boot-time-out.robot b/dasharo-compatibility/auto-boot-time-out.robot index f2f45aca6a..b531e6e560 100644 --- a/dasharo-compatibility/auto-boot-time-out.robot +++ b/dasharo-compatibility/auto-boot-time-out.robot @@ -88,3 +88,27 @@ BMM003.001 Check Auto Boot Time-out option not accept non-numeric values ... ${setup_menu} ... Boot Maintenance Manager Try To Insert Non-numeric Values Into Numeric Option ${boot_mgr_menu} Auto Boot Time-out + + +*** Keywords *** +Try To Insert Non-numeric Values Into Numeric Option + [Documentation] Check whether accepts only numeric values. + [Tags] robot:private + [Arguments] ${menu} ${option} + + ${non_numeric_characters}= Set Variable + ... abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()`~<>,./?;:'\|""[]{}=+-_ + ${current_state}= Get Option State ${menu} ${option} + ${type}= Get Option Type ${current_state} + Enter Submenu From Snapshot ${menu} ${option} + IF '${type}' == 'numeric' + @{characters}= Split String To Characters ${non_numeric_characters} + FOR ${char} IN @{characters} + Log ${char} + Write Bare Into Terminal ${char} + Set DUT Response Timeout 3 + Read From Terminal Until !! + END + ELSE + Fail Wrong option type (not accept numeric value) + END diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index ce855a8810..f52d43336c 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -733,26 +733,6 @@ Set Option State RETURN ${FALSE} END -Try To Insert Non-numeric Values Into Numeric Option # TODO should be moved? It's a test case helper, not a library kwd - [Documentation] Check whether accepts only numeric values. - [Arguments] ${menu} ${option} - ${non_numeric_characters}= Set Variable - ... abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()`~<>,./?;:'\|""[]{}=+-_ - ${current_state}= Get Option State ${menu} ${option} - ${type}= Get Option Type ${current_state} - Enter Submenu From Snapshot ${menu} ${option} - IF '${type}' == 'numeric' - @{characters}= Split String To Characters ${non_numeric_characters} - FOR ${char} IN @{characters} - Log ${char} - Write Bare Into Terminal ${char} - Set DUT Response Timeout 3 - Read From Terminal Until !! - END - ELSE - Fail Wrong option type (not accept numeric value) - END - Get IPXE Boot Menu Construction # TODO possibly redundant, as it only gives a default checkpoint value [Documentation] ... Keyword allows to get and return iPXE menu construction. From 53ee184661cab9a721bca190d4e38c9096fe1185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 21 Jan 2025 07:27:54 +0100 Subject: [PATCH 102/416] lib/: Add missing resources and libraries imports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- keywords.robot | 3 ++- lib/bios/menus.robot | 6 +++++- lib/dts-lib.robot | 6 ++++-- lib/power-after-fail-lib.robot | 2 ++ lib/sd-wire.robot | 3 +++ lib/terminal.robot | 4 ++++ 6 files changed, 20 insertions(+), 4 deletions(-) diff --git a/keywords.robot b/keywords.robot index fa23e52800..ecd415a5c5 100644 --- a/keywords.robot +++ b/keywords.robot @@ -17,7 +17,8 @@ Resource lib/CPU-performance-lib.robot Resource lib/framework.robot Resource lib/me.robot Resource lib/network.robot -Resource lib/options/uefi-options.robot +Resource lib/options/options.robot +Resource keys.robot Variables platform-configs/fan-curve-config.yaml diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index f52d43336c..d0cf1d7055 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -4,6 +4,10 @@ Documentation Collection of keywords related to EDK2 menus Library Collections Library String Library ./menus.py +Resource ../terminal.robot +Resource ../../keys.robot +Resource ../../pikvm-rest-api/pikvm_comm.robot +Resource ../../keywords.robot *** Keywords *** @@ -1235,7 +1239,7 @@ Make Sure That Network Boot Is Enabled IF not ${DASHARO_NETWORKING_MENU_SUPPORT} RETURN Set UEFI Option NetworkBoot ${TRUE} -Get Firmware Version From Tianocore Setup Menu +Get Firmware Version From Tianocore Setup Menu # TODO unused [Documentation] Reads the firmware version from Tianocore ... Setup menu header. ... diff --git a/lib/dts-lib.robot b/lib/dts-lib.robot index 79bb3a15f1..64204981e2 100644 --- a/lib/dts-lib.robot +++ b/lib/dts-lib.robot @@ -1,5 +1,7 @@ *** Settings *** Resource terminal.robot +Resource bios/menus.robot +Resource ../keywords.robot *** Keywords *** @@ -23,7 +25,7 @@ Boot Dasharo Tools Suite Via IPXE Shell Set DUT Response Timeout 60s # 4) Try to boot via the link: - Write Bare Into Terminal chain ${dts_chain_link}\n 0.1 + Write Bare Into Terminal chain ${dts_chain_link}\n Read From Terminal Until ${dts_chain_link}... Read From Terminal Until ok Set DUT Response Timeout 5m @@ -113,7 +115,7 @@ Run EC Transition [Documentation] Keyword allows to run EC Transition procedure in the ... Dasharo Tools Suite. Write Into Terminal 6 - Read From Trminal Until Enter an option: + Read From Terminal Until Enter an option: Write Into Terminal 1 ${output}= Read From Terminal Until shut down Should Contain X Times ${output} VERIFIED 2 diff --git a/lib/power-after-fail-lib.robot b/lib/power-after-fail-lib.robot index ea7074b2af..2eb2a56d9d 100644 --- a/lib/power-after-fail-lib.robot +++ b/lib/power-after-fail-lib.robot @@ -2,6 +2,8 @@ Documentation Collection of keywords related to the Power State After ... Power Fail option +Library terminal + *** Keywords *** Simulate Power Failure diff --git a/lib/sd-wire.robot b/lib/sd-wire.robot index 517206fab6..3bffc4f9cd 100644 --- a/lib/sd-wire.robot +++ b/lib/sd-wire.robot @@ -1,4 +1,7 @@ *** Settings *** +Library Collections +Library String +Library SSHLibrary Library ../keywords.robot diff --git a/lib/terminal.robot b/lib/terminal.robot index 0f91a2901c..df217bd8cc 100644 --- a/lib/terminal.robot +++ b/lib/terminal.robot @@ -3,6 +3,10 @@ Documentation Generic keywords for reading/writing into terminal. Library Collections Library String +Library Telnet +Library SSHLibrary +Resource ../pikvm-rest-api/pikvm_comm.robot +Resource bios/menus.robot *** Keywords *** From 09e7558aa226b7cb31fdcb56e1e120e43c023619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 21 Jan 2025 09:53:48 +0100 Subject: [PATCH 103/416] lib/options: Docs: note that the implementations behave differently MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/options/dcu.robot | 25 ++++++++++++++++--------- lib/options/options.robot | 8 +++++++- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/lib/options/dcu.robot b/lib/options/dcu.robot index 0558f68890..23fc5ef457 100644 --- a/lib/options/dcu.robot +++ b/lib/options/dcu.robot @@ -16,16 +16,16 @@ Resource ../dcu.robot *** Keywords *** Set UEFI Option - [Documentation] Set an UEFI option to a value. The device has to be ON - ... and logged in to Ubuntu + [Documentation] Set an UEFI option to a value. + ... The device has to be ON and logged in to Ubuntu [Arguments] ${option_name} ${value} DCU Variable Set UEFI Option In DUT ${option_name} ${value} Execute Reboot Command Sleep 20s Get UEFI Option - [Documentation] Read an UEFI option value. The device has to be ON - ... and logged in to Ubuntu + [Documentation] Read an UEFI option value. + ... The device has to be ON and logged in to Ubuntu [Arguments] ${option_name} ${out}= DCU Variable Get UEFI Option From DUT ${option_name} RETURN ${out} @@ -36,6 +36,9 @@ Reset UEFI Options To Defaults Get UEFI Boot Manager Entries [Documentation] Read list of UEFI boot manager + ... The device does not need to be logged in to Ubuntu if $DUT_CONNETION_METHOD == SSH. + ... If $DUT_CONNETION_METHOD == Telnet, then the device must be logged + ... off, and the login prompt must be available in the Telnet buffer. Login To Linux Switch To Root User @@ -45,13 +48,15 @@ Get UEFI Boot Manager Entries Measure Coldboot Time [Documentation] Performs a measurement of average coldboot - ... boot time + ... boot. Not supported in this variant of options lib. Skip Coldboot not supported without serial connection Measure Warmboot Time - [Documentation] Performs a measurement of warmboot - ... boot time + [Documentation] Performs a measurement of warmboot boot time + ... The device does not need to be logged in to Ubuntu if $DUT_CONNETION_METHOD == SSH. + ... If $DUT_CONNETION_METHOD == Telnet, then the device must be logged + ... off, and the login prompt must be available in the Telnet buffer. [Arguments] ${iterations} ${durations}= Create List @@ -82,8 +87,10 @@ Measure Warmboot Time RETURN ${min} ${max} ${average} ${stddev} Measure Reboot Time - [Documentation] Performs a measurement of reboot - ... boot time + [Documentation] Performs a measurement of reboot boot time + ... The device does not need to be logged in to Ubuntu if $DUT_CONNETION_METHOD == SSH. + ... If $DUT_CONNETION_METHOD == Telnet, then the device must be logged + ... off, and the login prompt must be available in the Telnet buffer. [Arguments] ${iterations} ${durations}= Create List diff --git a/lib/options/options.robot b/lib/options/options.robot index c6f822a0d0..ece4a98a68 100644 --- a/lib/options/options.robot +++ b/lib/options/options.robot @@ -19,6 +19,9 @@ Set UEFI Option [Documentation] ... Sets an UEFI option. ... Implementations in ``/lib/options/`` + ... At this moment the implementations are not completely device-agnostic + ... and might have additional requirements/side effects. Check the + ... implementations' documentation for details. ... ... === Requirements === ... None @@ -47,7 +50,10 @@ Set UEFI Option Get UEFI Option [Documentation] ... Gets the value of an UEFI option. - ... Implementations in /lib/options/ + ... Implementations in ``/lib/options/`` + ... At this moment the implementations are not completely device-agnostic + ... and might have additional requirements/side effects. Check the + ... implementations' documentation for details. ... ... === Requirements === ... None From 4fbdc3af14009e0433a5742cd95cf3a629b74975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 21 Jan 2025 10:05:07 +0100 Subject: [PATCH 104/416] lib/options: Rename impl files to fix duplicate lib names in docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `lib/options/dcu.robot` and `lib/dcu.robot keywords` all had the prefix `dcu.` Signed-off-by: Filip Gołaś --- dasharo-compatibility/cpu-throttling.robot | 4 ++-- dasharo-compatibility/dcu.robot | 4 ++-- dasharo-security/smm-bios-write-protection.robot | 4 ++-- dasharo-security/usb-stack.robot | 8 ++++---- docs/novacustom.md | 2 +- keywords.robot | 4 ++-- lib/flash.robot | 2 +- lib/options/{dcu.robot => options-lib_dcu.robot} | 0 ...setup-menu.robot => options-lib_uefi-setup-menu.robot} | 0 platform-configs/include/default.robot | 4 ++-- platform-configs/include/novacustom-common.robot | 2 +- self-tests/dcu.robot | 2 +- self-tests/make-sure-that-flash-locks-are-disabled.robot | 4 +++- 13 files changed, 21 insertions(+), 19 deletions(-) rename lib/options/{dcu.robot => options-lib_dcu.robot} (100%) rename lib/options/{uefi-setup-menu.robot => options-lib_uefi-setup-menu.robot} (100%) diff --git a/dasharo-compatibility/cpu-throttling.robot b/dasharo-compatibility/cpu-throttling.robot index 32a8120ea3..bcbd11730f 100644 --- a/dasharo-compatibility/cpu-throttling.robot +++ b/dasharo-compatibility/cpu-throttling.robot @@ -26,7 +26,7 @@ Suite Teardown Run Keyword THR001.001 Try to enter a threshold value that's above the limit [Documentation] Verify that a threshold value that's above the limit ... will get rejected with a proper prompt - Skip If not "${OPTIONS_LIB}" == "uefi-setup-menu" + Skip If not "${OPTIONS_LIB}" == "options-lib_uefi-setup-menu" # According to Intel datasheets, the throttling temperature must be within # {TjMax; TjMax - 63} Set UEFI Option CpuThrottlingThreshold 200 @@ -38,7 +38,7 @@ THR001.001 Try to enter a threshold value that's above the limit THR001.002 Try to enter a threshold value that's below the limit [Documentation] Verify that a threshold value that's below the limit ... will get rejected with a proper prompt - Skip If not "${OPTIONS_LIB}" == "uefi-setup-menu" + Skip If not "${OPTIONS_LIB}" == "options-lib_uefi-setup-menu" Set UEFI Option CpuThrottlingThreshold 10 Save Changes Read From Terminal Until error diff --git a/dasharo-compatibility/dcu.robot b/dasharo-compatibility/dcu.robot index dec3cd8de4..916e909b95 100644 --- a/dasharo-compatibility/dcu.robot +++ b/dasharo-compatibility/dcu.robot @@ -102,9 +102,9 @@ DCU004.001 Verify SMMSTORE changes Skip If ... '''${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}''' == '''${EMPTY}''' ... DCU004.001 Verify SMMSTORE changes not supported - IF "${OPTIONS_LIB}"=="uefi-setup-menu" + IF "${OPTIONS_LIB}"=="options-lib_uefi-setup-menu" Verify SMMSTORE Changes (Setup Menu) - ELSE IF "${OPTIONS_LIB}"=="dcu" + ELSE IF "${OPTIONS_LIB}"=="options-lib_dcu" Log To Console ... Verifying DCU possible only using on this device DCU. The test may not be trustworthy. ... WARN diff --git a/dasharo-security/smm-bios-write-protection.robot b/dasharo-security/smm-bios-write-protection.robot index d7ef39a3b6..17f0590217 100644 --- a/dasharo-security/smm-bios-write-protection.robot +++ b/dasharo-security/smm-bios-write-protection.robot @@ -37,7 +37,7 @@ SMM001.001 SMM BIOS write protection enabling (Ubuntu) ... during the attempt of firmware flashing information about the ... SMM protection is returned. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If "${OPTIONS_LIB}" == "dcu" + Skip If "${OPTIONS_LIB}" == "options-lib_dcu" Power On ${setup_menu}= Enter Setup Menu Tianocore And Return Construction ${dasharo_menu}= Enter Dasharo System Features ${setup_menu} @@ -61,7 +61,7 @@ SMM002.001 SMM BIOS write protection disabling (Ubuntu) ... during the attempt of firmware flashing information about the ... SMM protection is returned. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If "${OPTIONS_LIB}" == "dcu" + Skip If "${OPTIONS_LIB}" == "options-lib_dcu" Power On ${setup_menu}= Enter Setup Menu Tianocore And Return Construction ${dasharo_menu}= Enter Dasharo System Features ${setup_menu} diff --git a/dasharo-security/usb-stack.robot b/dasharo-security/usb-stack.robot index 0408e4026d..1b9a92fb68 100644 --- a/dasharo-security/usb-stack.robot +++ b/dasharo-security/usb-stack.robot @@ -31,7 +31,7 @@ USS001.001 Enable USB stack (firmware) ... the firmware level. Skip If not ${USB_STACK_SUPPORT} USS001.001 not supported Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} USS001.001 not supported - Skip If "${OPTIONS_LIB}" == "dcu" + Skip If "${OPTIONS_LIB}" == "options-lib_dcu" Set UEFI Option UsbDriverStack ${TRUE} Set UEFI Option UsbMassStorage ${TRUE} ${boot_menu}= Enter Boot Menu Tianocore And Return Construction @@ -43,7 +43,7 @@ USS002.001 Disable USB stack (firmware) ... the firmware level. Skip If not ${USB_STACK_SUPPORT} USS002.001 not supported Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} USS002.001 not supported - Skip If "${OPTIONS_LIB}" == "dcu" + Skip If "${OPTIONS_LIB}" == "options-lib_dcu" Set UEFI Option UsbMassStorage ${FALSE} Set UEFI Option UsbDriverStack ${FALSE} ${boot_menu}= Enter Boot Menu Tianocore And Return Construction @@ -54,7 +54,7 @@ USS003.001 Enable USB Mass Storage (firmware) ... firmware level. Skip If not ${USB_MASS_STORAGE_SUPPORT} USS003.001 not supported Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} USS003.001 not supported - Skip If "${OPTIONS_LIB}" == "dcu" + Skip If "${OPTIONS_LIB}" == "options-lib_dcu" Power On ${setup_menu}= Enter Setup Menu Tianocore And Return Construction ${dasharo_menu}= Enter Dasharo System Features ${setup_menu} @@ -78,7 +78,7 @@ USS004.001 Disable USB Mass Storage (firmware) ... firmware level. Skip If not ${USB_MASS_STORAGE_SUPPORT} USS004.001 not supported Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} USS004.001 not supported - Skip If "${OPTIONS_LIB}" == "dcu" + Skip If "${OPTIONS_LIB}" == "options-lib_dcu" Power On # Enable USB stack first to get mass storage option ${setup_menu}= Enter Setup Menu Tianocore And Return Construction diff --git a/docs/novacustom.md b/docs/novacustom.md index 58f210a53b..7017c2883e 100644 --- a/docs/novacustom.md +++ b/docs/novacustom.md @@ -33,7 +33,7 @@ internal programmer. If any locks are present the flashing will fail. * Run tests with the target platform **powered on** and the target OS **booted**. * When adding a new laptop platform, make sure that `${OPTIONS_LIB}` is set to - `dcu` and `${POWER_CTRL}` is set to `none` in the config. + `options-lib_dcu` and `${POWER_CTRL}` is set to `none` in the config. * Docking station tests should be run separately because many checks are performed in the same way as on the internal ports. When testing a docking station make sure that the appliances are connected to the docking station and diff --git a/keywords.robot b/keywords.robot index ecd415a5c5..c20cd3fed7 100644 --- a/keywords.robot +++ b/keywords.robot @@ -507,7 +507,7 @@ Prepare Test Suite Import Osfv Libraries [Documentation] Import osfv_cli libraries based on config and command ... line variables - IF '${OPTIONS_LIB}'=='dcu' RETURN + IF '${OPTIONS_LIB}'=='options-lib_options-lib_dcu' RETURN Log ${SNIPEIT} IF '${SNIPEIT}' == 'yes' Import Library osfv.rf.snipeit_robot @@ -668,7 +668,7 @@ Power Cycle On ... the DEFAULT_POWER_STATE_AFTER_FAIL variable defined in platform config. Variable Should Exist ${DEFAULT_POWER_STATE_AFTER_FAIL} - IF "${OPTIONS_LIB}"=="dcu" and "${POWER_CTRL}"=="none" + IF "${OPTIONS_LIB}"=="options-lib_dcu" and "${POWER_CTRL}"=="none" Execute Reboot Command Sleep 5s RETURN diff --git a/lib/flash.robot b/lib/flash.robot index a390f13537..bd46cb42ea 100644 --- a/lib/flash.robot +++ b/lib/flash.robot @@ -79,7 +79,7 @@ Flash Firmware FAIL Image size doesn't match the flash chip's size! END - IF "${OPTIONS_LIB}"=="dcu" + IF "${OPTIONS_LIB}"=="options-lib_dcu" Make Sure That Flash Locks Are Disabled Flash Via Internal Programmer ${fw_file} region='bios' RETURN diff --git a/lib/options/dcu.robot b/lib/options/options-lib_dcu.robot similarity index 100% rename from lib/options/dcu.robot rename to lib/options/options-lib_dcu.robot diff --git a/lib/options/uefi-setup-menu.robot b/lib/options/options-lib_uefi-setup-menu.robot similarity index 100% rename from lib/options/uefi-setup-menu.robot rename to lib/options/options-lib_uefi-setup-menu.robot diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 0ea99b1ba7..87bb1152ba 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -36,9 +36,9 @@ ${LAPTOP_EC_SERIAL_WORKAROUND}= ${FALSE} # Library config # Option library: UEFI configuration variable backend. -# - uefi-setup-menu: Will set options via the UEFI Setup menu (serial) +# - options-lib_uefi-setup-menu: Will set options via the UEFI Setup menu (serial) # - dcu: Will use Dasharo Configuration Utility to configure options. -${OPTIONS_LIB}= uefi-setup-menu +${OPTIONS_LIB}= options-lib_uefi-setup-menu # OS config ${DEVICE_WINDOWS_USERNAME}= ${WINDOWS_USERNAME} diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index 960a7ba0e9..120964952a 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -31,7 +31,7 @@ ${DMIDECODE_VENDOR}= 3mdeb ${DMIDECODE_FAMILY}= Not Applicable ${DMIDECODE_TYPE}= Notebook -${OPTIONS_LIB}= dcu +${OPTIONS_LIB}= options-lib_dcu ${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 ${CLEVO_USB_C_HUB}= 4-port diff --git a/self-tests/dcu.robot b/self-tests/dcu.robot index c057a36261..63b0c42b93 100644 --- a/self-tests/dcu.robot +++ b/self-tests/dcu.robot @@ -25,7 +25,7 @@ Suite Teardown Run Keyword *** Test Cases *** Boot System Or From Connected Disk - Skip If '${OPTIONS_LIB}' != 'dcu' DCU not supported + Skip If '${OPTIONS_LIB}' != 'options-lib_dcu' DCU not supported Power On diff --git a/self-tests/make-sure-that-flash-locks-are-disabled.robot b/self-tests/make-sure-that-flash-locks-are-disabled.robot index fdb92b1238..8f2426cdd4 100644 --- a/self-tests/make-sure-that-flash-locks-are-disabled.robot +++ b/self-tests/make-sure-that-flash-locks-are-disabled.robot @@ -52,7 +52,9 @@ Test Make Sure That Flash Locks Are Disabled [Documentation] Tests Make Sure That Flash Locks Are Disabled Keyword ... Accepts initial state of the BIOS lock and SMM protection as args [Arguments] ${bios_lock_init} ${smm_lock_init} - IF "${smm_lock_init}"=="Enabled" and "${OPTIONS_LIB}"=="dcu" Skip + IF "${smm_lock_init}"=="Enabled" and "${OPTIONS_LIB}"=="options-lib_dcu" + Skip + END Set UEFI Option LockBios ${bios_lock_init} Set UEFI Option SmmBwp ${smm_lock_init} IF "${bios_lock_init}"=="Enabled" or "${smm_lock_init}"=="Enabled" From ad9254656ba7e21af7ad8f12cf789041ce258540 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 21 Jan 2025 10:15:58 +0100 Subject: [PATCH 105/416] keyword docs: Rename section `Side Effects` to `Effects` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- keywords.robot | 2 +- lib/bios/menus.robot | 78 +++++++++++++++++++-------------------- lib/options/options.robot | 16 ++++---- 3 files changed, 48 insertions(+), 48 deletions(-) diff --git a/keywords.robot b/keywords.robot index c20cd3fed7..ef93ef3b72 100644 --- a/keywords.robot +++ b/keywords.robot @@ -1561,7 +1561,7 @@ Power On ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - The platform is ON ... - Telnet buffer is cleared ... - Always performs a full power cycle, even if the device was ON diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index d0cf1d7055..b0e5fb9961 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -27,7 +27,7 @@ Enter Boot Menu Tianocore ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - UEFI Boot menu is entered Read From Terminal Until ${TIANOCORE_STRING} @@ -56,7 +56,7 @@ Get Boot Menu Construction ... === Return Value === ... - ``string`` - The boot menu construction - entries, line by line ... - ... === Side Effects === + ... === Effects === ... - The boot menu is read from the serial buffer ${menu}= Read From Terminal Until exit @@ -116,7 +116,7 @@ Enter Boot Menu Tianocore And Return Construction ... === Return Value === ... - ``string`` - The boot menu construction - entries, line by line ... - ... === Side Effects === + ... === Effects === ... - UEFI Boot menu is entered ... - The boot menu is read from the serial buffer @@ -139,7 +139,7 @@ Enter Setup Menu Tianocore ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - UEFI Setup menu is entered Read From Terminal Until ${TIANOCORE_STRING} @@ -163,7 +163,7 @@ Get Setup Menu Construction ... === Return Value === ... - ``string`` - The setup menu construction, line by line ... - ... === Side Effects === + ... === Effects === ... - The setup menu is read from the serial buffer [Arguments] ${checkpoint}=Select Entry @@ -196,7 +196,7 @@ Get Menu Construction ... === Return Value === ... - ``string`` - The setup menu construction, line by line ... - ... === Side Effects === + ... === Effects === ... - The setup menu is read from the serial buffer [Arguments] ${checkpoint}=ESC=exit ${lines_top}=1 ${lines_bot}=0 @@ -224,7 +224,7 @@ Parse Menu Snapshot Into Construction ... === Return Value === ... - ``string`` - The parsed setup menu contents, line by line ... - ... === Side Effects === + ... === Effects === ... None [Arguments] ${menu} ${lines_top} ${lines_bot} ${slice_start}= Set Variable ${lines_top} @@ -284,7 +284,7 @@ Enter Setup Menu Tianocore And Return Construction ... === Return Value === ... - ``string`` - The setup menu construction, line by line ... - ... === Side Effects === + ... === Effects === ... - UEFI Setup menu is entered ... - The setup menu is read from the serial buffer Enter Setup Menu Tianocore @@ -312,7 +312,7 @@ Get Submenu Construction ... === Return Value === ... - ``string`` - The setup menu construction, line by line ... - ... === Side Effects === + ... === Effects === ... - The setup submenu is read from the serial buffer [Arguments] ${checkpoint}=Esc=Exit ${lines_top}=1 ${lines_bot}=1 ${opt_only}="${FALSE}" @@ -356,7 +356,7 @@ Enter Submenu From Snapshot ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - A setup submenu is entered [Arguments] ${menu} ${option} @@ -381,7 +381,7 @@ Enter Submenu From Snapshot And Return Construction ... === Return Value === ... - ``string`` - The setup menu contents, line by line ... - ... === Side Effects === + ... === Effects === ... - A setup submenu is entered ... - The setup submenu is read from the serial buffer [Arguments] ${menu} ${option} ${opt_only}=${FALSE} @@ -405,7 +405,7 @@ Enter Dasharo System Features ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - A setup submenu is entered [Arguments] ${setup_menu} @@ -429,7 +429,7 @@ Enter Dasharo APU Configuration ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - A setup submenu is entered [Arguments] ${setup_menu} @@ -452,7 +452,7 @@ Enter Dasharo Submenu # TODO redundant keyword, only used to change the defau ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - A setup submenu is entered [Arguments] ${dasharo_menu} ${option} @@ -477,7 +477,7 @@ Get Index Of Matching Option In Menu ... === Return Value === ... - ``integer`` - the index of the matched construction line ... - ... === Side Effects === + ... === Effects === ... None [Arguments] ${menu_construction} ${option} ${ignore_not_found_error}=${FALSE} @@ -509,7 +509,7 @@ Press Key N Times And Enter ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - The keyword itself causes no side effects ... - Pressing the ``Enter`` key might cause multiple side effects ... \ depending on the context @@ -531,7 +531,7 @@ Press Enter ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - The keyword itself causes no side effects ... - Pressing the ``Enter`` key might cause multiple side effects ... \ depending on the context @@ -557,7 +557,7 @@ Press Key N Times ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - The keyword itself causes no side effects ... - Pressing the ``${key}`` might cause multiple side effects ... depending on the context and the key pressed @@ -596,7 +596,7 @@ Get Option State ... \ ``${TRUE}`` / ``${FALSE}`` if the option is boolean. ... \ ``string`` otherwise ... - ... === Side Effects === + ... === Effects === ... None [Arguments] ${menu} ${option} @@ -628,7 +628,7 @@ Get Option Type ... - ``string`` - the type of the option. Can one of: ... \ ``bool``, ``numeric``, ``list``. ... - ... === Side Effects === + ... === Effects === ... None [Arguments] ${state} @@ -662,7 +662,7 @@ Select State From List ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - The option state will be changed from ``${current_state}`` to ``${target_state}`` ... - Causes a FAIL if the ``${current_state}`` or the ``${target_state}`` ... \ are incorrect @@ -700,7 +700,7 @@ Set Option State ... - ``boolean`` - ${TRUE} if the state was changed. ${FALSE} if the ... \ option was already in the target state ... - ... === Side Effects === + ... === Effects === ... - The option state will be changed to ``${target_state}`` ... - Causes a FAIL if the ``${option}`` or the ``${target_state}`` ... \ are incorrect. @@ -756,7 +756,7 @@ Get IPXE Boot Menu Construction # TODO possibly redundant, as it only gives a ... === Return Value === ... - ``string`` - The IPXE menu construction, line by line ... - ... === Side Effects === + ... === Effects === ... - The IPXE menu is read from the serial buffer [Arguments] ${lines_top}=1 ${lines_bot}=0 ${checkpoint}=${EDK2_IPXE_CHECKPOINT} @@ -786,7 +786,7 @@ Reset To Defaults Tianocore ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - The UEFI setup options are restored to defaults ... - The device gets rebooted @@ -834,7 +834,7 @@ Enter IPXE ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - The iPXE menu is entered # TODO: problem with iPXE string (e.g. when 3 network interfaces are available) @@ -862,7 +862,7 @@ Exit From Current Menu ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - Flushes the serial buffer ... - Exits from a submenu @@ -884,7 +884,7 @@ Reenter Menu ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - The current submenu reappears on the serial buffer ... - The entered submenu is flushed from the serial buffer [Arguments] ${forward}=${FALSE} @@ -911,7 +911,7 @@ Reenter Menu And Return Construction ... === Return Value === ... - ``string`` - the current menu construction ... - ... === Side Effects === + ... === Effects === ... None [Arguments] ${forward}=${FALSE} @@ -934,7 +934,7 @@ Type In The Password ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... None [Arguments] ${keys_password} @@ -961,7 +961,7 @@ Type In New Disk Password ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... None [Arguments] ${keys_password} @@ -991,7 +991,7 @@ Type In BIOS Password ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... None [Arguments] ${keys_password} @@ -1014,7 +1014,7 @@ Type In Disk Password ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... None [Arguments] ${keys_password} @@ -1042,7 +1042,7 @@ Remove Disk Password ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... None [Arguments] ${keys_password} @@ -1079,7 +1079,7 @@ Tianocore Reset System ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - Platform is rebooted # EDK2 interprets Alt + Ctrl + Del on USB keyboards as reset combination. @@ -1110,7 +1110,7 @@ Save Changes ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - The performed changes will be saved and applied. ... \ Most options require a reboot to take effect. Some of them don't. @@ -1133,7 +1133,7 @@ Save Changes And Reset ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - The performed changes will be saved and applied. ... - The platform will be rebooted to ensure all changes are applied. @@ -1154,7 +1154,7 @@ Boot System Or From Connected Disk # robocop: disable=too-long-keyword ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - Boots into the selected OS ... - Does nothing if ${DUT_CONNECTION_METHOD}' == 'SSH' - selecting OS's ... \ not supported via ssh. @@ -1231,7 +1231,7 @@ Make Sure That Network Boot Is Enabled ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - The ``NetworkBoot`` option will be set to ``Enabled`` ... - The platform will be rebooted ... - Performs a ``SKIP`` if ``NetworkBoot`` is not supported @@ -1254,7 +1254,7 @@ Get Firmware Version From Tianocore Setup Menu # TODO unused ... === Return Value === ... - ``string`` - The version of the firmware, as displayed in the Setup menu ... - ... === Side Effects === + ... === Effects === ... - The ``NetworkBoot`` option will be set to ``Enabled`` ... - The platform will be rebooted diff --git a/lib/options/options.robot b/lib/options/options.robot index ece4a98a68..741c1a8904 100644 --- a/lib/options/options.robot +++ b/lib/options/options.robot @@ -40,7 +40,7 @@ Set UEFI Option ... if it was not. ``${FALSE}`` can mean that the option was already in the ... requested state. ... - ... === Side Effects === + ... === Effects === ... - The device gets rebooted ... - The UEFI option ``${option_name}`` is set to ``${value}`` [Arguments] ${option_name} ${value} @@ -68,7 +68,7 @@ Get UEFI Option ... - Boolean ``${TRUE}``/``${FALSE}`` for boolean options ... - String for numeric and list options ... - ... === Side Effects === + ... === Effects === ... - The device might get rebooted, depending on implementation [Arguments] ${option_name} Fail Not implemented @@ -86,7 +86,7 @@ Reset UEFI Options To Defaults ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - All the UEFI options are reset to the defaults. Make sure the ... default value of ``SerialRedirection`` is set to Enabled if using ... Telnet/Serial @@ -106,7 +106,7 @@ Get UEFI Boot Manager Entries ... === Return Value === ... - ``string`` - The boot menu entries, separated with newlines ... - ... === Side Effects === + ... === Effects === ... - The device might get rebooted, depending on implementation Fail Not implemented @@ -128,7 +128,7 @@ Measure Coldboot Time ... - ``float`` - Average coldboot time ... - ``float`` - Standard deviation of the coldboot time ... - ... === Side Effects === + ... === Effects === ... - The device will be rebooted ${iterations} times [Arguments] ${iterations} Skip Coldboot not supported without serial connection @@ -151,7 +151,7 @@ Measure Warmboot Time ... - ``float`` - Average warmboot time ... - ``float`` - Standard deviation of the warmboot time ... - ... === Side Effects === + ... === Effects === ... - The device will be rebooted ${iterations} times [Arguments] ${iterations} Fail Not implemented @@ -174,7 +174,7 @@ Measure Reboot Time ... - ``float`` - Average reboot time ... - ``float`` - Standard deviation of the reboot time ... - ... === Side Effects === + ... === Effects === ... - The device will be rebooted ${iterations} times [Arguments] ${iterations} Fail Not implemented @@ -192,7 +192,7 @@ Make Sure That Flash Locks Are Disabled ... === Return Value === ... None ... - ... === Side Effects === + ... === Effects === ... - The device will get rebooted ... - Causes a FAIL if disabling locks is not possible Fail Not implemented From 0fc017407b39586a59284f89d447812e1c9cdb15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 3 Feb 2025 08:04:38 +0100 Subject: [PATCH 106/416] lib/terminal.robot: Add documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/terminal.robot | 201 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 180 insertions(+), 21 deletions(-) diff --git a/lib/terminal.robot b/lib/terminal.robot index df217bd8cc..c9e9069a75 100644 --- a/lib/terminal.robot +++ b/lib/terminal.robot @@ -11,9 +11,24 @@ Resource bios/menus.robot *** Keywords *** Set Prompt For Terminal - [Documentation] Universal keyword to set the prompt (used in Read Until - ... prompt keyword) regardless of the used method of - ... connection to the DUT (Telnet or SSH). + [Documentation] + ... Universal keyword to set the prompt (used in ``Read Until Prompt`` + ... keyword) regardless of the used method of + ... connection to the DUT. + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... ``${prompt}``: ``string`` - The prompt text + ... + ... === Return Value === + ... None + ... + ... === Effects === + ... The prompt is changed in the currently used connection library + ... according to ``${DUT_CONNECTION_METHOD}`` platform config + ... variable. [Arguments] ${prompt} IF '${DUT_CONNECTION_METHOD}' == 'Telnet' Telnet.Set Prompt ${prompt} prompt_is_regexp=False @@ -28,9 +43,24 @@ Set Prompt For Terminal END Set DUT Response Timeout - [Documentation] Universal keyword to set the timeout (used for operations + [Documentation] + ... Universal keyword to set the timeout (used for operations ... that expect some output to appear) regardless of the - ... used method of connection to the DUT (Telnet or SSH). + ... used method of connection to the DUT. + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... ``${timeout}``: ``string`` - The time in Robot Framework time format + ... + ... === Return Value === + ... None + ... + ... === Effects === + ... The timeout is changed in the currently used connection library + ... according to ``${DUT_CONNECTION_METHOD}`` platform config + ... variable. [Arguments] ${timeout} IF '${DUT_CONNECTION_METHOD}' == 'Telnet' Telnet.Set Timeout ${timeout} @@ -45,9 +75,22 @@ Set DUT Response Timeout END Read From Terminal - [Documentation] Universal keyword to read the console output regardless - ... of the used method of connection to the DUT - ... (Telnet or SSH). + [Documentation] + ... Universal keyword to read the console output regardless + ... of the used method of connection to the DUT. + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... ``string`` - All the text from the terminal buffer, from the last + ... time it was cleared, up to the moment the keyword is called + ... + ... === Effects === + ... The terminal buffer is read and consequently cleared IF '${DUT_CONNECTION_METHOD}' == 'Telnet' ${output}= Telnet.Read ELSE IF '${DUT_CONNECTION_METHOD}' == 'SSH' @@ -62,9 +105,26 @@ Read From Terminal RETURN ${output} Read From Terminal Until - [Documentation] Universal keyword to read the console output until the + [Documentation] + ... Universal keyword to read the console output until the ... defined text occurs regardless of the used method of - ... connection to the DUT (Telnet or SSH). + ... connection to the DUT. + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... ``${expected}``: ``string`` - The text up to which the terminal + ... will be read + ... + ... === Return Value === + ... ``string`` - All the text from the terminal buffer, from the last + ... time it was cleared, up to the moment ``${expected}`` is found, or + ... the timeout passes + ... + ... === Effects === + ... The terminal buffer is read and consequently cleared up until + ... ${expected}. Everything after ``${expected}`` stays in the buffer. [Arguments] ${expected} IF '${DUT_CONNECTION_METHOD}' == 'Telnet' ${output}= Telnet.Read Until ${expected} @@ -80,9 +140,24 @@ Read From Terminal Until RETURN ${output} Read From Terminal Until Prompt - [Documentation] Universal keyword to read the console output until the + [Documentation] + ... Universal keyword to read the console output until the ... defined prompt occurs regardless of the used method of - ... connection to the DUT (Telnet or SSH). + ... connection to the DUT. + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... None + ... + ... === Return Value === + ... ``string`` - All the text from the terminal buffer, from the last + ... time it was cleared, up to the moment the prompt is found, or + ... the timeout passes + ... + ... === Effects === + ... The terminal buffer is read and consequently cleared IF '${DUT_CONNECTION_METHOD}' == 'SSH' or '${DUT_CONNECTION_METHOD}' == 'open-bmc' ${output}= SSHLibrary.Read Until Prompt strip_prompt=${TRUE} ${output}= Strip String ${output} characters=\n\r @@ -100,9 +175,27 @@ Read From Terminal Until Prompt RETURN ${output} Read From Terminal Until Regexp - [Documentation] Universal keyword to read the console output until the + [Documentation] + ... Universal keyword to read the console output until the ... defined regexp occurs regardless of the used method of - ... connection to the DUT (Telnet or SSH). + ... connection to the DUT. + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... ``${regexp}``: ``string`` - The regular expression up to which the + ... terminal will be read + ... + ... === Return Value === + ... ``string`` - All the text from the terminal buffer, from the last + ... time it was cleared, up to the moment ``${regexp}`` is matched, or + ... the timeout passes + ... + ... === Effects === + ... The terminal buffer is read and consequently cleared up until + ... the matched ``${regex}``. Everything after the match stays in the + ... buffer. [Arguments] ${regexp} IF '${DUT_CONNECTION_METHOD}' == 'Telnet' ${output}= Telnet.Read Until Regexp ${regexp} @@ -118,8 +211,22 @@ Read From Terminal Until Regexp RETURN ${output} Write Into Terminal - [Documentation] Universal keyword to write text to console regardless of - ... the used method of connection to the DUT (Telnet, PiKVM or SSH). + [Documentation] + ... Universal keyword to write text and a newline to console regardless + ... of the used method of connection to the DUT. + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... ``${text}``: ``string`` - The text to write + ... + ... === Return Value === + ... None + ... + ... === Effects === + ... The ``${text}`` is written to the terminal, followed by a newline + ... character [Arguments] ${text} IF '${DUT_CONNECTION_METHOD}' == 'Telnet' Telnet.Write ${text} @@ -136,10 +243,22 @@ Write Into Terminal Write Bare Into Terminal [Documentation] Universal keyword to write bare text (without new line ... mark) to console regardless of the used method of - ... connection to the DUT (Telnet, PiKVM or SSH). - [Arguments] ${text} ${interval}=${NULL} + ... connection to the DUT. + ... + ... === Requirements === + ... None + ... + ... === Arguments === + ... ``${text}``: ``string`` - The text to write + ... + ... === Return Value === + ... None + ... + ... === Effects === + ... The ``${text}`` is written to the terminal + [Arguments] ${text} IF '${DUT_CONNECTION_METHOD}' == 'Telnet' - Telnet.Write Bare ${text} ${interval} + Telnet.Write Bare ${text} ELSE IF '${DUT_CONNECTION_METHOD}' == 'SSH' SSHLibrary.Write Bare ${text} ELSE IF '${DUT_CONNECTION_METHOD}' == 'open-bmc' @@ -152,7 +271,24 @@ Write Bare Into Terminal Execute Command In Terminal [Documentation] Universal keyword to execute command regardless of the - ... used method of connection to the DUT (Telnet or SSH). + ... used method of connection to the DUT (Telnet or SSH). The DUT Response + ... Timeout is changed to ``${timeout}`` and not restored. + ... + ... === Requirements === + ... The command prompt has to be set using ``Set Prompt For Terminal`` + ... + ... === Arguments === + ... - ``${command}``: ``string`` - The command to execute + ... - ``${timeout}``: ``string`` = ``30s`` - The DUT Response Timeout for + ... \ executing the command + ... + ... === Return Value === + ... ``string`` - The full command output, or up to the time ``${timeout}`` + ... passes. + ... + ... === Effects === + ... The ``${command}`` is written to the terminal and the keyword waits + ... until the execution ends or ``${timeout}`` passes. [Arguments] ${command} ${timeout}=30s Set DUT Response Timeout ${timeout} IF '${DUT_CONNECTION_METHOD}' == 'Telnet' @@ -166,7 +302,30 @@ Execute Command In Terminal RETURN ${output} Execute UEFI Shell Command - [Documentation] Universal keyword to execute command in Shell. + [Documentation] + ... Executes a command in UEFI Shell. Adds some delays to be more + ... reliable in the UEFI Shell. + ... + ... === Requirements === + ... - The UEFI shell has to be entered first. + ... - The command prompt has to be set using ``Set Prompt For Terminal`` + ... + ... === Arguments === + ... - ``${command}``: ``string`` - The command to execute + ... - ``${timeout}``: ``string`` = ``30s`` - The DUT Response Timeout for + ... \ executing the command + ... - ``${uefi_shell_input_latency}``: ``integer`` - additional delay + ... \ in milliseconds for every entered character. Used to make sure the + ... \ whole command is written down before pressing ``Enter``, as the + ... \ UEFI shell might sometimes be slow to register the input. + ... + ... === Return Value === + ... ``string`` - The full command output, or up to the time ``${timeout}`` + ... passes. + ... + ... === Effects === + ... The ``${command}`` is written to the terminal and the keyword waits + ... until the execution ends or ``${timeout}`` passes. [Arguments] ${command} ${timeout}=30s ${uefi_shell_input_latency}=10 Set DUT Response Timeout ${timeout} ${length}= Get Length ${command} From e11454e3ca0239be1dc121692a30c5181bef6456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 3 Feb 2025 12:52:44 +0100 Subject: [PATCH 107/416] lib/terminal.robot: Execute UEFI Shell Command: disambiguate a var name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/terminal.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/terminal.robot b/lib/terminal.robot index c9e9069a75..5b4d41f4ab 100644 --- a/lib/terminal.robot +++ b/lib/terminal.robot @@ -329,9 +329,9 @@ Execute UEFI Shell Command [Arguments] ${command} ${timeout}=30s ${uefi_shell_input_latency}=10 Set DUT Response Timeout ${timeout} ${length}= Get Length ${command} - ${timeout}= Evaluate ${length} * ${uefi_shell_input_latency} + ${input_delay}= Evaluate ${length} * ${uefi_shell_input_latency} Write Bare Into Terminal ${command} - Sleep ${timeout}ms + Sleep ${input_delay}ms Press Enter ${output}= Read From Terminal Until Prompt RETURN ${output} From 0828dc3f35bd69afe6a09285bd12f72c7d8a8b90 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Wed, 19 Feb 2025 15:17:42 +0100 Subject: [PATCH 108/416] requirements.txt: Bump osfv-cli dependency to v0.5.10 Signed-off-by: Sebastian Czapla --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d7193de113..b5b0e85af9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -28,7 +28,7 @@ MarkupSafe==2.1.5 mdurl==0.1.2 nodeenv==1.8.0 oauth2client==4.1.3 -osfv @ git+https://github.com/Dasharo/osfv-scripts.git@36a030eb006391c3761c25d6972036a5a34fb73b#subdirectory=osfv_cli +osfv @ git+https://github.com/Dasharo/osfv-scripts.git@a6b18bb88051474ec2a44d8f2b37b1405977ab54#subdirectory=osfv_cli paramiko==3.4.0 pathspec==0.9.0 pexpect==4.9.0 From 20d3e30ad0d2ded5123ca411605a89fc9a57e005 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 17 Dec 2024 10:26:35 +0100 Subject: [PATCH 109/416] custom-fan-curve.robot: Add prototype CFC003 - Fans OFF MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/custom-fan-curve.robot | 61 +++++++++++++++++++ platform-configs/include/default.robot | 1 + .../include/protectli-vp66xx.robot | 34 ++++++----- 3 files changed, 81 insertions(+), 15 deletions(-) diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index 501b02afbc..a6d8b1181e 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -30,6 +30,7 @@ CFC001.001 Custom fan curve silent profile measure (Ubuntu) ... the defined values. Skip If not ${CUSTOM_FAN_CURVE_SILENT_MODE_SUPPORT} CFC001.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CFC001.001 not supported + # Set UEFI Option FanCurveOption Silent Power On Login To Linux Switch To Root User @@ -54,6 +55,7 @@ CFC002.001 Custom fan curve performance profile measure (Ubuntu) ... the defined values. Skip If not ${CUSTOM_FAN_CURVE_PERFORMANCE_MODE_SUPPORT} CFC002.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CFC002.001 not supported + # Set UEFI Option FanCurveOption Performance Power On Login To Linux Switch To Root User @@ -72,8 +74,67 @@ CFC002.001 Custom fan curve performance profile measure (Ubuntu) ${timer}= Evaluate ${timer} + ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL} END +CFC003.001 Custom fan curve OFF profile measure (Ubuntu) + [Documentation] Check whether the fan curve is configured correctly in + ... silent profile and the fan spins up and down according to + ... the defined values. + Skip If not ${CUSTOM_FAN_CURVE_OFF_MODE_SUPPORT} CFC003.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CFC003.001 not supported + + Set UEFI Option FanCurveOption Fans Off + + Power On + Login To Linux + Switch To Root User + Prepare Lm-sensors + Prepare IT87 + Stress Test ${CUSTOM_FAN_CURVE_TEST_DURATION}m + ${timer}= Convert To Integer 0 + FOR ${i} IN RANGE (${CUSTOM_FAN_CURVE_TEST_DURATION} / ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}) + Log To Console \n ---------------------------------------------------------------- + Log To Console ${timer} min. + ${temperature}= Get Temperature IT87 + ${rpm}= Get RPM IT87 + IF ${rpm} > 300 + Log RPM: ${rpm} WARN + Log To Console RPM: ${rpm} WARN + Log TEMP: ${temperature} WARN + Log To Console TEMP: ${temperature} WARN + ELSE + Log RPM: ${rpm} + Log TEMP: ${temperature} + END + + Sleep ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}m + ${timer}= Evaluate ${timer} + ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL} + END + *** Keywords *** +Get Temperature IT87 + [Documentation] Get temp1 temperature from lmsensors using IT87 which + ... is used to determine the fans' RPM + + ${temperature}= Execute Linux Command + ... sensors it8786-isa-0a20 2> /dev/null | grep -E 'temp1' | tr -s ' ' | cut -d ' ' -f2 + ${temperature}= Remove String ${temperature} + + ${temperature}= Remove String ${temperature} ° + ${temperature}= Remove String ${temperature} C + ${temperature_value}= Convert To Number ${temperature} + RETURN ${temperature_value} + +Get RPM IT87 + [Documentation] Get fan1 RPM from lmsensors using IT87 + ${rpm}= Execute Linux Command + ... sensors it8786-isa-0a20 2> /dev/null | grep -E 'fan1' | tr -s ' ' | cut -d ' ' -f2 + ${rpm_value}= Convert To Integer ${rpm} + RETURN ${rpm_value} + +Prepare IT87 + [Documentation] Loads the IT87 kernel module which can be used to monitor + ... RPM using lmsensorss + Execute Linux Command modprobe it87 force_id=0x8786 + Calculate Speed Percentage Based On Temperature [Documentation] Calculates the expected speed percentage by config file ... for a given temperature based on an algorithm and a diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 87bb1152ba..31ba0cc943 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -201,6 +201,7 @@ ${CPU_FREQUENCY_MEASURE}= ${FALSE} ${PLATFORM_STABILITY_CHECKING}= ${FALSE} ${CUSTOM_FAN_CURVE_SILENT_MODE_SUPPORT}= ${FALSE} ${CUSTOM_FAN_CURVE_PERFORMANCE_MODE_SUPPORT}= ${FALSE} +${CUSTOM_FAN_CURVE_OFF_MODE_SUPPORT}= ${FALSE} ${ETH_PERF_PAIR_1_G}= ${FALSE} ${ETH_PERF_PAIR_2_G}= ${FALSE} ${ETH_PERF_PAIR_10_G}= ${FALSE} diff --git a/platform-configs/include/protectli-vp66xx.robot b/platform-configs/include/protectli-vp66xx.robot index 49c7a7abcf..6543c54b83 100644 --- a/platform-configs/include/protectli-vp66xx.robot +++ b/platform-configs/include/protectli-vp66xx.robot @@ -4,23 +4,27 @@ Resource protectli-common.robot *** Variables *** -${FLASH_SIZE}= ${16*1024*1024} +${FLASH_SIZE}= ${16*1024*1024} -${DEVICE_AUDIO1}= Alderlake-P HDMI -${DEVICE_AUDIO1_WIN}= High Definition Audio Device -${INITIAL_CPU_FREQUENCY}= 2600 -${MAX_CPU_TEMP}= 82 +${DEVICE_AUDIO1}= Alderlake-P HDMI +${DEVICE_AUDIO1_WIN}= High Definition Audio Device +${INITIAL_CPU_FREQUENCY}= 2600 +${MAX_CPU_TEMP}= 82 -${CPU_P_CORES_MAX}= 2 -${CPU_E_CORES_MAX}= 8 +${CPU_P_CORES_MAX}= 2 +${CPU_E_CORES_MAX}= 8 -${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.0 -${DMIDECODE_RELEASE_DATE}= 07/01/2024 +${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.0 +${DMIDECODE_RELEASE_DATE}= 07/01/2024 -${EMMC_SUPPORT}= ${FALSE} -${HYPER_THREADING_SUPPORT}= ${TRUE} -${INTEL_HYBRID_ARCH_SUPPORT}= ${TRUE} -@{ETH_PERF_PAIR_2_G}= enp5s0 enp6s0 -@{ETH_PERF_PAIR_10_G}= enp2s0f0 enp2s0f1 +${EMMC_SUPPORT}= ${FALSE} +${HYPER_THREADING_SUPPORT}= ${TRUE} +${INTEL_HYBRID_ARCH_SUPPORT}= ${TRUE} +@{ETH_PERF_PAIR_2_G}= enp5s0 enp6s0 +@{ETH_PERF_PAIR_10_G}= enp2s0f0 enp2s0f1 -${ETHERNET_ID}= 8086:125c +${ETHERNET_ID}= 8086:125c + +${CUSTOM_FAN_CURVE_PERFORMANCE_MODE_SUPPORT}= ${TRUE} +${CUSTOM_FAN_CURVE_SILENT_MODE_SUPPORT}= ${TRUE} +${CUSTOM_FAN_CURVE_OFF_MODE_SUPPORT}= ${TRUE} From c2ad31f521c6d7d403098bf72b643bda7f39ceac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 17 Dec 2024 13:58:12 +0100 Subject: [PATCH 110/416] lib/sensors.robot: Define lib and required config variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś lib/sensors.robot: Aesthetical refactor Signed-off-by: Filip Gołaś Make use of lib/sensors platform config vars Signed-off-by: Filip Gołaś lib/sensors/robot: Use triple quotes for string comparisons Signed-off-by: Filip Gołaś lib/sensors: import sensor config variables Signed-off-by: Filip Gołaś lib/sensors.robot: Use hwmon path from sensors config file directly Signed-off-by: Filip Gołaś --- dasharo-performance/custom-fan-curve.robot | 6 + lib/sensors.robot | 122 ++++++++++++++++++ platform-configs/include/default.robot | 26 ++++ .../include/protectli-common.robot | 4 +- .../include/protectli-vp66xx.robot | 25 ++++ platform-configs/raptor-cs_talos2.robot | 22 ++++ 6 files changed, 203 insertions(+), 2 deletions(-) create mode 100644 lib/sensors.robot diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index a6d8b1181e..c3d8641a27 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -30,6 +30,8 @@ CFC001.001 Custom fan curve silent profile measure (Ubuntu) ... the defined values. Skip If not ${CUSTOM_FAN_CURVE_SILENT_MODE_SUPPORT} CFC001.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CFC001.001 not supported + Skip If "${FAN_PWM_MEASUREMENT_METHOD}" == "none" CFC001.001 not supported + Skip If "${CPU_TEMPERATURE_MEASUREMENT_METHOD}" == "none" CFC001.001 not supported # Set UEFI Option FanCurveOption Silent Power On Login To Linux @@ -55,6 +57,8 @@ CFC002.001 Custom fan curve performance profile measure (Ubuntu) ... the defined values. Skip If not ${CUSTOM_FAN_CURVE_PERFORMANCE_MODE_SUPPORT} CFC002.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CFC002.001 not supported + Skip If "${FAN_PWM_MEASUREMENT_METHOD}" == "none" CFC001.001 not supported + Skip If "${CPU_TEMPERATURE_MEASUREMENT_METHOD}" == "none" CFC001.001 not supported # Set UEFI Option FanCurveOption Performance Power On Login To Linux @@ -79,6 +83,8 @@ CFC003.001 Custom fan curve OFF profile measure (Ubuntu) ... silent profile and the fan spins up and down according to ... the defined values. Skip If not ${CUSTOM_FAN_CURVE_OFF_MODE_SUPPORT} CFC003.001 not supported + Skip If "${FAN_RPM_MEASUREMENT_METHOD}" == "none" CFC001.001 not supported + Skip If "${CPU_TEMPERATURE_MEASUREMENT_METHOD}" == "none" CFC001.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CFC003.001 not supported Set UEFI Option FanCurveOption Fans Off diff --git a/lib/sensors.robot b/lib/sensors.robot new file mode 100644 index 0000000000..59e0bedcd1 --- /dev/null +++ b/lib/sensors.robot @@ -0,0 +1,122 @@ +*** Settings *** +Documentation This library defines keywords for reading sensor data from +... devices. It might need to be mostly scrapped and implemented as keywords +... defined in the platform configs if it turns out that this process +... differs too much depending on the platform. + +Resource terminal.robot + + +*** Keywords *** +Prepare Sensors + [Documentation] Do any preparation work needed for accessing sensors + + # Might only do this when any method is said to be lm-sensors. + + Import Variables ${CURDIR}/../platform-configs/${SENSORS_CONFIG_FILE} + ${cpu_temperature_measurement_method}= Get From Dictionary ${CPU_TEMPERATURE_MEASUREMENT} method + ${fan_pwm_measurement_method}= Get From Dictionary ${FAN_PWM_MEASUREMENT} method + ${fan_rpm_measurement_method}= Get From Dictionary ${FAN_RPM_MEASUREMENT} method + + ${lm_sensors_used}= Catenate + ... '''${cpu_temperature_measurement_method}''' == '''system76-acpi''' or + ... '''${cpu_temperature_measurement_method}''' == '''lm-sensors''' or + ... '''${fan_rpm_measurement_method}''' != '''lm-sensors''' or + ... '''${fan_pwm_measurement_method}''' == '''lm-sensors''' + ${lm_sensors_used}= Evaluate ${lm_sensors_used} + + FOR ${module} IN @{SENSORS_KERNEL_MODULES} + ${module_name}= Get From Dictionary ${module} module + ${force_id}= Get From Dictionary ${module} force_id + ${optional_force_id}= Set Variable ${EMPTY} + IF '''${force_id}''' != '''none''' + ${optional_force_id}= Set Variable force_id=${force_id} + END + Execute Command In Terminal modprobe ${module_name} ${optional_force_id} + END + + IF ${lm_sensors_used} == ${TRUE} + Detect Or Install Package lm-sensors + Execute Command In Terminal sudo sensors-detect --auto + END + +Get CPU Temperature + [Documentation] Get current CPU temperature. Might need preparing the + ... sensors using `Prepare Sensors` keyword. + ${cpu_temperature_measurement_method}= Get From Dictionary ${CPU_TEMPERATURE_MEASUREMENT} method + IF '''${cpu_temperature_measurement_method}''' == '''lm-sensors''' + ${temperature}= Execute Command In Terminal + ... sensors 2>/dev/null | awk -F '[+°]' '/Package id 0:/ {printf $2}' + RETURN ${temperature} + ELSE IF '${cpu_temperature_measurement_method}' == 'hwmon' + ${cpu_temperature_measurement_hwmon_path}= Get From Dictionary + ... ${CPU_TEMPERATURE_MEASUREMENT} + ... hwmon_path + + ${temperature}= Execute Command In Terminal + ... cat ${cpu_temperature_measurement_hwmon_path} + ${temperature}= Evaluate ${temperature[:2]} + ${temperature}= Convert To Number ${temperature} + RETURN ${temperature} + ELSE + Fail Wrong platform configuration. CPU_TEMPERATURE_MEASUREMENT_METHOD + ... is of unknown value ${CPU_TEMPERATURE_MEASUREMENT_METHOD}. + END + +Get Fan PWM + [Documentation] Get current CPU fan PWM + ${fan_pwm_measurement_method}= Get From Dictionary ${FAN_PWM_MEASUREMENT} method + IF '''${fan_pwm_measurement_method}''' == '''none''' + Fail Wrong platform configuration. FAN_PWM_MEASUREMENT["method"] is + ... none. Either it should be changed or this test should not be + ... performed on this platform. + ELSE IF '''${fan_pwm_measurement_method}''' == '''hwmon''' + ${fan_pwm_measurement_hwmon_path}= Get From Dictionary ${FAN_PWM_MEASUREMENT} hwmon_path + ${pwm}= Execute Command In Terminal + ... cat ${fan_pwm_measurement_hwmon_path} + ${pwm}= Convert To Number ${pwm} + RETURN ${pwm} + END + +Get Fan RPM + [Documentation] Get current CPU fan RPM + ${fan_rpm_measurement_method}= Get From Dictionary ${FAN_RPM_MEASUREMENT} method + IF '''${fan_rpm_measurement_method}''' == '''lm-sensors''' + ${fan_rpm_measurement_sensor}= Get From Dictionary ${FAN_RPM_MEASUREMENT} lm_sensors_sensor_name + IF '''${fan_rpm_measurement_sensor}''' != '''none''' + ${rpm}= Execute Linux Command + ... sensors ${FAN_RPM_MEASUREMENT_SENSOR} 2> /dev/null | grep -E 'fan1' | tr -s ' ' | cut -d ' ' -f2 + ${rpm}= Convert To Integer ${rpm} + RETURN ${rpm} + ELSE + Fail FAN_RPM_MEASUREMENT_METHOD "${FAN_RPM_MEASUREMENT_METHOD}" + ... requires giving a valid FAN_RPM_MEASUREMENT_SENSOR, + ... currently set to ${FAN_RPM_MEASUREMENT_SENSOR} + END + ELSE IF '''${fan_rpm_measurement_method}''' == '''system76-acpi''' + ${speed}= Execute Command In Terminal sensors | grep "CPU fan" + ${speed_split}= Split String ${speed} + ${rpm}= Get From List ${speed_split} 2 + RETURN ${rpm} + ELSE IF '''${fan_rpm_measurement_method}''' == '''none''' + Fail Wrong platform configuration. FAN_RPM_MEASUREMENT["method"] is + ... none. Either it should be changed or this test should not be + ... performed on this platform. + ELSE + Fail Wrong platform configuration. FAN_RPM_MEASUREMENT_METHOD is + ... of unknown value ${FAN_RPM_MEASUREMENT_METHOD}. + END + +Is Fan PWM Measurement Supported + ${fan_pwm_measurement_method}= Get From Dictionary ${FAN_PWM_MEASUREMENT} method + IF '''${fan_pwm_measurement_method}''' == '''none''' + RETURN ${FALSE} + END + RETURN ${TRUE} + +Is Fan RPM Measurement Supported + ${fan_rpm_measurement_method}= Get From Dictionary ${FAN_RPM_MEASUREMENT} method + IF '''${fan_rpm_measurement_method}''' == '''none''' + RETURN ${FALSE} + END + RETURN ${TRUE} diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 31ba0cc943..a8716c17dd 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -274,6 +274,32 @@ ${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}= NetworkBoot ${ETH_PORTS}= ${EMPTY} +# Variables used in lib/sensors to determine platform-specific methods of +# measuring temperatures, fans etc. + +# Can be one of {`lm-sensors`, `hwmon`, `none`} +${CPU_TEMPERATURE_MEASUREMENT_METHOD}= lm-sensors +# Has to be set if cpu temperature method is hwmon +${CPU_TEMPERATURE_MEASUREMENT_HWMON_PATH}= none + +# Can be one of {`hwmon`, `none`} +${FAN_PWM_MEASUREMENT_METHOD}= hwmon +# Has to be set if PWM measurement method is hwmon +${FAN_PWM_MEASUREMENT_HWMON_PATH}= /sys/devices/LNXSYSTM\:00/LNXSYBUS\:00/17761776\:00/hwmon + +# Can be one of {`lm-sensors`, `system76-acpi`, `none`} +${FAN_RPM_MEASUREMENT_METHOD}= lm-sensors +# The name of the sensor in `sensors` command if FAN_RPM_MEASUREMENT_METHOD +# is set to lm-sensors. For example `w83795g-i2c-1-2f`. `${EMPTY}` if lm-sensors +# is not used or no filtering by sensor is needed +${FAN_RPM_MEASUREMENT_SENSOR}= ${EMPTY} +# Kernel module that might need to be enabled using modprobe in order to use +# the sensor. Dictionary keys: +# - module - name of the kernel module +# - force_id - optional force_id arg for modprobe +${FAN_RPM_MEASUREMENT_SENSOR_MODULE}= none +${FAN_RPM_MEASUREMENT_SENSOR_MODULE_FORCE_ID}= none + *** Keywords *** Power On Default diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index 0571c345a9..fa9a8689d8 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -111,9 +111,9 @@ ${TEMPERATURE_TEST_DURATION}= 3600 # Interval between the following readings in temperature measure tests ${TEMPERATURE_TEST_MEASURE_INTERVAL}= 1 # Custom fan curve tests duration in minutes -${CUSTOM_FAN_CURVE_TEST_DURATION}= 30 +${CUSTOM_FAN_CURVE_TEST_DURATION}= 3 # Interval between the following readings in custom fan curve tests -${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}= 1 +${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}= 0.1 # Maximum fails during during performing test suite usb-boot.robot ${ALLOWED_FAILS_USB_BOOT}= 0 # Maximum fails during during performing test suite usb-detect.robot diff --git a/platform-configs/include/protectli-vp66xx.robot b/platform-configs/include/protectli-vp66xx.robot index 6543c54b83..e6af8fcd75 100644 --- a/platform-configs/include/protectli-vp66xx.robot +++ b/platform-configs/include/protectli-vp66xx.robot @@ -28,3 +28,28 @@ ${ETHERNET_ID}= 8086:125c ${CUSTOM_FAN_CURVE_PERFORMANCE_MODE_SUPPORT}= ${TRUE} ${CUSTOM_FAN_CURVE_SILENT_MODE_SUPPORT}= ${TRUE} ${CUSTOM_FAN_CURVE_OFF_MODE_SUPPORT}= ${TRUE} + +# Variables used in lib/sensors to determine platform-specific methods of +# measuring temperatures, fans etc. + +# Can be one of {`lm-sensors`, `hwmon`, `none`} +${CPU_TEMPERATURE_MEASUREMENT_METHOD}= lm-sensors +# Has to be set if cpu temperature method is hwmon +${CPU_TEMPERATURE_MEASUREMENT_HWMON_PATH}= none +# Can be one of {`hwmon`, `system76-acpi`, `none`} +${FAN_PWM_MEASUREMENT_METHOD}= none +# Has to be set if PWM measurement method is hwmon +${FAN_PWM_MEASUREMENT_HWMON_PATH}= none + +# Can be one of {`lm-sensors`, `none`} +${FAN_RPM_MEASUREMENT_METHOD}= lm-sensors +# The name of the sensor in `sensors` command if FAN_RPM_MEASUREMENT_METHOD +# is set to lm-sensors. For example `w83795g-i2c-1-2f`. `none` if lm-sensors +# is not used +${FAN_RPM_MEASUREMENT_SENSOR}= it8786-isa-0a20 +# Kernel module that might need to be enabled using modprobe in order to use +# the sensor. Dictionary keys: +# - module - name of the kernel module +# - force_id - optional force_id arg for modprobe +${FAN_RPM_MEASUREMENT_SENSOR_MODULE}= it87 +${FAN_RPM_MEASUREMENT_SENSOR_MODULE_FORCE_ID}= 0x8786 diff --git a/platform-configs/raptor-cs_talos2.robot b/platform-configs/raptor-cs_talos2.robot index fc7e87c708..ebddd7ae3e 100644 --- a/platform-configs/raptor-cs_talos2.robot +++ b/platform-configs/raptor-cs_talos2.robot @@ -189,6 +189,28 @@ ${STABILITY_DETECTION_WARMBOOT_ITERATIONS}= 2 ${STABILITY_DETECTION_REBOOT_ITERATIONS}= 5 ${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 +# Variables used in lib/sensors to determine platform-specific methods of +# measuring temperatures, fans etc. + +# Can be one of {`lm-sensors`, `hwmon`, `none`} +${CPU_TEMPERATURE_MEASUREMENT_METHOD}= lm-sensors +# Can be one of {`hwmon`, `system76-acpi`, `none`} +${FAN_PWM_MEASUREMENT_METHOD}= none +# Has to be set if PWM measurement method is hwmon +${FAN_PWM_MEASUREMENT_HWMON_PATH}= none + +# Can be one of {`lm-sensors`, `none`} +${FAN_RPM_MEASUREMENT_METHOD}= lm-sensors +# The name of the sensor in `sensors` command if FAN_RPM_MEASUREMENT_METHOD +# is set to lm-sensors. For example `w83795g-i2c-1-2f`. `none` if lm-sensors +# is not used +${FAN_RPM_MEASUREMENT_SENSOR}= w83795g-i2c-1-2f +# Kernel module that might need to be enabled using modprobe in order to use +# the sensor. Dictionary keys: +# - module - name of the kernel module +# - force_id - optional force_id arg for modprobe +&{FAN_RPM_MEASUREMENT_SENSOR_MODULE}= module=w83795 + *** Keywords *** Get Firmware Version From Coreboot File From a7ef62a5236203d9ad21045f55bb8e90476c1c22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 17 Dec 2024 13:59:30 +0100 Subject: [PATCH 111/416] cpu-fan-speed-measure.robot: Use lib/sensors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś cpu-fan-speed-measure.robot: Use lib/sensors Signed-off-by: Filip Gołaś custom-fan-curve.robot: Use lib/sensors Signed-off-by: Filip Gołaś --- .../coreboot-fan-control.robot | 19 +++++--- .../cpu-fan-speed-measure.robot | 4 +- dasharo-performance/custom-fan-curve.robot | 45 +++++-------------- 3 files changed, 25 insertions(+), 43 deletions(-) diff --git a/dasharo-compatibility/coreboot-fan-control.robot b/dasharo-compatibility/coreboot-fan-control.robot index 718b91e539..a9bbd6e455 100644 --- a/dasharo-compatibility/coreboot-fan-control.robot +++ b/dasharo-compatibility/coreboot-fan-control.robot @@ -11,6 +11,7 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot +Resource ../lib/sensors.robot # TODO: # - document which setup/teardown keywords to use and what are they doing @@ -33,7 +34,9 @@ CFN001.001 CPU temperature and fan speed can be read (Debian) Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User - ${rpm} ${temperature}= Get CPU Temperature And CPU Fan Speed + ${rpm}= Get Fan RPM + ${temperature}= Get CPU Temperature CURRENT + # ${rpm} ${temperature}= Get CPU Temperature And CPU Fan Speed IF ${rpm}==${0} FAIL Fan speed not measured IF ${temperature}==${0} FAIL Temperature not measured @@ -51,20 +54,24 @@ CFN002.001 CPU fan speed increases if the temperature rises (Debian) # start of the test case while waiting for the temperature and fan speed # drop. FOR ${iteration} IN RANGE 0 ${COOLING_PROCEDURE_ITERATIONS} - ${rpm} ${temperature}= Get CPU Temperature And CPU Fan Speed + ${rpm}= Get Fan RPM + ${temperature}= Get CPU Temperature CURRENT IF ${rpm}>=3000 or ${temperature}>=40 Sleep 60s ELSE BREAK END END - ${rpm_1} ${temperature_1}= Get CPU Temperature And CPU Fan Speed - Telnet.Execute Command stress-ng --cpu 16 --io 8 --vm 4 --vm-bytes 4G --timeout 60s --metrics + ${rpm_1}= Get Fan RPM + ${temperature_1}= Get CPU Temperature CURRENT + Execute Command In Terminal stress-ng --cpu 16 --io 8 --vm 4 --vm-bytes 4G --timeout 60s --metrics # Due to the stress test CPU temperature should increase. - ${rpm_2} ${temperature_2}= Get CPU Temperature And CPU Fan Speed + ${rpm_2}= Get Fan RPM + ${temperature_2}= Get CPU Temperature CURRENT Sleep 240s # Due to the temperature increasing fan speed should rise. - ${rpm_3} ${temperature_3}= Get CPU Temperature And CPU Fan Speed + ${rpm_3}= Get Fan RPM + ${temperature_3}= Get CPU Temperature CURRENT IF ${temperature_1}>=${temperature_2} FAIL Temperature not increased END diff --git a/dasharo-compatibility/cpu-fan-speed-measure.robot b/dasharo-compatibility/cpu-fan-speed-measure.robot index 185bf5cc21..79b2480c0e 100644 --- a/dasharo-compatibility/cpu-fan-speed-measure.robot +++ b/dasharo-compatibility/cpu-fan-speed-measure.robot @@ -31,7 +31,7 @@ FAN001.001 CPU fan speed measure Power On Login To Linux Switch To Root User - Prepare Lm-sensors - ${output}= Get RPM Value From System76 Acpi + Prepare Sensors + ${output}= Get Fan RPM Should Not Be Empty ${output} Should Not Be Equal ${output} 0 diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index c3d8641a27..b7ca567f7e 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -11,7 +11,7 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Variables ../platform-configs/fan-curve-config.yaml +Resource ../lib/sensors.robot # TODO: # - document which setup/teardown keywords to use and what are they doing @@ -36,14 +36,14 @@ CFC001.001 Custom fan curve silent profile measure (Ubuntu) Power On Login To Linux Switch To Root User - Prepare Lm-sensors + Prepare Sensors Stress Test ${CUSTOM_FAN_CURVE_TEST_DURATION}m ${timer}= Convert To Integer 0 FOR ${i} IN RANGE (${CUSTOM_FAN_CURVE_TEST_DURATION} / ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}) Log To Console \n ---------------------------------------------------------------- Log To Console ${timer} min. - ${temperature}= Get Temperature CURRENT - ${pwm}= Get PWM Value + ${temperature}= Get CPU Temperature CURRENT + ${pwm}= Get Fan PWM ${expected_speed_percentage}= Calculate Speed Percentage Based On Temperature In Silent Mode ... ${temperature} Calculate Smoothing ${pwm} ${expected_speed_percentage} @@ -63,14 +63,14 @@ CFC002.001 Custom fan curve performance profile measure (Ubuntu) Power On Login To Linux Switch To Root User - Prepare Lm-sensors + Prepare Sensors Stress Test ${CUSTOM_FAN_CURVE_TEST_DURATION}m ${timer}= Convert To Integer 0 FOR ${i} IN RANGE (${CUSTOM_FAN_CURVE_TEST_DURATION} / ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}) Log To Console \n ---------------------------------------------------------------- Log To Console ${timer} min. - ${temperature}= Get Temperature CURRENT - ${pwm}= Get PWM Value + ${temperature}= Get CPU Temperature CURRENT + ${pwm}= Get Fan PWM ${expected_speed_percentage}= Calculate Speed Percentage Based On Temperature In Performance Mode ... ${temperature} Calculate Smoothing ${pwm} ${expected_speed_percentage} @@ -92,15 +92,14 @@ CFC003.001 Custom fan curve OFF profile measure (Ubuntu) Power On Login To Linux Switch To Root User - Prepare Lm-sensors - Prepare IT87 + Prepare Sensors Stress Test ${CUSTOM_FAN_CURVE_TEST_DURATION}m ${timer}= Convert To Integer 0 FOR ${i} IN RANGE (${CUSTOM_FAN_CURVE_TEST_DURATION} / ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}) Log To Console \n ---------------------------------------------------------------- Log To Console ${timer} min. - ${temperature}= Get Temperature IT87 - ${rpm}= Get RPM IT87 + ${temperature}= Get CPU Temperature CURRENT + ${rpm}= Get Fan RPM IF ${rpm} > 300 Log RPM: ${rpm} WARN Log To Console RPM: ${rpm} WARN @@ -117,30 +116,6 @@ CFC003.001 Custom fan curve OFF profile measure (Ubuntu) *** Keywords *** -Get Temperature IT87 - [Documentation] Get temp1 temperature from lmsensors using IT87 which - ... is used to determine the fans' RPM - - ${temperature}= Execute Linux Command - ... sensors it8786-isa-0a20 2> /dev/null | grep -E 'temp1' | tr -s ' ' | cut -d ' ' -f2 - ${temperature}= Remove String ${temperature} + - ${temperature}= Remove String ${temperature} ° - ${temperature}= Remove String ${temperature} C - ${temperature_value}= Convert To Number ${temperature} - RETURN ${temperature_value} - -Get RPM IT87 - [Documentation] Get fan1 RPM from lmsensors using IT87 - ${rpm}= Execute Linux Command - ... sensors it8786-isa-0a20 2> /dev/null | grep -E 'fan1' | tr -s ' ' | cut -d ' ' -f2 - ${rpm_value}= Convert To Integer ${rpm} - RETURN ${rpm_value} - -Prepare IT87 - [Documentation] Loads the IT87 kernel module which can be used to monitor - ... RPM using lmsensorss - Execute Linux Command modprobe it87 force_id=0x8786 - Calculate Speed Percentage Based On Temperature [Documentation] Calculates the expected speed percentage by config file ... for a given temperature based on an algorithm and a From caf5085467df557c9b2a6c9877ce0486688230ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 9 Jan 2025 18:51:30 +0100 Subject: [PATCH 112/416] platform-configs: Add custom fan curve for vp66xx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś platform-configs: Move sensor configs to yaml files Signed-off-by: Filip Gołaś lib/sensors: Use new yaml sensor configs Signed-off-by: Filip Gołaś sensors configs: Remove unnecessary lists Signed-off-by: Filip Gołaś platform-configs/sensors curves: Add tolerances Signed-off-by: Filip Gołaś platform-configs/include/sensors: Set default RPMS to always valid Signed-off-by: Filip Gołaś configs sensors rename vp66xx -> vpxxxx Signed-off-by: Filip Gołaś vpxxxx-fan-curve-config: More accurate RPM curves Signed-off-by: Filip Gołaś --- lib/sensors.robot | 17 +++-- platform-configs/include/default.robot | 25 +------ .../include/protectli-common.robot | 2 +- .../include/protectli-vp66xx.robot | 24 +------ .../sensors/default-fan-curve-config.yaml | 71 +++++++++++++++++++ .../sensors/default-sensors-config.yaml | 41 +++++++++++ .../protectli-vpxxxx-fan-curve-config.yaml | 60 ++++++++++++++++ .../protectli-vpxxxx-sensors-config.yaml | 22 ++++++ 8 files changed, 207 insertions(+), 55 deletions(-) create mode 100644 platform-configs/include/sensors/default-fan-curve-config.yaml create mode 100644 platform-configs/include/sensors/default-sensors-config.yaml create mode 100644 platform-configs/include/sensors/protectli-vpxxxx-fan-curve-config.yaml create mode 100644 platform-configs/include/sensors/protectli-vpxxxx-sensors-config.yaml diff --git a/lib/sensors.robot b/lib/sensors.robot index 59e0bedcd1..033feea316 100644 --- a/lib/sensors.robot +++ b/lib/sensors.robot @@ -59,8 +59,8 @@ Get CPU Temperature ${temperature}= Convert To Number ${temperature} RETURN ${temperature} ELSE - Fail Wrong platform configuration. CPU_TEMPERATURE_MEASUREMENT_METHOD - ... is of unknown value ${CPU_TEMPERATURE_MEASUREMENT_METHOD}. + Fail Wrong platform configuration. CPU_TEMPERATURE_MEASUREMENT["method"] + ... is of unknown value ${cpu_temperature_measurement_method}. END Get Fan PWM @@ -76,6 +76,9 @@ Get Fan PWM ... cat ${fan_pwm_measurement_hwmon_path} ${pwm}= Convert To Number ${pwm} RETURN ${pwm} + ELSE + Fail Wrong platform configuration. FAN_RPM_MEASUREMENT["method"] is + ... of unknown value ${fan_pwm_measurement_method}. END Get Fan RPM @@ -85,13 +88,9 @@ Get Fan RPM ${fan_rpm_measurement_sensor}= Get From Dictionary ${FAN_RPM_MEASUREMENT} lm_sensors_sensor_name IF '''${fan_rpm_measurement_sensor}''' != '''none''' ${rpm}= Execute Linux Command - ... sensors ${FAN_RPM_MEASUREMENT_SENSOR} 2> /dev/null | grep -E 'fan1' | tr -s ' ' | cut -d ' ' -f2 + ... sensors ${fan_rpm_measurement_sensor} 2> /dev/null | grep -E 'fan1' | tr -s ' ' | cut -d ' ' -f2 ${rpm}= Convert To Integer ${rpm} RETURN ${rpm} - ELSE - Fail FAN_RPM_MEASUREMENT_METHOD "${FAN_RPM_MEASUREMENT_METHOD}" - ... requires giving a valid FAN_RPM_MEASUREMENT_SENSOR, - ... currently set to ${FAN_RPM_MEASUREMENT_SENSOR} END ELSE IF '''${fan_rpm_measurement_method}''' == '''system76-acpi''' ${speed}= Execute Command In Terminal sensors | grep "CPU fan" @@ -103,8 +102,8 @@ Get Fan RPM ... none. Either it should be changed or this test should not be ... performed on this platform. ELSE - Fail Wrong platform configuration. FAN_RPM_MEASUREMENT_METHOD is - ... of unknown value ${FAN_RPM_MEASUREMENT_METHOD}. + Fail Wrong platform configuration. FAN_RPM_MEASUREMENT["method"] is + ... of unknown value ${fan_rpm_measurement_method}. END Is Fan PWM Measurement Supported diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index a8716c17dd..f5bb5301ca 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -276,29 +276,8 @@ ${ETH_PORTS}= ${EMPTY} # Variables used in lib/sensors to determine platform-specific methods of # measuring temperatures, fans etc. - -# Can be one of {`lm-sensors`, `hwmon`, `none`} -${CPU_TEMPERATURE_MEASUREMENT_METHOD}= lm-sensors -# Has to be set if cpu temperature method is hwmon -${CPU_TEMPERATURE_MEASUREMENT_HWMON_PATH}= none - -# Can be one of {`hwmon`, `none`} -${FAN_PWM_MEASUREMENT_METHOD}= hwmon -# Has to be set if PWM measurement method is hwmon -${FAN_PWM_MEASUREMENT_HWMON_PATH}= /sys/devices/LNXSYSTM\:00/LNXSYBUS\:00/17761776\:00/hwmon - -# Can be one of {`lm-sensors`, `system76-acpi`, `none`} -${FAN_RPM_MEASUREMENT_METHOD}= lm-sensors -# The name of the sensor in `sensors` command if FAN_RPM_MEASUREMENT_METHOD -# is set to lm-sensors. For example `w83795g-i2c-1-2f`. `${EMPTY}` if lm-sensors -# is not used or no filtering by sensor is needed -${FAN_RPM_MEASUREMENT_SENSOR}= ${EMPTY} -# Kernel module that might need to be enabled using modprobe in order to use -# the sensor. Dictionary keys: -# - module - name of the kernel module -# - force_id - optional force_id arg for modprobe -${FAN_RPM_MEASUREMENT_SENSOR_MODULE}= none -${FAN_RPM_MEASUREMENT_SENSOR_MODULE_FORCE_ID}= none +${SENSORS_CONFIG_FILE}= include/sensors/default-sensors-config.yaml +${CUSTOM_FAN_CURVE_FILE}= include/sensors/default-fan-curve-config.yaml *** Keywords *** diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index fa9a8689d8..65d5d00922 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -113,7 +113,7 @@ ${TEMPERATURE_TEST_MEASURE_INTERVAL}= 1 # Custom fan curve tests duration in minutes ${CUSTOM_FAN_CURVE_TEST_DURATION}= 3 # Interval between the following readings in custom fan curve tests -${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}= 0.1 +${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}= 0.05 # Maximum fails during during performing test suite usb-boot.robot ${ALLOWED_FAILS_USB_BOOT}= 0 # Maximum fails during during performing test suite usb-detect.robot diff --git a/platform-configs/include/protectli-vp66xx.robot b/platform-configs/include/protectli-vp66xx.robot index e6af8fcd75..3c3885d3ce 100644 --- a/platform-configs/include/protectli-vp66xx.robot +++ b/platform-configs/include/protectli-vp66xx.robot @@ -31,25 +31,5 @@ ${CUSTOM_FAN_CURVE_OFF_MODE_SUPPORT}= ${TRUE} # Variables used in lib/sensors to determine platform-specific methods of # measuring temperatures, fans etc. - -# Can be one of {`lm-sensors`, `hwmon`, `none`} -${CPU_TEMPERATURE_MEASUREMENT_METHOD}= lm-sensors -# Has to be set if cpu temperature method is hwmon -${CPU_TEMPERATURE_MEASUREMENT_HWMON_PATH}= none -# Can be one of {`hwmon`, `system76-acpi`, `none`} -${FAN_PWM_MEASUREMENT_METHOD}= none -# Has to be set if PWM measurement method is hwmon -${FAN_PWM_MEASUREMENT_HWMON_PATH}= none - -# Can be one of {`lm-sensors`, `none`} -${FAN_RPM_MEASUREMENT_METHOD}= lm-sensors -# The name of the sensor in `sensors` command if FAN_RPM_MEASUREMENT_METHOD -# is set to lm-sensors. For example `w83795g-i2c-1-2f`. `none` if lm-sensors -# is not used -${FAN_RPM_MEASUREMENT_SENSOR}= it8786-isa-0a20 -# Kernel module that might need to be enabled using modprobe in order to use -# the sensor. Dictionary keys: -# - module - name of the kernel module -# - force_id - optional force_id arg for modprobe -${FAN_RPM_MEASUREMENT_SENSOR_MODULE}= it87 -${FAN_RPM_MEASUREMENT_SENSOR_MODULE_FORCE_ID}= 0x8786 +${SENSORS_CONFIG_FILE}= include/sensors/protectli-vpxxxx-sensors-config.yaml +${CUSTOM_FAN_CURVE_FILE}= include/sensors/protectli-vpxxxx-fan-curve-config.yaml diff --git a/platform-configs/include/sensors/default-fan-curve-config.yaml b/platform-configs/include/sensors/default-fan-curve-config.yaml new file mode 100644 index 0000000000..82a861f432 --- /dev/null +++ b/platform-configs/include/sensors/default-fan-curve-config.yaml @@ -0,0 +1,71 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +# example_temperature_curve: +# # range of temperatures for which this linear function applies +# - range: [0, 65] +# # range of values in this temperature range, can be undefined if +# # measuring pwm is not supported on given platform +# evaluation_pwm: [20, 25] +# # range of values in this temperature range, can be undefined if +# # measuring pwm is not supported on given platform +# # accepted tolerance of pwm values - by how much can it differ from the +# # expected value +# tolerance_pwm: 6 +# evaluation_rpm: [0, 3000] +# # accepted tolerance of rpm values - by how much can it differ from the +# # expected value +# tolerance_rpm: 100 +# # Next linear function for next temperature range. The temperature ranges +# # must not overlap and be sorted in an ascending order +# - range: [65, 70] +# evaluation_pwm: [25, 35] +# tolerance_pwm: 6 +# evaluation_rpm: [0, 3000] +# tolerance_rpm: 100 + +temperature_curve_silent: + - range: [0, 65] + evaluation_pwm: [20, 25] + tolerance_pwm: 6 + evaluation_rpm: [0, 0] + tolerance_rpm: 10000 + + - range: [65, 75] + evaluation_pwm: [25, 35] + tolerance_pwm: 6 + evaluation_rpm: [0, 0] + tolerance_rpm: 10000 + + - range: [75, 100] + evaluation: [35, 100] + tolerance_pwm: 6 + evaluation_rpm: [0, 0] + tolerance_rpm: 10000 + +temperature_curve_performance: + - range: [0, 55] + evaluation_pwm: [25, 35] + tolerance_pwm: 6 + evaluation_rpm: [0, 0] + tolerance_rpm: 10000 + + - range: [55, 75] + evaluation_pwm: [35, 60] + tolerance_pwm: 6 + evaluation_rpm: [0, 0] + tolerance_rpm: 10000 + + - range: [75, 100] + evaluation_pwm: [60, 100] + tolerance_pwm: 6 + evaluation_rpm: [0, 0] + tolerance_rpm: 10000 + +temperature_curve_off: + - range: [0, 100] + evaluation_pwm: [0, 0] + tolerance_pwm: 100 + evaluation_rpm: [0, 0] + tolerance_rpm: 10000 diff --git a/platform-configs/include/sensors/default-sensors-config.yaml b/platform-configs/include/sensors/default-sensors-config.yaml new file mode 100644 index 0000000000..ce06e74211 --- /dev/null +++ b/platform-configs/include/sensors/default-sensors-config.yaml @@ -0,0 +1,41 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +# example_sensor_measurement: +# # Can be one of {`lm-sensors`, `hwmon`, `system76-acpi`, `none`} depending on measured value and device +# - method: none +# # Abosule path to hwmon file representing the sensor +# # Has to be set if PWM measurement method is hwmon +# # example: /sys/devices/LNXSYSTM\:00/LNXSYBUS\:00/17761776\:00/hwmon/hwmon0/pwm1 +# hwmon_path: none +# # The name of the sensor in `sensors` command if method +# # is set to lm-sensors. For example `w83795g-i2c-1-2f`. `none` if lm-sensors +# # is not used or no filtering of the command output by sensor name is needed +# lm_sensors_sensor_name: none + +cpu_temperature_measurement: +# Can be one of {`lm-sensors`, `hwmon`, `none`} + method: lm-sensors + hwmon_path: none + lm_sensors_sensor_name: none + +fan_pwm_measurement: +# Can be one of {`hwmon`, `none`} + method: none + hwmon_path: none + lm_sensors_sensor_name: none + +fan_rpm_measurement: +# Can be one of {`lm-sensors`, `system76-acpi`, `none`} + method: none + hwmon_path: none + lm_sensors_sensor_name: none + +# Kernel modules that might need to be enabled using modprobe in order to use +# the sensors. +sensors_kernel_modules: + # name of the kernel module + - module: none + # optional force_id arg for modprobe + force_id: none diff --git a/platform-configs/include/sensors/protectli-vpxxxx-fan-curve-config.yaml b/platform-configs/include/sensors/protectli-vpxxxx-fan-curve-config.yaml new file mode 100644 index 0000000000..e6118285d3 --- /dev/null +++ b/platform-configs/include/sensors/protectli-vpxxxx-fan-curve-config.yaml @@ -0,0 +1,60 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +temperature_curve_silent: + - range: [0, 40] + evaluation_pwm: [0, 1] + tolerance_pwm: 6 + evaluation_rpm: [250, 250] + tolerance_rpm: 250 + + - range: [40, 50] + evaluation_pwm: [20, 35] + tolerance_pwm: 6 + evaluation_rpm: [700, 700] # Anywhere between 0 and 1100 + 300 tolerance + tolerance_rpm: 700 + + - range: [50, 85] + evaluation_pwm: [35, 100] + tolerance_pwm: 6 + evaluation_rpm: [1100, 2900] + tolerance_rpm: 300 + + - range: [85, 100] + evaluation_pwm: [100, 100] + tolerance_pwm: 6 + evaluation_rpm: [3100, 3100] + tolerance_rpm: 400 + +temperature_curve_performance: + - range: [0, 30] + evaluation_pwm: [0, 1] + tolerance_pwm: 6 + evaluation_rpm: [250, 250] + tolerance_rpm: 250 + + - range: [30, 40] + evaluation_pwm: [0, 40] + tolerance_pwm: 6 + evaluation_rpm: [800, 800] # Anywhere between 0 and 1400 + 200 tolerance + tolerance_rpm: 800 + + - range: [40, 75] + evaluation_pwm: [40, 100] + tolerance_pwm: 6 + evaluation_rpm: [1300, 3200] + tolerance_rpm: 300 + + - range: [75, 100] + evaluation_pwm: [100, 100] + tolerance_pwm: 6 + evaluation_rpm: [3100, 3100] + tolerance_rpm: 400 + +temperature_curve_off: + - range: [0, 100] + evaluation_pwm: [0, 1] + tolerance_pwm: 6 + evaluation_rpm: [250, 250] + tolerance_rpm: 150 diff --git a/platform-configs/include/sensors/protectli-vpxxxx-sensors-config.yaml b/platform-configs/include/sensors/protectli-vpxxxx-sensors-config.yaml new file mode 100644 index 0000000000..ff7ba4390a --- /dev/null +++ b/platform-configs/include/sensors/protectli-vpxxxx-sensors-config.yaml @@ -0,0 +1,22 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +cpu_temperature_measurement: + method: lm-sensors + hwmon_path: none + lm_sensors_sensor_name: none + +fan_pwm_measurement: + method: none + hwmon_path: none + lm_sensors_sensor_name: none + +fan_rpm_measurement: + method: lm-sensors + hwmon_path: none + lm_sensors_sensor_name: it8786-isa-0a20 + +sensors_kernel_modules: + - module: it87 + force_id: '0x8786' From 0b4bec9ed006576a23b6a89c509d450550310ce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 9 Jan 2025 18:56:33 +0100 Subject: [PATCH 113/416] custom-fan-curve.robot: Move common code to KW & generalize KWDS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To work using PWM or RPM depending on measurement of which is available Signed-off-by: Filip Gołaś custom-fan-curve.robot: Use tolerances & continue if exceeded Temperatures out of tolerances might still be useful or even acceptable as a pass with manual verification Signed-off-by: Filip Gołaś custom-fan-curve.robot: Move common test loop to local KW Signed-off-by: Filip Gołaś custom-fan-curve.robot: More logs Signed-off-by: Filip Gołaś custom-fan-curve.robot: Fail only on multiple invalid values in row Signed-off-by: Filip Gołaś --- dasharo-performance/custom-fan-curve.robot | 211 ++++++++++++++------- 1 file changed, 144 insertions(+), 67 deletions(-) diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index b7ca567f7e..60ffdef047 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -17,8 +17,10 @@ Resource ../lib/sensors.robot # - document which setup/teardown keywords to use and what are they doing # - go threough them and make sure they are doing what the name suggest (not # exactly the case right now) -Suite Setup Run Keyword +Suite Setup Run Keywords ... Prepare Test Suite +... AND +... Import Variables ${CURDIR}/../platform-configs/${CUSTOM_FAN_CURVE_FILE} Suite Teardown Run Keyword ... Log Out And Close Connection @@ -30,26 +32,12 @@ CFC001.001 Custom fan curve silent profile measure (Ubuntu) ... the defined values. Skip If not ${CUSTOM_FAN_CURVE_SILENT_MODE_SUPPORT} CFC001.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CFC001.001 not supported - Skip If "${FAN_PWM_MEASUREMENT_METHOD}" == "none" CFC001.001 not supported - Skip If "${CPU_TEMPERATURE_MEASUREMENT_METHOD}" == "none" CFC001.001 not supported - # Set UEFI Option FanCurveOption Silent + + Set UEFI Option FanCurveOption Silent Power On Login To Linux Switch To Root User - Prepare Sensors - Stress Test ${CUSTOM_FAN_CURVE_TEST_DURATION}m - ${timer}= Convert To Integer 0 - FOR ${i} IN RANGE (${CUSTOM_FAN_CURVE_TEST_DURATION} / ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}) - Log To Console \n ---------------------------------------------------------------- - Log To Console ${timer} min. - ${temperature}= Get CPU Temperature CURRENT - ${pwm}= Get Fan PWM - ${expected_speed_percentage}= Calculate Speed Percentage Based On Temperature In Silent Mode - ... ${temperature} - Calculate Smoothing ${pwm} ${expected_speed_percentage} - Sleep ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}m - ${timer}= Evaluate ${timer} + ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL} - END + Perform Custom Fan Curve Test silent CFC002.001 Custom fan curve performance profile measure (Ubuntu) [Documentation] Check whether the fan curve is configured correctly in @@ -57,104 +45,193 @@ CFC002.001 Custom fan curve performance profile measure (Ubuntu) ... the defined values. Skip If not ${CUSTOM_FAN_CURVE_PERFORMANCE_MODE_SUPPORT} CFC002.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CFC002.001 not supported - Skip If "${FAN_PWM_MEASUREMENT_METHOD}" == "none" CFC001.001 not supported - Skip If "${CPU_TEMPERATURE_MEASUREMENT_METHOD}" == "none" CFC001.001 not supported - # Set UEFI Option FanCurveOption Performance + + Set UEFI Option FanCurveOption Performance Power On Login To Linux Switch To Root User - Prepare Sensors - Stress Test ${CUSTOM_FAN_CURVE_TEST_DURATION}m - ${timer}= Convert To Integer 0 - FOR ${i} IN RANGE (${CUSTOM_FAN_CURVE_TEST_DURATION} / ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}) - Log To Console \n ---------------------------------------------------------------- - Log To Console ${timer} min. - ${temperature}= Get CPU Temperature CURRENT - ${pwm}= Get Fan PWM - ${expected_speed_percentage}= Calculate Speed Percentage Based On Temperature In Performance Mode - ... ${temperature} - Calculate Smoothing ${pwm} ${expected_speed_percentage} - Sleep ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}m - ${timer}= Evaluate ${timer} + ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL} - END + Perform Custom Fan Curve Test performance CFC003.001 Custom fan curve OFF profile measure (Ubuntu) [Documentation] Check whether the fan curve is configured correctly in ... silent profile and the fan spins up and down according to ... the defined values. Skip If not ${CUSTOM_FAN_CURVE_OFF_MODE_SUPPORT} CFC003.001 not supported - Skip If "${FAN_RPM_MEASUREMENT_METHOD}" == "none" CFC001.001 not supported - Skip If "${CPU_TEMPERATURE_MEASUREMENT_METHOD}" == "none" CFC001.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CFC003.001 not supported Set UEFI Option FanCurveOption Fans Off - Power On Login To Linux Switch To Root User + Perform Custom Fan Curve Test off + + +*** Keywords *** +Perform Custom Fan Curve Test + [Documentation] Performs a Custom Fan Curve test for a given profile + [Arguments] ${profile} + Prepare Sensors Stress Test ${CUSTOM_FAN_CURVE_TEST_DURATION}m ${timer}= Convert To Integer 0 + Sleep 5s + ${result}= Set Variable ${TRUE} + ${fails_in_a_row}= Set Variable 0 + FOR ${i} IN RANGE (${CUSTOM_FAN_CURVE_TEST_DURATION} / ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}) Log To Console \n ---------------------------------------------------------------- Log To Console ${timer} min. - ${temperature}= Get CPU Temperature CURRENT - ${rpm}= Get Fan RPM - IF ${rpm} > 300 - Log RPM: ${rpm} WARN - Log To Console RPM: ${rpm} WARN - Log TEMP: ${temperature} WARN - Log To Console TEMP: ${temperature} WARN + + ${new_result}= Verify Fan Speeds ${profile} + IF not ${result} and not ${new_result} + ${fails_in_a_row}= Evaluate ${fails_in_a_row}+1 + IF ${fails_in_a_row} > 1 + Fail Too many invalid fan speeds in a row + END ELSE - Log RPM: ${rpm} - Log TEMP: ${temperature} + ${fails_in_a_row}= Set Variable 0 END Sleep ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}m ${timer}= Evaluate ${timer} + ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL} END + IF not ${result} + Log Invalid fan speeds detected. Needs manual verification WARN + Log To Console Invalid fan speeds detected. Needs manual verification WARN + END + +Verify Fan Speeds + [Documentation] Measures PWM/RPM and compares to target values depending + ... on CPU temperature and a fan curve. Mode is a string and can be + ... either "performance", "silent" or "off" depending on the fan curve + ... to compare against. + [Arguments] ${mode} + ${pwm_support}= Is Fan PWM Measurement Supported + ${rpm_support}= Is Fan RPM Measurement Supported + IF ${pwm_support} + ${speed_unit}= Set Variable pwm + ${fan_speed}= Get Fan PWM + ELSE IF ${rpm_support} + ${speed_unit}= Set Variable rpm + ${fan_speed}= Get Fan RPM + ELSE + Log To Console + ... Invalid device configuration. CUSTOM_FAN_CURVE_X_MODE_SUPPORT is True, but fan speed measurement method is `none` + ... ERROR + Fail + END + + ${temperature}= Get CPU Temperature CURRENT + IF '${mode}' == 'silent' + ${expected_fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature In Silent Mode + ... ${temperature} ${speed_unit} + ELSE IF '${mode}' == 'performance' + ${expected_fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature In Performance Mode + ... ${temperature} ${speed_unit} + ELSE IF '${mode}' == 'off' + ${expected_fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature In Off Mode + ... ${temperature} ${speed_unit} + END + + ${speed_is_valid}= Verify With Tolerance + ... ${fan_speed} + ... ${expected_fan_speed} + ... ${speed_unit} + ... ${tolerance} + + Log To Console Temp: ${temperature} + Log To Console Fan Speed: ${fan_speed} + Log To Console Expected Speed: ${expected_fan_speed} + Log To Console Tolerance: ${tolerance} + IF not ${speed_is_valid} + Log Invalid fan speed detected WARN + Log To Console Invalid fan speed detected WARN + RETURN ${FALSE} + END + RETURN ${TRUE} + +Verify With Tolerance + [Documentation] Compares the actual and expected value of the fan speed, + ... taking tolerance into account. + [Arguments] ${fan_speed} ${expected_speed} ${fan_speed_unit} ${tolerance} + IF '${fan_speed_unit}' == 'pwm' + ${fan_speed}= Evaluate float(${fan_speed}/2.55) + END + + # RPM Measurements are not as precise as PWM. The margin of error has to be much larger. + IF '${fan_speed_unit}' == 'rpm' + ${smoothing}= Set Variable ${tolerance} + ELSE IF '${fan_speed_unit}' == 'pwm' and ${expected_speed} < 35 + ${smoothing}= Evaluate 1 + ELSE + ${smoothing}= Evaluate ${tolerance} + END + + ${high_limit}= Evaluate ${expected_speed}+${smoothing} + ${low_limit}= Evaluate ${expected_speed}-${smoothing} + ${result}= Evaluate ${low_limit} < ${fan_speed} < ${high_limit} + RETURN ${result} -*** Keywords *** Calculate Speed Percentage Based On Temperature [Documentation] Calculates the expected speed percentage by config file ... for a given temperature based on an algorithm and a - ... defined curve. - [Arguments] ${temperature} @{temperature_curve} - ${rpm}= Evaluate -1 + ... defined curve. Speed unit should be defined as "pwm" or "rpm" to + ... choose the curve unit. + [Arguments] ${temperature} ${speed_unit} @{temperature_curve} + + ${fan_speed}= Evaluate -1 FOR ${range_data} IN @{temperature_curve} ${min_temp} ${max_temp}= Get From Dictionary ${range_data} range - ${eval_min} ${eval_max}= Get From Dictionary ${range_data} evaluation - # if temperature is equal to start of the range then rpm value will be - # equal to minimal rpm for this range + ${eval_min} ${eval_max}= Get From Dictionary ${range_data} evaluation_${speed_unit} + ${tolerance}= Get From Dictionary ${range_data} tolerance_${speed_unit} + # if temperature is equal to start of the range then pwm value will be + # equal to minimal pwm for this range IF ${temperature} == ${min_temp} - ${rpm}= Evaluate float(${eval_min}) + ${fan_speed}= Evaluate float(${eval_min}) BREAK # if not check if the temperature is lower than maximum temperature in - # this range and if so, then calculate rpm by finding a linear function + # this range and if so, then calculate pwm by finding a linear function # and its ordinate ELSE IF ${temperature} < ${max_temp} - ${rpm}= Evaluate + ${fan_speed}= Evaluate ... float(((${eval_max}-${eval_min})/(${max_temp}-${min_temp}))*(${temperature}-${min_temp})+${eval_min}) BREAK END END - IF ${rpm} == -1 FAIL - RETURN ${rpm} + IF ${fan_speed} == -1 FAIL + RETURN ${fan_speed} ${tolerance} Calculate Speed Percentage Based On Temperature In Performance Mode - [Documentation] Calculates the expected speed percentage in performance + [Documentation] Calculates the expected speed in performance ... mode for a given temperature based on an algorithm and a ... defined curve. - [Arguments] ${temperature} - ${rpm}= Calculate Speed Percentage Based On Temperature ${temperature} @{TEMPERATURE_CURVE_PERFORMANCE} - RETURN ${rpm} + [Arguments] ${temperature} ${speed_unit} + ${fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature + ... ${temperature} + ... ${speed_unit} + ... @{TEMPERATURE_CURVE_PERFORMANCE} + RETURN ${fan_speed} ${tolerance} Calculate Speed Percentage Based On Temperature In Silent Mode - [Documentation] Calculates the expected speed percentage in silent + [Documentation] Calculates the expected speed in silent + ... mode for a given temperature based on an algorithm and a + ... defined curve. + [Arguments] ${temperature} ${speed_unit} + ${fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature + ... ${temperature} + ... ${speed_unit} + ... @{TEMPERATURE_CURVE_SILENT} + RETURN ${fan_speed} ${tolerance} + +Calculate Speed Percentage Based On Temperature In Off Mode + [Documentation] Calculates the expected speed in off ... mode for a given temperature based on an algorithm and a ... defined curve. - [Arguments] ${temperature} - ${rpm}= Calculate Speed Percentage Based On Temperature ${temperature} @{TEMPERATURE_CURVE_SILENT} - RETURN ${rpm} + [Arguments] ${temperature} ${speed_unit} + ${fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature + ... ${temperature} + ... ${speed_unit} + ... @{TEMPERATURE_CURVE_OFF} + RETURN ${fan_speed} ${tolerance} From 34ff65dd7a41636cdadf63b1a8458680c6436132 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 13 Jan 2025 14:18:33 +0100 Subject: [PATCH 114/416] lib/options/dcu.robot: Fix using terminal without ssh session MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/options/options-lib_dcu.robot | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index 23fc5ef457..48782512ab 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -19,14 +19,17 @@ Set UEFI Option [Documentation] Set an UEFI option to a value. ... The device has to be ON and logged in to Ubuntu [Arguments] ${option_name} ${value} + Login To Linux + Switch To Root User DCU Variable Set UEFI Option In DUT ${option_name} ${value} - Execute Reboot Command Sleep 20s Get UEFI Option [Documentation] Read an UEFI option value. ... The device has to be ON and logged in to Ubuntu [Arguments] ${option_name} + Login To Linux + Switch To Root User ${out}= DCU Variable Get UEFI Option From DUT ${option_name} RETURN ${out} From 71c8898528d7161b297b41339773591201c0ec62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 17 Dec 2024 14:01:24 +0100 Subject: [PATCH 115/416] keywords.robot & CPU-performance-lib: remove unused kwds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- keywords.robot | 83 ----------------------------------- lib/CPU-performance-lib.robot | 9 ++-- 2 files changed, 4 insertions(+), 88 deletions(-) diff --git a/keywords.robot b/keywords.robot index ef93ef3b72..51df6e04ad 100644 --- a/keywords.robot +++ b/keywords.robot @@ -434,26 +434,6 @@ Get Current CONFIG Item Param ${device}= Get Current CONFIG Item ${item} RETURN ${device.${param}} -Prepare Lm-sensors - [Documentation] Install lm-sensors and probe sensors. - Detect Or Install Package lm-sensors - Execute Command In Terminal sudo sensors-detect --auto - IF '${PLATFORM}' == 'raptor-cs_talos2' - Execute Command In Terminal modprobe w83795 - END - -Get Fan Speed - [Documentation] Returns current fan speed as int. - # Detect or Install Package lm-sensors - # Execute Command In Terminal yes | sudo sensors-detect - # Execute Command In Terminal modprobe w83795 - ${speed}= Execute Command In Terminal sensors | grep fan1 - ${speed}= Get Lines Containing String ${speed} RPM) - ${speed_split}= Split String ${speed} - ${rpm}= Get From List ${speed_split} 1 - ${rpm}= Convert To Number ${rpm} - RETURN ${rpm} - Prepare Test Suite [Documentation] Keyword prepares Test Suite by importing specific ... platform configuration keywords and variables and @@ -720,25 +700,6 @@ Get USB Devices Windows ${out}= Execute Command In Terminal Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' } RETURN ${out} -Get CPU Temperature And CPU Fan Speed - [Documentation] Get the current CPU temperature in Celsius degrees and - ... the current CPU fan speed in rpms. - ${output}= Telnet.Execute Command sensors w83795g-i2c-1-2f |grep fan1 -A 16 - ${rpm}= Get Lines Containing String ${output} fan1 - ${rpm}= Split String ${rpm} ${SPACE} - ${rpm}= Get Substring ${rpm} -8 -7 - ${rpm}= Get From List ${rpm} 0 - ${rpm_value}= Convert To Integer ${rpm} - ${temperature}= Get Lines Containing String ${output} temp7 - ${temperature}= Split String ${temperature} ${SPACE} - ${temperature}= Get Substring ${temperature} -8 -7 - ${temperature}= Get From List ${temperature} 0 - ${temperature}= Remove String ${temperature} + - ${temperature}= Remove String ${temperature} ° - ${temperature}= Remove String ${temperature} C - ${temperature_value}= Convert To Number ${temperature} - RETURN ${rpm_value} ${temperature_value} - Execute Linux Command Without Output [Documentation] Execute linux command over serial console. Do not return ... standard output. There is one optional argument. The @@ -1469,50 +1430,6 @@ Identify Path To USB ${path_to_usb}= Get From List ${split} 2 RETURN ${path_to_usb} -Calculate Smoothing - [Documentation] Compares the actual and expected value of the fan speed, - ... taking smoothing into account. - [Arguments] ${pwm} ${expected_speed_percentage} - ${pwm}= Evaluate float(${pwm}/2.55) - IF ${expected_speed_percentage} < 35 - ${smoothing}= Evaluate 1 - ELSE - ${smoothing}= Evaluate 6 - END - ${high_limit}= Evaluate ${expected_speed_percentage}+${smoothing} - ${low_limit}= Evaluate ${expected_speed_percentage}-${smoothing} - Log To Console \n ---------------------------------------------------------------- - Log To Console From PWM: ${pwm}% - Log To Console From Temp: ${expected_speed_percentage}% - Should Be True ${low_limit} < ${pwm} < ${high_limit} - -Get PWM Value - [Documentation] Returns current PWN value from hwmon. - # ../hwmon/hwmonX/pwm{1,2} - ${hwmon}= Execute Command In Terminal - ... ls /sys/devices/LNXSYSTM\:00/LNXSYBUS\:00/17761776\:00/hwmon | grep hwmon - ${pwm}= Execute Command In Terminal cat /sys/devices/LNXSYSTM:00/LNXSYBUS:00/17761776:00/hwmon/${hwmon}/pwm1 - ${pwm}= Convert To Number ${pwm} - RETURN ${pwm} - -Get Temperature CURRENT - [Documentation] Get current temperature from hwmon. - ${hwmon}= Execute Command In Terminal - ... ls /sys/devices/LNXSYSTM\:00/LNXSYBUS\:00/17761776\:00/hwmon | grep hwmon - ${temperature}= Execute Command In Terminal - ... cat /sys/devices/LNXSYSTM:00/LNXSYBUS:00/17761776:00/hwmon/${hwmon}/temp1_input - ${temperature}= Evaluate ${temperature[:2]} - ${temperature}= Convert To Number ${temperature} - RETURN ${temperature} - -Get RPM Value From System76 Acpi - [Documentation] Returns current RPM value of CPU fan form driver - ... system76_acpi. - ${speed}= Execute Command In Terminal sensors | grep "CPU fan" - ${speed_split}= Split String ${speed} - ${rpm}= Get From List ${speed_split} 2 - RETURN ${rpm} - Get Current CONFIG List Param [Documentation] Returns current CONFIG list parameters specified in the ... arguments. diff --git a/lib/CPU-performance-lib.robot b/lib/CPU-performance-lib.robot index 6bc2326fb5..f2fce9f630 100644 --- a/lib/CPU-performance-lib.robot +++ b/lib/CPU-performance-lib.robot @@ -1,3 +1,7 @@ +*** Settings *** +Resource sensors.robot + + *** Keywords *** Get CPU Frequency MAX [Documentation] Get max CPU Frequency. @@ -21,11 +25,6 @@ Get CPU Frequency MIN ${freq}= Evaluate ${freq}-100 RETURN ${freq} -Get CPU Temperature CURRENT - [Documentation] Get current CPU temperature. - ${temperature}= Execute Command In Terminal sensors 2>/dev/null | awk -F '[+°]' '/Package id 0:/ {printf $2}' - RETURN ${temperature} - Get CPU Frequencies In Ubuntu [Documentation] Get all CPU frequencies in Ubuntu OS. Keyword returns ... list of current CPU frequencies From 873a82ac46e59c3e064aef2740fb8579e6591849 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 5 Feb 2025 11:42:15 +0100 Subject: [PATCH 116/416] lib/sensors: Rename Get CPU Temperature CURRENT -> Get CPU Temperature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/coreboot-fan-control.robot | 11 +++++------ dasharo-compatibility/cpu-throttling.robot | 2 +- dasharo-performance/cpu-temperature.robot | 4 ++-- dasharo-performance/custom-fan-curve.robot | 2 +- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/dasharo-compatibility/coreboot-fan-control.robot b/dasharo-compatibility/coreboot-fan-control.robot index a9bbd6e455..c62dd112a5 100644 --- a/dasharo-compatibility/coreboot-fan-control.robot +++ b/dasharo-compatibility/coreboot-fan-control.robot @@ -35,8 +35,7 @@ CFN001.001 CPU temperature and fan speed can be read (Debian) Login To Linux Switch To Root User ${rpm}= Get Fan RPM - ${temperature}= Get CPU Temperature CURRENT - # ${rpm} ${temperature}= Get CPU Temperature And CPU Fan Speed + ${temperature}= Get CPU Temperature IF ${rpm}==${0} FAIL Fan speed not measured IF ${temperature}==${0} FAIL Temperature not measured @@ -55,7 +54,7 @@ CFN002.001 CPU fan speed increases if the temperature rises (Debian) # drop. FOR ${iteration} IN RANGE 0 ${COOLING_PROCEDURE_ITERATIONS} ${rpm}= Get Fan RPM - ${temperature}= Get CPU Temperature CURRENT + ${temperature}= Get CPU Temperature IF ${rpm}>=3000 or ${temperature}>=40 Sleep 60s ELSE @@ -63,15 +62,15 @@ CFN002.001 CPU fan speed increases if the temperature rises (Debian) END END ${rpm_1}= Get Fan RPM - ${temperature_1}= Get CPU Temperature CURRENT + ${temperature_1}= Get CPU Temperature Execute Command In Terminal stress-ng --cpu 16 --io 8 --vm 4 --vm-bytes 4G --timeout 60s --metrics # Due to the stress test CPU temperature should increase. ${rpm_2}= Get Fan RPM - ${temperature_2}= Get CPU Temperature CURRENT + ${temperature_2}= Get CPU Temperature Sleep 240s # Due to the temperature increasing fan speed should rise. ${rpm_3}= Get Fan RPM - ${temperature_3}= Get CPU Temperature CURRENT + ${temperature_3}= Get CPU Temperature IF ${temperature_1}>=${temperature_2} FAIL Temperature not increased END diff --git a/dasharo-compatibility/cpu-throttling.robot b/dasharo-compatibility/cpu-throttling.robot index bcbd11730f..b3fedc708f 100644 --- a/dasharo-compatibility/cpu-throttling.robot +++ b/dasharo-compatibility/cpu-throttling.robot @@ -56,5 +56,5 @@ THR002.001 Try to enter a threshold value within the limits and verify in Ubuntu # Wait until the stress load gets to "heat up" the CPU Sleep 10 ${out}= Execute Command In Terminal sensors - ${temperature}= Get CPU Temperature CURRENT + ${temperature}= Get CPU Temperature Should Be True ${temperature} < 73 # needs a bit of a margin diff --git a/dasharo-performance/cpu-temperature.robot b/dasharo-performance/cpu-temperature.robot index d1811e13ca..adc3124961 100644 --- a/dasharo-performance/cpu-temperature.robot +++ b/dasharo-performance/cpu-temperature.robot @@ -131,7 +131,7 @@ CPU Temperature Without Load (Ubuntu) ${minute_counter}= Set Variable 0 Log To Console \nStarting Test... FOR ${i} IN RANGE ${total_intervals} - ${temperature}= Get CPU Temperature CURRENT + ${temperature}= Get CPU Temperature Append To List ${temperature_list} ${temperature} ${max_temperature}= Evaluate max(${max_temperature}, ${temperature}) ${min_temperature}= Evaluate min(${min_temperature}, ${temperature}) @@ -174,7 +174,7 @@ CPU Temperature After Stress Test (Ubuntu) ${minute_counter}= Set Variable 0 Log To Console \nStarting Test... FOR ${i} IN RANGE ${total_intervals} - ${temperature}= Get CPU Temperature CURRENT + ${temperature}= Get CPU Temperature Append To List ${temperature_list} ${temperature} ${max_temperature}= Evaluate max(${max_temperature}, ${temperature}) ${min_temperature}= Evaluate min(${min_temperature}, ${temperature}) diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index 60ffdef047..97b084d637 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -122,7 +122,7 @@ Verify Fan Speeds Fail END - ${temperature}= Get CPU Temperature CURRENT + ${temperature}= Get CPU Temperature IF '${mode}' == 'silent' ${expected_fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature In Silent Mode ... ${temperature} ${speed_unit} From dc419c5a093111c92270256e829ce4850daddfb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 5 Feb 2025 11:58:05 +0100 Subject: [PATCH 117/416] lib/sensors: Get Fan RPM: Handle none fan_rpm_measurement_sensor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/sensors.robot | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/sensors.robot b/lib/sensors.robot index 033feea316..ea6f5cf05c 100644 --- a/lib/sensors.robot +++ b/lib/sensors.robot @@ -77,7 +77,7 @@ Get Fan PWM ${pwm}= Convert To Number ${pwm} RETURN ${pwm} ELSE - Fail Wrong platform configuration. FAN_RPM_MEASUREMENT["method"] is + Fail Wrong platform configuration. FAN_PWM_MEASUREMENT["method"] is ... of unknown value ${fan_pwm_measurement_method}. END @@ -86,12 +86,14 @@ Get Fan RPM ${fan_rpm_measurement_method}= Get From Dictionary ${FAN_RPM_MEASUREMENT} method IF '''${fan_rpm_measurement_method}''' == '''lm-sensors''' ${fan_rpm_measurement_sensor}= Get From Dictionary ${FAN_RPM_MEASUREMENT} lm_sensors_sensor_name - IF '''${fan_rpm_measurement_sensor}''' != '''none''' - ${rpm}= Execute Linux Command - ... sensors ${fan_rpm_measurement_sensor} 2> /dev/null | grep -E 'fan1' | tr -s ' ' | cut -d ' ' -f2 - ${rpm}= Convert To Integer ${rpm} - RETURN ${rpm} + IF '''${fan_rpm_measurement_sensor}''' == '''none''' + Fail + ... FAN_RPM_MEASUREMENT["lm_sensors_sensor_name"] mustn't be "none" if FAN_RPM_MEASUREMENT["method"] is "lm-sensors" END + ${rpm}= Execute Linux Command + ... sensors ${fan_rpm_measurement_sensor} 2> /dev/null | grep -E 'fan1' | tr -s ' ' | cut -d ' ' -f2 + ${rpm}= Convert To Integer ${rpm} + RETURN ${rpm} ELSE IF '''${fan_rpm_measurement_method}''' == '''system76-acpi''' ${speed}= Execute Command In Terminal sensors | grep "CPU fan" ${speed_split}= Split String ${speed} From 1038b3a40ea61cce5cc7136a0830d5586628fe22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 5 Feb 2025 12:47:41 +0100 Subject: [PATCH 118/416] coreboot-fan-control.robot: Fix typo in fail message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Żygowski --- dasharo-compatibility/coreboot-fan-control.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dasharo-compatibility/coreboot-fan-control.robot b/dasharo-compatibility/coreboot-fan-control.robot index c62dd112a5..a4e7538e89 100644 --- a/dasharo-compatibility/coreboot-fan-control.robot +++ b/dasharo-compatibility/coreboot-fan-control.robot @@ -72,6 +72,6 @@ CFN002.001 CPU fan speed increases if the temperature rises (Debian) ${rpm_3}= Get Fan RPM ${temperature_3}= Get CPU Temperature IF ${temperature_1}>=${temperature_2} - FAIL Temperature not increased + FAIL Temperature did not increase END IF ${rpm_2}>=${rpm_3} FAIL Fan speed not increased From 7ece3f69b0fe79e01d38906a3fe74e909ba8e723 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 7 Feb 2025 09:03:12 +0100 Subject: [PATCH 119/416] platform-configs: Remove default-fan-curve-config.yaml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/custom-fan-curve.robot | 2 + platform-configs/include/default.robot | 9 ++- .../sensors/default-fan-curve-config.yaml | 71 ------------------- 3 files changed, 6 insertions(+), 76 deletions(-) delete mode 100644 platform-configs/include/sensors/default-fan-curve-config.yaml diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index 97b084d637..6ae1dafdb5 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -20,6 +20,8 @@ Resource ../lib/sensors.robot Suite Setup Run Keywords ... Prepare Test Suite ... AND +... Skip If '''${CUSTOM_FAN_CURVE_FILE}''' == '''${TBD}''' CFC not supported - CUSTOM_FAN_CURVE_FILE not defined +... AND ... Import Variables ${CURDIR}/../platform-configs/${CUSTOM_FAN_CURVE_FILE} Suite Teardown Run Keyword ... Log Out And Close Connection diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index f5bb5301ca..732563549a 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -202,6 +202,10 @@ ${PLATFORM_STABILITY_CHECKING}= ${FALSE} ${CUSTOM_FAN_CURVE_SILENT_MODE_SUPPORT}= ${FALSE} ${CUSTOM_FAN_CURVE_PERFORMANCE_MODE_SUPPORT}= ${FALSE} ${CUSTOM_FAN_CURVE_OFF_MODE_SUPPORT}= ${FALSE} +# Variables used in lib/sensors to determine platform-specific methods of +# measuring temperatures, fans etc. +${SENSORS_CONFIG_FILE}= include/sensors/default-sensors-config.yaml +${CUSTOM_FAN_CURVE_FILE}= ${TBD} ${ETH_PERF_PAIR_1_G}= ${FALSE} ${ETH_PERF_PAIR_2_G}= ${FALSE} ${ETH_PERF_PAIR_10_G}= ${FALSE} @@ -274,11 +278,6 @@ ${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}= NetworkBoot ${ETH_PORTS}= ${EMPTY} -# Variables used in lib/sensors to determine platform-specific methods of -# measuring temperatures, fans etc. -${SENSORS_CONFIG_FILE}= include/sensors/default-sensors-config.yaml -${CUSTOM_FAN_CURVE_FILE}= include/sensors/default-fan-curve-config.yaml - *** Keywords *** Power On Default diff --git a/platform-configs/include/sensors/default-fan-curve-config.yaml b/platform-configs/include/sensors/default-fan-curve-config.yaml deleted file mode 100644 index 82a861f432..0000000000 --- a/platform-configs/include/sensors/default-fan-curve-config.yaml +++ /dev/null @@ -1,71 +0,0 @@ -# SPDX-FileCopyrightText: 2024 3mdeb -# -# SPDX-License-Identifier: Apache-2.0 - -# example_temperature_curve: -# # range of temperatures for which this linear function applies -# - range: [0, 65] -# # range of values in this temperature range, can be undefined if -# # measuring pwm is not supported on given platform -# evaluation_pwm: [20, 25] -# # range of values in this temperature range, can be undefined if -# # measuring pwm is not supported on given platform -# # accepted tolerance of pwm values - by how much can it differ from the -# # expected value -# tolerance_pwm: 6 -# evaluation_rpm: [0, 3000] -# # accepted tolerance of rpm values - by how much can it differ from the -# # expected value -# tolerance_rpm: 100 -# # Next linear function for next temperature range. The temperature ranges -# # must not overlap and be sorted in an ascending order -# - range: [65, 70] -# evaluation_pwm: [25, 35] -# tolerance_pwm: 6 -# evaluation_rpm: [0, 3000] -# tolerance_rpm: 100 - -temperature_curve_silent: - - range: [0, 65] - evaluation_pwm: [20, 25] - tolerance_pwm: 6 - evaluation_rpm: [0, 0] - tolerance_rpm: 10000 - - - range: [65, 75] - evaluation_pwm: [25, 35] - tolerance_pwm: 6 - evaluation_rpm: [0, 0] - tolerance_rpm: 10000 - - - range: [75, 100] - evaluation: [35, 100] - tolerance_pwm: 6 - evaluation_rpm: [0, 0] - tolerance_rpm: 10000 - -temperature_curve_performance: - - range: [0, 55] - evaluation_pwm: [25, 35] - tolerance_pwm: 6 - evaluation_rpm: [0, 0] - tolerance_rpm: 10000 - - - range: [55, 75] - evaluation_pwm: [35, 60] - tolerance_pwm: 6 - evaluation_rpm: [0, 0] - tolerance_rpm: 10000 - - - range: [75, 100] - evaluation_pwm: [60, 100] - tolerance_pwm: 6 - evaluation_rpm: [0, 0] - tolerance_rpm: 10000 - -temperature_curve_off: - - range: [0, 100] - evaluation_pwm: [0, 0] - tolerance_pwm: 100 - evaluation_rpm: [0, 0] - tolerance_rpm: 10000 From 6495392c055bf2a487db52abe7bb165b1a642bd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 11 Feb 2025 18:17:54 +0100 Subject: [PATCH 120/416] platform-configs/sensors: Rename VPxxxx files to VP66xx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Weren't tested on any other device Signed-off-by: Filip Gołaś --- platform-configs/include/protectli-vp66xx.robot | 4 ++-- ...rve-config.yaml => protectli-vp66xx-fan-curve-config.yaml} | 0 ...nsors-config.yaml => protectli-vp66xx-sensors-config.yaml} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename platform-configs/include/sensors/{protectli-vpxxxx-fan-curve-config.yaml => protectli-vp66xx-fan-curve-config.yaml} (100%) rename platform-configs/include/sensors/{protectli-vpxxxx-sensors-config.yaml => protectli-vp66xx-sensors-config.yaml} (100%) diff --git a/platform-configs/include/protectli-vp66xx.robot b/platform-configs/include/protectli-vp66xx.robot index 3c3885d3ce..d1668249af 100644 --- a/platform-configs/include/protectli-vp66xx.robot +++ b/platform-configs/include/protectli-vp66xx.robot @@ -31,5 +31,5 @@ ${CUSTOM_FAN_CURVE_OFF_MODE_SUPPORT}= ${TRUE} # Variables used in lib/sensors to determine platform-specific methods of # measuring temperatures, fans etc. -${SENSORS_CONFIG_FILE}= include/sensors/protectli-vpxxxx-sensors-config.yaml -${CUSTOM_FAN_CURVE_FILE}= include/sensors/protectli-vpxxxx-fan-curve-config.yaml +${SENSORS_CONFIG_FILE}= include/sensors/protectli-vp66xx-sensors-config.yaml +${CUSTOM_FAN_CURVE_FILE}= include/sensors/protectli-vp66xx-fan-curve-config.yaml diff --git a/platform-configs/include/sensors/protectli-vpxxxx-fan-curve-config.yaml b/platform-configs/include/sensors/protectli-vp66xx-fan-curve-config.yaml similarity index 100% rename from platform-configs/include/sensors/protectli-vpxxxx-fan-curve-config.yaml rename to platform-configs/include/sensors/protectli-vp66xx-fan-curve-config.yaml diff --git a/platform-configs/include/sensors/protectli-vpxxxx-sensors-config.yaml b/platform-configs/include/sensors/protectli-vp66xx-sensors-config.yaml similarity index 100% rename from platform-configs/include/sensors/protectli-vpxxxx-sensors-config.yaml rename to platform-configs/include/sensors/protectli-vp66xx-sensors-config.yaml From ab7cd0ba19b6375d6bab303851a342a2ffa3d5f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 12 Feb 2025 07:10:48 +0100 Subject: [PATCH 121/416] custom-fan-curve.robot: Don't halt the test on automatic fail MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The results can still be verified manually and used to adjust the curves Signed-off-by: Filip Gołaś --- dasharo-performance/custom-fan-curve.robot | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index 6ae1dafdb5..6af94aa6f5 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -87,20 +87,19 @@ Perform Custom Fan Curve Test ${new_result}= Verify Fan Speeds ${profile} IF not ${result} and not ${new_result} ${fails_in_a_row}= Evaluate ${fails_in_a_row}+1 - IF ${fails_in_a_row} > 1 - Fail Too many invalid fan speeds in a row - END ELSE ${fails_in_a_row}= Set Variable 0 END + ${result}= Set Variable ${new_result} Sleep ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}m ${timer}= Evaluate ${timer} + ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL} END - IF not ${result} + IF ${fails_in_a_row} > 1 Log Invalid fan speeds detected. Needs manual verification WARN Log To Console Invalid fan speeds detected. Needs manual verification WARN + Fail END Verify Fan Speeds From b9fd507a01680bce77ebbeec9823d67d6a5ffe64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 12 Feb 2025 07:12:16 +0100 Subject: [PATCH 122/416] protectli-vp66xx-fan-curve-config: Adjust Performance curve MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../sensors/protectli-vp66xx-fan-curve-config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/platform-configs/include/sensors/protectli-vp66xx-fan-curve-config.yaml b/platform-configs/include/sensors/protectli-vp66xx-fan-curve-config.yaml index e6118285d3..ef1c257d42 100644 --- a/platform-configs/include/sensors/protectli-vp66xx-fan-curve-config.yaml +++ b/platform-configs/include/sensors/protectli-vp66xx-fan-curve-config.yaml @@ -37,19 +37,19 @@ temperature_curve_performance: - range: [30, 40] evaluation_pwm: [0, 40] tolerance_pwm: 6 - evaluation_rpm: [800, 800] # Anywhere between 0 and 1400 + 200 tolerance - tolerance_rpm: 800 + evaluation_rpm: [1000, 1000] + tolerance_rpm: 1000 - range: [40, 75] evaluation_pwm: [40, 100] tolerance_pwm: 6 - evaluation_rpm: [1300, 3200] + evaluation_rpm: [2000, 3400] tolerance_rpm: 300 - range: [75, 100] evaluation_pwm: [100, 100] tolerance_pwm: 6 - evaluation_rpm: [3100, 3100] + evaluation_rpm: [3300, 3300] tolerance_rpm: 400 temperature_curve_off: From ed954d7c136b7159549573a09cc7b2d27eff4634 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 14 Feb 2025 14:21:05 +0100 Subject: [PATCH 123/416] custom-fan-curve: Make sure not to measure after stress ends MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/custom-fan-curve.robot | 5 +++-- lib/CPU-performance-lib.robot | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index 6af94aa6f5..449fcc1292 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -74,7 +74,8 @@ Perform Custom Fan Curve Test [Arguments] ${profile} Prepare Sensors - Stress Test ${CUSTOM_FAN_CURVE_TEST_DURATION}m + ${stress_len}= Evaluate ${CUSTOM_FAN_CURVE_TEST_DURATION}*2 + Stress Test ${stress_len}m ${timer}= Convert To Integer 0 Sleep 5s ${result}= Set Variable ${TRUE} @@ -95,7 +96,7 @@ Perform Custom Fan Curve Test Sleep ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}m ${timer}= Evaluate ${timer} + ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL} END - + Stress Test Stop IF ${fails_in_a_row} > 1 Log Invalid fan speeds detected. Needs manual verification WARN Log To Console Invalid fan speeds detected. Needs manual verification WARN diff --git a/lib/CPU-performance-lib.robot b/lib/CPU-performance-lib.robot index f2fce9f630..4c1f516214 100644 --- a/lib/CPU-performance-lib.robot +++ b/lib/CPU-performance-lib.robot @@ -90,7 +90,10 @@ Stress Test [Documentation] Proceed with the stress test. [Arguments] ${time}=60s Detect Or Install Package stress-ng - Execute Command In Terminal stress-ng --cpu $(nproc) --timeout ${time} &> /dev/null & disown + Execute Command In Terminal stress-ng --cpu $(nproc) --timeout ${time} -q &> /dev/null & disown + +Stress Test Stop + Execute Command In Terminal pkill stress-ng Check Power Supply ${laptop_platform}= Check The Platform Is A Laptop From cf1e621c841a2641850fa59aca2a7b86760215d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 17 Feb 2025 12:01:03 +0100 Subject: [PATCH 124/416] cfc-fan-off: Add CPU load gradation & measurement graphs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../coreboot-fan-control.robot | 2 +- dasharo-performance/custom-fan-curve.robot | 150 +++++++++++------- keywords.robot | 10 +- lib/CPU-performance-lib.robot | 11 +- lib/sensors/fan_curve_plots.py | 47 ++++++ lib/{ => sensors}/sensors.robot | 31 +++- .../include/protectli-common.robot | 6 +- scripts/lib/robot.sh | 1 + 8 files changed, 189 insertions(+), 69 deletions(-) create mode 100644 lib/sensors/fan_curve_plots.py rename lib/{ => sensors}/sensors.robot (85%) diff --git a/dasharo-compatibility/coreboot-fan-control.robot b/dasharo-compatibility/coreboot-fan-control.robot index a4e7538e89..0df4ff8bc4 100644 --- a/dasharo-compatibility/coreboot-fan-control.robot +++ b/dasharo-compatibility/coreboot-fan-control.robot @@ -11,7 +11,7 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../lib/sensors.robot +Resource ../lib/sensors/sensors.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index 449fcc1292..f65473b261 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -1,17 +1,20 @@ *** Settings *** Library Collections +Library DateTime Library OperatingSystem Library Process Library String Library Telnet timeout=20 seconds connection_timeout=120 seconds Library SSHLibrary timeout=90 seconds Library RequestsLibrary +Library CSVLibrary +Library ../lib/sensors/fan_curve_plots.py # TODO: maybe have a single file to include if we need to include the same # stuff in all test cases Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../lib/sensors.robot +Resource ../lib/sensors/sensors.robot # TODO: # - document which setup/teardown keywords to use and what are they doing @@ -72,91 +75,118 @@ CFC003.001 Custom fan curve OFF profile measure (Ubuntu) Perform Custom Fan Curve Test [Documentation] Performs a Custom Fan Curve test for a given profile [Arguments] ${profile} - Prepare Sensors - ${stress_len}= Evaluate ${CUSTOM_FAN_CURVE_TEST_DURATION}*2 - Stress Test ${stress_len}m - ${timer}= Convert To Integer 0 - Sleep 5s + ${result}= Set Variable ${TRUE} ${fails_in_a_row}= Set Variable 0 + ${max_fails_in_a_row}= Set Variable 0 + ${measurements}= Create List - FOR ${i} IN RANGE (${CUSTOM_FAN_CURVE_TEST_DURATION} / ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}) - Log To Console \n ---------------------------------------------------------------- - Log To Console ${timer} min. + ${stress_len}= Evaluate ${CUSTOM_FAN_CURVE_TEST_DURATION}*5 + ${cpu_count}= Execute Command In Terminal nproc + ${fan_mode}= Get Fan Measurement Unit Name - ${new_result}= Verify Fan Speeds ${profile} - IF not ${result} and not ${new_result} - ${fails_in_a_row}= Evaluate ${fails_in_a_row}+1 - ELSE - ${fails_in_a_row}= Set Variable 0 - END - ${result}= Set Variable ${new_result} + FOR ${i} IN RANGE 100 + ${current_time}= Evaluate time.time() + ${start_time}= Set Variable ${current_time} + ${end_time}= Evaluate ${start_time} + ${CUSTOM_FAN_CURVE_TEST_DURATION} + Stress Test time=${stress_len}s load_percent=${i} + WHILE ${current_time} < ${end_time} + ${current_time}= Evaluate time.time() + ${duration}= Evaluate ${current_time} - ${start_time} + Log To Console \n${duration} s. + + ${new_result} ${measurement}= Measure And Verify + ... ${profile} ${fan_mode} - Sleep ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}m - ${timer}= Evaluate ${timer} + ${CUSTOM_FAN_CURVE_MEASURE_INTERVAL} + IF not ${result} and not ${new_result} + Log To Console Invalid speed WARN + ${fails_in_a_row}= Evaluate ${fails_in_a_row}+1 + IF ${fails_in_a_row} > ${max_fails_in_a_row} + ${max_fails_in_a_row}= Set Variable ${fails_in_a_row} + END + ELSE + ${fails_in_a_row}= Set Variable 0 + END + ${result}= Set Variable ${new_result} + END END Stress Test Stop - IF ${fails_in_a_row} > 1 - Log Invalid fan speeds detected. Needs manual verification WARN + + ${image}= Save Measurements ${measurements} ${profile} + IF ${max_fails_in_a_row} > 1 Log To Console Invalid fan speeds detected. Needs manual verification WARN - Fail + Fail Invalid fan speeds detected. Needs manual verification END + # Add a graph of measurements to the logs + Log html=true + Sleep ${CUSTOM_FAN_CURVE_COOLDOWN_SECONDS}s + +Measure And Verify + [Arguments] ${profile} ${fan_mode} + ${fan_speed}= Get Fan Speed ${fan_mode} + ${cpu_temp}= Get CPU Temperature + + ${result} ${expected} ${tolerance}= Verify Fan Speeds + ... ${profile} ${fan_speed} ${fan_mode} ${cpu_temp} + + ${measurement}= Create Dictionary temp=${cpu_temp} + ... speed=${fan_speed} expected=${expected} + ... tolerance=${tolerance} + Log To Console + ... ${cpu_temp}C - ${fan_speed} ${fan_mode} (expected: ${expected} ${fan_mode} +/- ${tolerance}) + RETURN ${result} ${measurement} + +Save Measurements + [Documentation] Saves fan speed & temp measurements to csv file + [Arguments] ${measurements} ${profile} + ${columns}= Create List temp speed expected tolerance + ${file}= Set Variable fan_speeds_${profile} + CSVLibrary.Csv File From Associative ${file}.csv ${measurements} ${columns} + ${image}= Plot Fan Curve ${file} + RETURN ${image} Verify Fan Speeds - [Documentation] Measures PWM/RPM and compares to target values depending - ... on CPU temperature and a fan curve. Mode is a string and can be - ... either "performance", "silent" or "off" depending on the fan curve - ... to compare against. - [Arguments] ${mode} - ${pwm_support}= Is Fan PWM Measurement Supported - ${rpm_support}= Is Fan RPM Measurement Supported - IF ${pwm_support} - ${speed_unit}= Set Variable pwm - ${fan_speed}= Get Fan PWM - ELSE IF ${rpm_support} - ${speed_unit}= Set Variable rpm - ${fan_speed}= Get Fan RPM - ELSE - Log To Console - ... Invalid device configuration. CUSTOM_FAN_CURVE_X_MODE_SUPPORT is True, but fan speed measurement method is `none` - ... ERROR - Fail - END + [Documentation] Compares RPM/PWM to target values depending + ... on CPU temperature and a fan curve. + ... - profile is a string and can be + ... \ either "performance", "silent" or "off" depending on the fan curve[Tags] robot:private + ... \ to compare against. + ... - fan_speed - measured fan speed value + ... - fan_mode - fan measurement unit - rpm or pwm, + ... - cpu_temp - cpu temperature in C + ... returns: + ... - boolean result + ... - expected speed + ... - tolerance + [Tags] robot:private + [Arguments] ${profile} ${fan_speed} ${fan_mode} ${cpu_temp} - ${temperature}= Get CPU Temperature - IF '${mode}' == 'silent' + IF '${profile}' == 'silent' ${expected_fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature In Silent Mode - ... ${temperature} ${speed_unit} - ELSE IF '${mode}' == 'performance' + ... ${cpu_temp} ${fan_mode} + ELSE IF '${profile}' == 'performance' ${expected_fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature In Performance Mode - ... ${temperature} ${speed_unit} - ELSE IF '${mode}' == 'off' + ... ${cpu_temp} ${fan_mode} + ELSE IF '${profile}' == 'off' ${expected_fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature In Off Mode - ... ${temperature} ${speed_unit} + ... ${cpu_temp} ${fan_mode} END ${speed_is_valid}= Verify With Tolerance ... ${fan_speed} ... ${expected_fan_speed} - ... ${speed_unit} + ... ${fan_mode} ... ${tolerance} - Log To Console Temp: ${temperature} - Log To Console Fan Speed: ${fan_speed} - Log To Console Expected Speed: ${expected_fan_speed} - Log To Console Tolerance: ${tolerance} - IF not ${speed_is_valid} - Log Invalid fan speed detected WARN - Log To Console Invalid fan speed detected WARN - RETURN ${FALSE} - END - RETURN ${TRUE} + RETURN ${speed_is_valid} ${expected_fan_speed} ${tolerance} Verify With Tolerance [Documentation] Compares the actual and expected value of the fan speed, ... taking tolerance into account. + [Tags] robot:private [Arguments] ${fan_speed} ${expected_speed} ${fan_speed_unit} ${tolerance} + IF '${fan_speed_unit}' == 'pwm' ${fan_speed}= Evaluate float(${fan_speed}/2.55) END @@ -180,6 +210,7 @@ Calculate Speed Percentage Based On Temperature ... for a given temperature based on an algorithm and a ... defined curve. Speed unit should be defined as "pwm" or "rpm" to ... choose the curve unit. + [Tags] robot:private [Arguments] ${temperature} ${speed_unit} @{temperature_curve} ${fan_speed}= Evaluate -1 @@ -209,6 +240,7 @@ Calculate Speed Percentage Based On Temperature In Performance Mode [Documentation] Calculates the expected speed in performance ... mode for a given temperature based on an algorithm and a ... defined curve. + [Tags] robot:private [Arguments] ${temperature} ${speed_unit} ${fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature ... ${temperature} @@ -220,6 +252,7 @@ Calculate Speed Percentage Based On Temperature In Silent Mode [Documentation] Calculates the expected speed in silent ... mode for a given temperature based on an algorithm and a ... defined curve. + [Tags] robot:private [Arguments] ${temperature} ${speed_unit} ${fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature ... ${temperature} @@ -231,6 +264,7 @@ Calculate Speed Percentage Based On Temperature In Off Mode [Documentation] Calculates the expected speed in off ... mode for a given temperature based on an algorithm and a ... defined curve. + [Tags] robot:private [Arguments] ${temperature} ${speed_unit} ${fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature ... ${temperature} diff --git a/keywords.robot b/keywords.robot index 51df6e04ad..4aaaedbbc2 100644 --- a/keywords.robot +++ b/keywords.robot @@ -124,8 +124,14 @@ Login To Linux Over Serial Console ... ${password} ... ${device_ubuntu_user_prompt}=${device_ubuntu_user_prompt} ... ${timeout}=300 - Set DUT Response Timeout ${timeout} seconds - Telnet.Read Until login: + TRY + Set DUT Response Timeout 10 seconds + Telnet.Read Until login: + EXCEPT + Set DUT Response Timeout ${timeout} seconds + Telnet.Write ${ENTER} + Telnet.Read Until login: + END Telnet.Write ${username} Telnet.Read Until Password: Telnet.Write ${password} diff --git a/lib/CPU-performance-lib.robot b/lib/CPU-performance-lib.robot index 4c1f516214..c3a387c9cb 100644 --- a/lib/CPU-performance-lib.robot +++ b/lib/CPU-performance-lib.robot @@ -1,5 +1,5 @@ *** Settings *** -Resource sensors.robot +Resource sensors/sensors.robot *** Keywords *** @@ -88,9 +88,14 @@ Check CPU Frequency In Windows Stress Test [Documentation] Proceed with the stress test. - [Arguments] ${time}=60s + [Arguments] ${time}=60s ${workers}=$(nproc) ${load_percent}=100 ${start_delay_seconds}=0 Detect Or Install Package stress-ng - Execute Command In Terminal stress-ng --cpu $(nproc) --timeout ${time} -q &> /dev/null & disown + ${cmd}= Catenate $( + ... pkill stress-ng; + ... sleep ${start_delay_seconds}; + ... stress-ng --cpu ${workers} --cpu-load ${load_percent} --timeout ${time} -q &> /dev/null + ... ) & disown + Execute Command In Terminal ${cmd} Stress Test Stop Execute Command In Terminal pkill stress-ng diff --git a/lib/sensors/fan_curve_plots.py b/lib/sensors/fan_curve_plots.py new file mode 100644 index 0000000000..99e72c2823 --- /dev/null +++ b/lib/sensors/fan_curve_plots.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: 2025 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +import os + +import matplotlib.pyplot as plt +import pandas +from robot.api.deco import keyword +from robot.libraries.BuiltIn import BuiltIn + + +# @keyword("Plot Fan Curve") +def plot_fan_curve(filename): + in_file = filename + ".csv" + out_file = filename + ".png" + logs_dir = BuiltIn().get_variable_value("${logs_dir}") + if logs_dir is None: + logs_dir = "." + out_path = os.path.join(logs_dir, out_file) + + data = pandas.read_csv(in_file) + temp = data["temp"] + speed = data["speed"] + tolerance = data["tolerance"] + expected = data["expected"] + + plt.title(filename) + plt.xlabel("CPU temperature [°C]") + plt.ylabel("Fan speed") + plt.errorbar(temp, speed, label="speed", fmt=".") + # plt.plot(temp, speed-tolerance, label="min", marker=".") + # plt.plot(temp, speed+tolerance, label="max", marker=".") + plt.errorbar( + temp, + expected, + yerr=tolerance, + label="expected", + fmt=".", + capsize=3, + capthick=0.5, + linewidth=0.5, + ) + plt.legend() + plt.savefig(out_path) + plt.clf() + return out_file diff --git a/lib/sensors.robot b/lib/sensors/sensors.robot similarity index 85% rename from lib/sensors.robot rename to lib/sensors/sensors.robot index ea6f5cf05c..149d105518 100644 --- a/lib/sensors.robot +++ b/lib/sensors/sensors.robot @@ -4,7 +4,7 @@ Documentation This library defines keywords for reading sensor data from ... defined in the platform configs if it turns out that this process ... differs too much depending on the platform. -Resource terminal.robot +Resource ../terminal.robot *** Keywords *** @@ -13,7 +13,7 @@ Prepare Sensors # Might only do this when any method is said to be lm-sensors. - Import Variables ${CURDIR}/../platform-configs/${SENSORS_CONFIG_FILE} + Import Variables ${CURDIR}/../../platform-configs/${SENSORS_CONFIG_FILE} ${cpu_temperature_measurement_method}= Get From Dictionary ${CPU_TEMPERATURE_MEASUREMENT} method ${fan_pwm_measurement_method}= Get From Dictionary ${FAN_PWM_MEASUREMENT} method ${fan_rpm_measurement_method}= Get From Dictionary ${FAN_RPM_MEASUREMENT} method @@ -63,6 +63,19 @@ Get CPU Temperature ... is of unknown value ${cpu_temperature_measurement_method}. END +Get Fan Speed + [Documentation] Get PWM or RPM depending on argument + [Arguments] ${mode} # Can be "rpm" or "pwm" + IF """${mode}""" == "rpm" + ${v}= Get Fan RPM + RETURN ${v} + ELSE IF """${mode}""" == "pwm" + ${v}= Get Fan PWM + RETURN ${v} + ELSE + Fail Invalid fan speed measurement mode "${mode}" + END + Get Fan PWM [Documentation] Get current CPU fan PWM ${fan_pwm_measurement_method}= Get From Dictionary ${FAN_PWM_MEASUREMENT} method @@ -121,3 +134,17 @@ Is Fan RPM Measurement Supported RETURN ${FALSE} END RETURN ${TRUE} + +Get Fan Measurement Unit Name + [Documentation] Returns "pwm" or "rpm" depending on which is supported + ... on the DUT. If both are, then "pwm" takes priority. + ${pwm_support}= Is Fan PWM Measurement Supported + ${rpm_support}= Is Fan RPM Measurement Supported + IF ${pwm_support} + RETURN pwm + ELSE IF ${rpm_support} + RETURN rpm + ELSE + Fail + ... Invalid device configuration. CUSTOM_FAN_CURVE_X_MODE_SUPPORT is True, but fan speed measurement method is `none` + END diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index 65d5d00922..25ffddcbd6 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -111,9 +111,9 @@ ${TEMPERATURE_TEST_DURATION}= 3600 # Interval between the following readings in temperature measure tests ${TEMPERATURE_TEST_MEASURE_INTERVAL}= 1 # Custom fan curve tests duration in minutes -${CUSTOM_FAN_CURVE_TEST_DURATION}= 3 -# Interval between the following readings in custom fan curve tests -${CUSTOM_FAN_CURVE_MEASURE_INTERVAL}= 0.05 +${CUSTOM_FAN_CURVE_TEST_DURATION}= 1 +# Delay between tests to allow the cpu to cool down +${CUSTOM_FAN_CURVE_COOLDOWN_SECONDS}= 5 # Maximum fails during during performing test suite usb-boot.robot ${ALLOWED_FAILS_USB_BOOT}= 0 # Maximum fails during during performing test suite usb-detect.robot diff --git a/scripts/lib/robot.sh b/scripts/lib/robot.sh index edc54c1e06..6f7b3a1205 100644 --- a/scripts/lib/robot.sh +++ b/scripts/lib/robot.sh @@ -150,6 +150,7 @@ execute_robot() { -b ${_debug_file} \ -v rte_ip:${RTE_IP} \ -v config:${CONFIG} \ + -v logs_dir:${_logs_dir} \ ${device_ip_option} \ ${fw_file_option} \ ${capsule_fw_file_option} \ From 44f1a3a8b34a8b830dcaf9eba2339c569ffff428 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 17 Feb 2025 12:53:19 +0100 Subject: [PATCH 125/416] requirements.txt: Add reqs for CFC graphs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- requirements.txt | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index b5b0e85af9..9ec9109b10 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,35 +4,48 @@ attrs==24.3.0 bcrypt==4.1.2 +binaryornot==0.4.4 +boolean.py==4.0 certifi==2024.2.2 cffi==1.17.1 cfgv==3.4.0 +chardet==5.2.0 charset-normalizer==3.3.2 click==8.1.7 colorama==0.4.6 +contourpy==1.3.1 cryptography==42.0.5 +cycler==0.12.1 dbbot-sqlalchemy==0.2 distlib==0.3.8 Faker==24.11.0 filelock==3.13.4 -greenlet==3.1.1 +fonttools==4.56.0 git-cliff==2.6.1 +greenlet==3.1.1 gspread==3.1.0 httplib2==0.22.0 identify==2.5.36 idna==3.7 importlib_resources==6.4.0 Jinja2==3.1.3 +kiwisolver==1.4.8 +license-expression==30.4.1 markdown-it-py==3.0.0 MarkupSafe==2.1.5 +matplotlib==3.10.0 mdurl==0.1.2 nodeenv==1.8.0 +numpy==2.2.3 oauth2client==4.1.3 osfv @ git+https://github.com/Dasharo/osfv-scripts.git@a6b18bb88051474ec2a44d8f2b37b1405977ab54#subdirectory=osfv_cli +packaging==24.2 +pandas==2.2.3 paramiko==3.4.0 pathspec==0.9.0 pexpect==4.9.0 pikvm @ git+https://github.com/3mdeb/pikvm-rest-api@1a1cc579a286fe82aaa2eccea69f96223712664d +pillow==11.1.0 platformdirs==4.2.1 pre-commit==3.7.0 ptyprocess==0.7.0 @@ -46,13 +59,15 @@ pyotp==2.9.0 pyparsing==3.1.2 pyte @ git+https://github.com/3mdeb/pyte@b81646ec9f754aab34ed671b3c852b01cc72bdb4 python-dateutil==2.9.0.post0 +python-debian==0.1.49 pytz==2024.1 PyYAML==6.0.1 -reuse==4.0.3 requests==2.31.0 +reuse==4.0.3 rich==13.7.1 rich-click==1.7.4 robotframework @ git+https://github.com/3mdeb/robotframework@6006ce0b3d5fc6b45c5eb040dc859acd64bfa846 +robotframework-csvlibrary==0.0.5 robotframework-faker==5.0.0 robotframework-requests==0.9.4 robotframework-robocop==5.0.4 @@ -69,7 +84,9 @@ tabulate==0.8.9 telnetlib @ git+https://github.com/3mdeb/telnetlib@b85e3b5e6068eb3441cb21badb5a266301839e61 toml==0.10.2 tomli==2.0.1 +tomlkit==0.13.2 typing_extensions==4.11.0 +tzdata==2025.1 Unidecode==1.3.8 urllib3==2.2.1 virtualenv==20.26.0 From 041ffcdb99f777bd5158e1c2e565f8ac4f98dc56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 17 Feb 2025 12:56:00 +0100 Subject: [PATCH 126/416] custom-fan-curve: Wait 1s for CPU temp to stabilize MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/custom-fan-curve.robot | 12 +++++------- keywords.robot | 10 ++-------- platform-configs/include/protectli-common.robot | 2 +- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index f65473b261..cc5e704f3a 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -76,29 +76,28 @@ Perform Custom Fan Curve Test [Documentation] Performs a Custom Fan Curve test for a given profile [Arguments] ${profile} Prepare Sensors - ${result}= Set Variable ${TRUE} ${fails_in_a_row}= Set Variable 0 ${max_fails_in_a_row}= Set Variable 0 ${measurements}= Create List - ${stress_len}= Evaluate ${CUSTOM_FAN_CURVE_TEST_DURATION}*5 ${cpu_count}= Execute Command In Terminal nproc ${fan_mode}= Get Fan Measurement Unit Name - FOR ${i} IN RANGE 100 + FOR ${cpu_usage} IN RANGE 100 + Stress Test time=${stress_len}s load_percent=${cpu_usage} + Sleep 1s Let the CPU temperature stabilize ${current_time}= Evaluate time.time() ${start_time}= Set Variable ${current_time} ${end_time}= Evaluate ${start_time} + ${CUSTOM_FAN_CURVE_TEST_DURATION} - Stress Test time=${stress_len}s load_percent=${i} + WHILE ${current_time} < ${end_time} ${current_time}= Evaluate time.time() ${duration}= Evaluate ${current_time} - ${start_time} Log To Console \n${duration} s. - ${new_result} ${measurement}= Measure And Verify ... ${profile} ${fan_mode} - + Append To List ${measurements} ${measurement} IF not ${result} and not ${new_result} Log To Console Invalid speed WARN ${fails_in_a_row}= Evaluate ${fails_in_a_row}+1 @@ -112,7 +111,6 @@ Perform Custom Fan Curve Test END END Stress Test Stop - ${image}= Save Measurements ${measurements} ${profile} IF ${max_fails_in_a_row} > 1 Log To Console Invalid fan speeds detected. Needs manual verification WARN diff --git a/keywords.robot b/keywords.robot index 4aaaedbbc2..51df6e04ad 100644 --- a/keywords.robot +++ b/keywords.robot @@ -124,14 +124,8 @@ Login To Linux Over Serial Console ... ${password} ... ${device_ubuntu_user_prompt}=${device_ubuntu_user_prompt} ... ${timeout}=300 - TRY - Set DUT Response Timeout 10 seconds - Telnet.Read Until login: - EXCEPT - Set DUT Response Timeout ${timeout} seconds - Telnet.Write ${ENTER} - Telnet.Read Until login: - END + Set DUT Response Timeout ${timeout} seconds + Telnet.Read Until login: Telnet.Write ${username} Telnet.Read Until Password: Telnet.Write ${password} diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index 25ffddcbd6..70936ef18b 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -111,7 +111,7 @@ ${TEMPERATURE_TEST_DURATION}= 3600 # Interval between the following readings in temperature measure tests ${TEMPERATURE_TEST_MEASURE_INTERVAL}= 1 # Custom fan curve tests duration in minutes -${CUSTOM_FAN_CURVE_TEST_DURATION}= 1 +${CUSTOM_FAN_CURVE_TEST_DURATION}= 2 # Delay between tests to allow the cpu to cool down ${CUSTOM_FAN_CURVE_COOLDOWN_SECONDS}= 5 # Maximum fails during during performing test suite usb-boot.robot From 516225ab801609259763f8f1994d1395ddc26128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 17 Feb 2025 13:14:39 +0100 Subject: [PATCH 127/416] custom-fan-curve: Show graphs before failing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/custom-fan-curve.robot | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index cc5e704f3a..41f87fb698 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -112,13 +112,14 @@ Perform Custom Fan Curve Test END Stress Test Stop ${image}= Save Measurements ${measurements} ${profile} + Log html=true + Sleep ${CUSTOM_FAN_CURVE_COOLDOWN_SECONDS}s + IF ${max_fails_in_a_row} > 1 Log To Console Invalid fan speeds detected. Needs manual verification WARN Fail Invalid fan speeds detected. Needs manual verification END # Add a graph of measurements to the logs - Log html=true - Sleep ${CUSTOM_FAN_CURVE_COOLDOWN_SECONDS}s Measure And Verify [Arguments] ${profile} ${fan_mode} From 9e941c9e9909f5f5855c0fb7ef797eeb16a92176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 18 Feb 2025 15:47:16 +0100 Subject: [PATCH 128/416] fan_curve_tests.py: Move fan_curve tests python code to lib MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/fan_curve_tests/fan_curve_tests.py | 86 ++++++++++++++++++++++++++ lib/sensors/fan_curve_plots.py | 47 -------------- 2 files changed, 86 insertions(+), 47 deletions(-) create mode 100644 lib/fan_curve_tests/fan_curve_tests.py delete mode 100644 lib/sensors/fan_curve_plots.py diff --git a/lib/fan_curve_tests/fan_curve_tests.py b/lib/fan_curve_tests/fan_curve_tests.py new file mode 100644 index 0000000000..07e479ec6c --- /dev/null +++ b/lib/fan_curve_tests/fan_curve_tests.py @@ -0,0 +1,86 @@ +# SPDX-FileCopyrightText: 2025 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +import os + +import matplotlib.pyplot as plt +import pandas +from robot.api.deco import keyword +from robot.libraries.BuiltIn import BuiltIn + + +@keyword("Plot Fan Curve") +def plot_fan_curve(file_path, title): + in_file = file_path + ".csv" + out_file = file_path + ".png" + + data = pandas.read_csv(in_file) + temp = data["temp"] + speed = data["speed"] + tolerance = data["tolerance"] + expected = data["expected"] + + plt.title(title) + plt.xlabel("CPU temperature [°C]") + plt.ylabel("Fan speed") + plt.errorbar(temp, speed, label="speed", fmt=".") + # plt.plot(temp, speed-tolerance, label="min", marker=".") + # plt.plot(temp, speed+tolerance, label="max", marker=".") + plt.errorbar( + temp, + expected, + yerr=tolerance, + label="expected", + fmt=".", + capsize=3, + capthick=0.5, + linewidth=0.5, + ) + plt.legend() + plt.savefig(out_file) + plt.clf() + + out_filename = os.path.basename(out_file) + return out_filename + + +def _get_over_tolerance(measurement): + diff = abs(measurement["speed"] - measurement["expected"]) + over_tolerance = max(diff - measurement["tolerance"], 0) + return over_tolerance + + +def _get_diff_from_tolerance(measurement): + diff = abs(measurement["speed"] - measurement["expected"]) + # Measurements that are in the tolerance are always better + # those outside tolerance. To order them according to that, the + # weight of anything over tolerance is increased + over_tolerance = _get_over_tolerance(measurement) * 1000 + # To also sort the measurements which fall into tolerance + return over_tolerance * 1000 + diff + + +@keyword("Count Failed Fan Measurements") +def count_failed_fan_measurements(measurements): + # RF passes a measurements as [measurements] + if type(measurements[0]) is list: + measurements = measurements[0] + + count = 0 + for m in measurements: + if _get_over_tolerance(m) > 0: + count += 1 + return count + + +@keyword("Filter Fan Measurements") +def filter_fan_measurements(measurements, percentile_drop): + # RF passes a measurements as [measurements] + if type(measurements[0]) is list: + measurements = measurements[0] + # sort by the amount of deviation from expected values + m_sorted = sorted(measurements, key=_get_diff_from_tolerance) + save_amount = int(len(m_sorted) - len(m_sorted) * percentile_drop / 100) + m_saved = m_sorted[:save_amount] + return m_saved diff --git a/lib/sensors/fan_curve_plots.py b/lib/sensors/fan_curve_plots.py deleted file mode 100644 index 99e72c2823..0000000000 --- a/lib/sensors/fan_curve_plots.py +++ /dev/null @@ -1,47 +0,0 @@ -# SPDX-FileCopyrightText: 2025 3mdeb -# -# SPDX-License-Identifier: Apache-2.0 - -import os - -import matplotlib.pyplot as plt -import pandas -from robot.api.deco import keyword -from robot.libraries.BuiltIn import BuiltIn - - -# @keyword("Plot Fan Curve") -def plot_fan_curve(filename): - in_file = filename + ".csv" - out_file = filename + ".png" - logs_dir = BuiltIn().get_variable_value("${logs_dir}") - if logs_dir is None: - logs_dir = "." - out_path = os.path.join(logs_dir, out_file) - - data = pandas.read_csv(in_file) - temp = data["temp"] - speed = data["speed"] - tolerance = data["tolerance"] - expected = data["expected"] - - plt.title(filename) - plt.xlabel("CPU temperature [°C]") - plt.ylabel("Fan speed") - plt.errorbar(temp, speed, label="speed", fmt=".") - # plt.plot(temp, speed-tolerance, label="min", marker=".") - # plt.plot(temp, speed+tolerance, label="max", marker=".") - plt.errorbar( - temp, - expected, - yerr=tolerance, - label="expected", - fmt=".", - capsize=3, - capthick=0.5, - linewidth=0.5, - ) - plt.legend() - plt.savefig(out_path) - plt.clf() - return out_file From fe48429a1eeb8ce3cae923e6efda04df08c771d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 18 Feb 2025 15:48:05 +0100 Subject: [PATCH 129/416] protectli-vp66xx-fan-curve-config: Add additional settings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- platform-configs/fan-curve-config.yaml | 23 ------------------- .../protectli-vp66xx-fan-curve-config.yaml | 3 +++ 2 files changed, 3 insertions(+), 23 deletions(-) delete mode 100644 platform-configs/fan-curve-config.yaml diff --git a/platform-configs/fan-curve-config.yaml b/platform-configs/fan-curve-config.yaml deleted file mode 100644 index bf9dbebe07..0000000000 --- a/platform-configs/fan-curve-config.yaml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-FileCopyrightText: 2024 3mdeb -# -# SPDX-License-Identifier: Apache-2.0 - -temperature_curve_silent: - - range: [0, 65] - evaluation: [20, 25] - - - range: [65, 75] - evaluation: [25, 35] - - - range: [75, 100] - evaluation: [35, 100] - -temperature_curve_performance: - - range: [0, 55] - evaluation: [25, 35] - - - range: [55, 75] - evaluation: [35, 60] - - - range: [75, 100] - evaluation: [60, 100] diff --git a/platform-configs/include/sensors/protectli-vp66xx-fan-curve-config.yaml b/platform-configs/include/sensors/protectli-vp66xx-fan-curve-config.yaml index ef1c257d42..2bcd20725e 100644 --- a/platform-configs/include/sensors/protectli-vp66xx-fan-curve-config.yaml +++ b/platform-configs/include/sensors/protectli-vp66xx-fan-curve-config.yaml @@ -1,6 +1,9 @@ # SPDX-FileCopyrightText: 2024 3mdeb # # SPDX-License-Identifier: Apache-2.0 +temperature_curve_settings: + percentile_drop: 10 + acceptable_invalid_percent: 10 temperature_curve_silent: - range: [0, 40] From fb774d21448d99428b9a8bfa5c52d12df208988c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 18 Feb 2025 15:49:41 +0100 Subject: [PATCH 130/416] custom-fan-curve: Verify results statistically MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dropping the most anomalous results and deciding on a pass based on % of valid measurements Signed-off-by: Filip Gołaś --- dasharo-performance/custom-fan-curve.robot | 211 ++++++++------------- 1 file changed, 82 insertions(+), 129 deletions(-) diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index 41f87fb698..7b67a7deb1 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -8,7 +8,7 @@ Library Telnet timeout=20 seconds connection_timeout=120 secon Library SSHLibrary timeout=90 seconds Library RequestsLibrary Library CSVLibrary -Library ../lib/sensors/fan_curve_plots.py +Library ../lib/fan_curve_tests/fan_curve_tests.py # TODO: maybe have a single file to include if we need to include the same # stuff in all test cases Resource ../variables.robot @@ -40,6 +40,7 @@ CFC001.001 Custom fan curve silent profile measure (Ubuntu) Set UEFI Option FanCurveOption Silent Power On + Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User Perform Custom Fan Curve Test silent @@ -53,6 +54,7 @@ CFC002.001 Custom fan curve performance profile measure (Ubuntu) Set UEFI Option FanCurveOption Performance Power On + Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User Perform Custom Fan Curve Test performance @@ -66,6 +68,7 @@ CFC003.001 Custom fan curve OFF profile measure (Ubuntu) Set UEFI Option FanCurveOption Fans Off Power On + Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User Perform Custom Fan Curve Test off @@ -76,9 +79,6 @@ Perform Custom Fan Curve Test [Documentation] Performs a Custom Fan Curve test for a given profile [Arguments] ${profile} Prepare Sensors - ${result}= Set Variable ${TRUE} - ${fails_in_a_row}= Set Variable 0 - ${max_fails_in_a_row}= Set Variable 0 ${measurements}= Create List ${stress_len}= Evaluate ${CUSTOM_FAN_CURVE_TEST_DURATION}*5 ${cpu_count}= Execute Command In Terminal nproc @@ -95,40 +95,39 @@ Perform Custom Fan Curve Test ${current_time}= Evaluate time.time() ${duration}= Evaluate ${current_time} - ${start_time} Log To Console \n${duration} s. - ${new_result} ${measurement}= Measure And Verify + ${result} ${measurement}= Measure And Verify ... ${profile} ${fan_mode} Append To List ${measurements} ${measurement} - IF not ${result} and not ${new_result} - Log To Console Invalid speed WARN - ${fails_in_a_row}= Evaluate ${fails_in_a_row}+1 - IF ${fails_in_a_row} > ${max_fails_in_a_row} - ${max_fails_in_a_row}= Set Variable ${fails_in_a_row} - END - ELSE - ${fails_in_a_row}= Set Variable 0 - END - ${result}= Set Variable ${new_result} + IF not ${result} Log To Console Invalid fan speed WARN END END Stress Test Stop - ${image}= Save Measurements ${measurements} ${profile} - Log html=true Sleep ${CUSTOM_FAN_CURVE_COOLDOWN_SECONDS}s - IF ${max_fails_in_a_row} > 1 - Log To Console Invalid fan speeds detected. Needs manual verification WARN - Fail Invalid fan speeds detected. Needs manual verification + ${percentile_drop}= Get From Dictionary ${TEMPERATURE_CURVE_SETTINGS} percentile_drop + ${failed_count}= Count Failed Fan Measurements ${measurements} + ${filtered}= Filter Fan Measurements ${measurements} ${percentile_drop} + ${failed_after_filtering}= Count Failed Fan Measurements ${filtered} + ${image}= Save Measurements ${filtered} ${profile}_filtered + Log html=true + + IF ${failed_count} > 0 + ${total_measurements}= Get Length ${measurements} + ${percent_failed}= Evaluate ${failed_count} / ${total_measurements} + ${acceptable_invalid_percent}= Get From Dictionary + ... ${TEMPERATURE_CURVE_SETTINGS} acceptable_invalid_percent + Should Be True ${percent_failed} <= ${acceptable_invalid_percent} + ... Too many measurements were invalid (${percent_failed} > ${acceptable_invalid_percent}) END - # Add a graph of measurements to the logs Measure And Verify [Arguments] ${profile} ${fan_mode} ${fan_speed}= Get Fan Speed ${fan_mode} ${cpu_temp}= Get CPU Temperature - - ${result} ${expected} ${tolerance}= Verify Fan Speeds - ... ${profile} ${fan_speed} ${fan_mode} ${cpu_temp} - + ${range_data}= Get Fan Curve Range ${cpu_temp} ${profile} + ${result} ${expected}= Verify Fan Speeds + ... ${range_data} ${fan_speed} ${fan_mode} ${cpu_temp} + ${tolerance}= Get From Dictionary ${range_data} tolerance_${fan_mode} ${measurement}= Create Dictionary temp=${cpu_temp} ... speed=${fan_speed} expected=${expected} ... tolerance=${tolerance} @@ -138,135 +137,89 @@ Measure And Verify Save Measurements [Documentation] Saves fan speed & temp measurements to csv file - [Arguments] ${measurements} ${profile} + [Arguments] ${measurements} ${name} ${columns}= Create List temp speed expected tolerance - ${file}= Set Variable fan_speeds_${profile} - CSVLibrary.Csv File From Associative ${file}.csv ${measurements} ${columns} - ${image}= Plot Fan Curve ${file} + ${filename}= Set Variable fan_speeds_${name} + ${file_path}= Set Variable ${LOGS_DIR}/${filename} + CSVLibrary.Csv File From Associative ${file_path}.csv ${measurements} ${columns} + ${image}= Plot Fan Curve ${file_path} Fan speeds ${name} RETURN ${image} Verify Fan Speeds [Documentation] Compares RPM/PWM to target values depending ... on CPU temperature and a fan curve. - ... - profile is a string and can be - ... \ either "performance", "silent" or "off" depending on the fan curve[Tags] robot:private - ... \ to compare against. - ... - fan_speed - measured fan speed value - ... - fan_mode - fan measurement unit - rpm or pwm, - ... - cpu_temp - cpu temperature in C - ... returns: - ... - boolean result - ... - expected speed - ... - tolerance [Tags] robot:private - [Arguments] ${profile} ${fan_speed} ${fan_mode} ${cpu_temp} + [Arguments] ${range_data} ${fan_speed} ${fan_mode} ${cpu_temp} - IF '${profile}' == 'silent' - ${expected_fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature In Silent Mode - ... ${cpu_temp} ${fan_mode} - ELSE IF '${profile}' == 'performance' - ${expected_fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature In Performance Mode - ... ${cpu_temp} ${fan_mode} - ELSE IF '${profile}' == 'off' - ${expected_fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature In Off Mode - ... ${cpu_temp} ${fan_mode} - END + ${expected_fan_speed}= Calculate Expected Speed ${cpu_temp} ${fan_mode} ${range_data} + ${tolerance}= Get From Dictionary ${range_data} tolerance_${fan_mode} - ${speed_is_valid}= Verify With Tolerance - ... ${fan_speed} - ... ${expected_fan_speed} - ... ${fan_mode} - ... ${tolerance} - - RETURN ${speed_is_valid} ${expected_fan_speed} ${tolerance} - -Verify With Tolerance - [Documentation] Compares the actual and expected value of the fan speed, - ... taking tolerance into account. - [Tags] robot:private - [Arguments] ${fan_speed} ${expected_speed} ${fan_speed_unit} ${tolerance} - - IF '${fan_speed_unit}' == 'pwm' + IF '${fan_mode}' == 'pwm' ${fan_speed}= Evaluate float(${fan_speed}/2.55) END # RPM Measurements are not as precise as PWM. The margin of error has to be much larger. - IF '${fan_speed_unit}' == 'rpm' + IF '${fan_mode}' == 'rpm' ${smoothing}= Set Variable ${tolerance} - ELSE IF '${fan_speed_unit}' == 'pwm' and ${expected_speed} < 35 + ELSE IF '${fan_mode}' == 'pwm' and ${expected_fan_speed} < 35 ${smoothing}= Evaluate 1 ELSE ${smoothing}= Evaluate ${tolerance} END - ${high_limit}= Evaluate ${expected_speed}+${smoothing} - ${low_limit}= Evaluate ${expected_speed}-${smoothing} - ${result}= Evaluate ${low_limit} < ${fan_speed} < ${high_limit} - RETURN ${result} + ${high_limit}= Evaluate ${expected_fan_speed}+${smoothing} + ${low_limit}= Evaluate ${expected_fan_speed}-${smoothing} + ${speed_is_valid}= Evaluate ${low_limit} < ${fan_speed} < ${high_limit} -Calculate Speed Percentage Based On Temperature - [Documentation] Calculates the expected speed percentage by config file - ... for a given temperature based on an algorithm and a - ... defined curve. Speed unit should be defined as "pwm" or "rpm" to - ... choose the curve unit. + RETURN ${speed_is_valid} ${expected_fan_speed} + +Get Fan Curve Range + [Documentation] Returns the dictionary with settings for temperature + ... range where the current temperature fits for a given profile + [Arguments] ${temperature} ${profile} + IF '${profile}' == 'silent' + ${range_data}= Get Fan Curve Range From Curve ${temperature} @{TEMPERATURE_CURVE_SILENT} + ELSE IF '${profile}' == 'performance' + ${range_data}= Get Fan Curve Range From Curve ${temperature} @{TEMPERATURE_CURVE_PERFORMANCE} + ELSE IF '${profile}' == 'off' + ${range_data}= Get Fan Curve Range From Curve ${temperature} @{TEMPERATURE_CURVE_OFF} + END + RETURN ${range_data} + +Get Fan Curve Range From Curve + [Documentation] Returns the dictionary with settings for temperature + ... range where the current temperature fits [Tags] robot:private - [Arguments] ${temperature} ${speed_unit} @{temperature_curve} + [Arguments] ${temperature} @{temperature_curve} - ${fan_speed}= Evaluate -1 + ${expected_speed}= Evaluate -1 FOR ${range_data} IN @{temperature_curve} ${min_temp} ${max_temp}= Get From Dictionary ${range_data} range - ${eval_min} ${eval_max}= Get From Dictionary ${range_data} evaluation_${speed_unit} - ${tolerance}= Get From Dictionary ${range_data} tolerance_${speed_unit} - # if temperature is equal to start of the range then pwm value will be - # equal to minimal pwm for this range - IF ${temperature} == ${min_temp} - ${fan_speed}= Evaluate float(${eval_min}) - BREAK - # if not check if the temperature is lower than maximum temperature in - # this range and if so, then calculate pwm by finding a linear function - # and its ordinate - ELSE IF ${temperature} < ${max_temp} - ${fan_speed}= Evaluate - ... float(((${eval_max}-${eval_min})/(${max_temp}-${min_temp}))*(${temperature}-${min_temp})+${eval_min}) - BREAK - END + # Ranges are ordered and don't overlap allowing for searching like this + IF ${temperature} < ${max_temp} RETURN ${range_data} END - IF ${fan_speed} == -1 FAIL - RETURN ${fan_speed} ${tolerance} - -Calculate Speed Percentage Based On Temperature In Performance Mode - [Documentation] Calculates the expected speed in performance - ... mode for a given temperature based on an algorithm and a - ... defined curve. - [Tags] robot:private - [Arguments] ${temperature} ${speed_unit} - ${fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature - ... ${temperature} - ... ${speed_unit} - ... @{TEMPERATURE_CURVE_PERFORMANCE} - RETURN ${fan_speed} ${tolerance} - -Calculate Speed Percentage Based On Temperature In Silent Mode - [Documentation] Calculates the expected speed in silent - ... mode for a given temperature based on an algorithm and a - ... defined curve. +Calculate Expected Speed + [Documentation] Calculates the expected speed percentage by config file + ... for a given temperature based on an algorithm and a + ... defined curve. Speed unit should be defined as "pwm" or "rpm" to + ... choose the curve unit. [Tags] robot:private - [Arguments] ${temperature} ${speed_unit} - ${fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature - ... ${temperature} - ... ${speed_unit} - ... @{TEMPERATURE_CURVE_SILENT} - RETURN ${fan_speed} ${tolerance} + [Arguments] ${temperature} ${speed_unit} ${range_data} + + ${expected_speed}= Evaluate -1 + ${min_temp} ${max_temp}= Get From Dictionary ${range_data} range + ${eval_min} ${eval_max}= Get From Dictionary ${range_data} evaluation_${speed_unit} + + IF ${temperature} == ${min_temp} + ${expected_speed}= Evaluate float(${eval_min}) + # if not check if the temperature is lower than maximum temperature in + # this range and if so, then calculate pwm by finding a linear function + # and its ordinate + ELSE IF ${temperature} < ${max_temp} + ${expected_speed}= Evaluate + ... float(((${eval_max}-${eval_min})/(${max_temp}-${min_temp}))*(${temperature}-${min_temp})+${eval_min}) + END -Calculate Speed Percentage Based On Temperature In Off Mode - [Documentation] Calculates the expected speed in off - ... mode for a given temperature based on an algorithm and a - ... defined curve. - [Tags] robot:private - [Arguments] ${temperature} ${speed_unit} - ${fan_speed} ${tolerance}= Calculate Speed Percentage Based On Temperature - ... ${temperature} - ... ${speed_unit} - ... @{TEMPERATURE_CURVE_OFF} - RETURN ${fan_speed} ${tolerance} + IF ${expected_speed} == -1 FAIL + RETURN ${expected_speed} From 3d9bcc887b7f3ed5c7e3d06553e39ed77a116a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Thu, 27 Feb 2025 18:14:25 +0100 Subject: [PATCH 131/416] keywords.robot: remove Power On MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes this error: Suite setup failed: Multiple keywords with name 'Power On' found. Give the full name of the keyword you want to use: keywords.Power On novacustom-common.Power On This implementation was just an empty prototype, remove it. Signed-off-by: Michał Kopeć --- keywords.robot | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/keywords.robot b/keywords.robot index 51df6e04ad..1e2b4335cd 100644 --- a/keywords.robot +++ b/keywords.robot @@ -1462,26 +1462,3 @@ Should Contain All FOR ${substring} IN @{substrings} Should Contain ${string} ${substring} END - -Power On - [Documentation] Clears telnet buffer and sets Device Under Test - ... into Power On state. Has to be implemented in platform configs - ... using the theory of operation of a specific platform. - ... Needs to be implemented in platform-configs. - ... - ... === Requirements === - ... None - ... - ... === Arguments === - ... None - ... - ... === Return Value === - ... None - ... - ... === Effects === - ... - The platform is ON - ... - Telnet buffer is cleared - ... - Always performs a full power cycle, even if the device was ON - ... - Does nothing if ${POWER_CTRL} is set to "none" - - Fail Not Implemented in ${CONFIG}.robot From bd6a4489a1d7843fdf35dca3c05167d408c6c5ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Thu, 27 Feb 2025 18:19:13 +0100 Subject: [PATCH 132/416] platform-cfgs/inc/novacustom-cmn.robot: disable power control MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- platform-configs/include/novacustom-common.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index 120964952a..b05594b234 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -19,7 +19,7 @@ ${IPXE_BOOT_ENTRY}= iPXE Network Boot ${EDK2_IPXE_CHECKPOINT}= iPXE Shell ${MANUFACTURER}= ${TBD} ${CPU}= ${TBD} -${POWER_CTRL}= sonoff +${POWER_CTRL}= none ${FLASH_VERIFY_METHOD}= none ${MAX_CPU_TEMP}= 82 ${AUTO_BOOT_TIME_OUT_DEFAULT_VALUE}= 6 From cbbcf134f5f1ee2e94268fef43e4d450f93f77ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Thu, 27 Feb 2025 18:22:09 +0100 Subject: [PATCH 133/416] requirements.txt: bump for RTE-less support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- requirements.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 9ec9109b10..cde88d77a3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -38,9 +38,7 @@ mdurl==0.1.2 nodeenv==1.8.0 numpy==2.2.3 oauth2client==4.1.3 -osfv @ git+https://github.com/Dasharo/osfv-scripts.git@a6b18bb88051474ec2a44d8f2b37b1405977ab54#subdirectory=osfv_cli -packaging==24.2 -pandas==2.2.3 +osfv @ git+https://github.com/Dasharo/osfv-scripts.git@f65d9682b446cec5d7fd15b24f36186b8aff599d#subdirectory=osfv_cli paramiko==3.4.0 pathspec==0.9.0 pexpect==4.9.0 From ebc7c5eb87f9cb917f0756d84b51ec56b143d12e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 3 Mar 2025 17:55:34 +0100 Subject: [PATCH 134/416] keywords.robot: Remove old import of old fan-curve-config.yaml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- keywords.robot | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/keywords.robot b/keywords.robot index 1e2b4335cd..245adcb5d6 100644 --- a/keywords.robot +++ b/keywords.robot @@ -1,25 +1,24 @@ *** Settings *** -Library Collections -Library OperatingSystem -Resource lib/bios/menus.robot -Resource lib/secure-boot-lib.robot -Resource lib/usb-hid-msc-lib.robot -Resource lib/dts-lib.robot -Resource lib/terminal.robot -Resource lib/esp-scanning-lib.robot -Resource lib/dl-cache.robot -Resource lib/dmidecode-lib.robot -Resource lib/docks.robot -Resource lib/flash.robot -Resource lib/self-tests.robot -Resource lib/sleep-lib.robot -Resource lib/CPU-performance-lib.robot -Resource lib/framework.robot -Resource lib/me.robot -Resource lib/network.robot -Resource lib/options/options.robot -Resource keys.robot -Variables platform-configs/fan-curve-config.yaml +Library Collections +Library OperatingSystem +Resource lib/bios/menus.robot +Resource lib/secure-boot-lib.robot +Resource lib/usb-hid-msc-lib.robot +Resource lib/dts-lib.robot +Resource lib/terminal.robot +Resource lib/esp-scanning-lib.robot +Resource lib/dl-cache.robot +Resource lib/dmidecode-lib.robot +Resource lib/docks.robot +Resource lib/flash.robot +Resource lib/self-tests.robot +Resource lib/sleep-lib.robot +Resource lib/CPU-performance-lib.robot +Resource lib/framework.robot +Resource lib/me.robot +Resource lib/network.robot +Resource lib/options/options.robot +Resource keys.robot *** Keywords *** From 532d1866bb64af76e678e57875ef330f26a8c3e0 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Mon, 3 Mar 2025 16:28:26 +0100 Subject: [PATCH 135/416] Protectli VP2420: platform-specific CPU & RAM information + Power On fix Signed-off-by: Mateusz Maciejewski --- keywords.robot | 4 ++++ platform-configs/include/protectli-common.robot | 3 --- platform-configs/protectli-vp2420.robot | 9 +++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/keywords.robot b/keywords.robot index 245adcb5d6..6e2d698ab9 100644 --- a/keywords.robot +++ b/keywords.robot @@ -1461,3 +1461,7 @@ Should Contain All FOR ${substring} IN @{substrings} Should Contain ${string} ${substring} END + +Power On + [Documentation] Implementation of keywords.Power On + Power On Default diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index 70936ef18b..42d945033b 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -132,9 +132,6 @@ ${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 *** Keywords *** -Power On - [Documentation] Implementation of keywords.Power On - Power On Default Check Coreboot Components Measurement [Documentation] Check whether the hashes of the coreboot components diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index c01fa5bfff..dc9ebeac44 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -20,6 +20,15 @@ ${CPU_MIN_FREQUENCY}= 300 ${WATCHDOG_SUPPORT}= ${TRUE} +${DEF_THREADS_TOTAL}= 4 +${DEF_THREADS_PER_CORE}= 1 +${DEF_CORES_PER_SOCKET}= 4 +${DEF_SOCKETS}= 1 + +${PLATFORM_CPU_SPEED}= 2.00 +${PLATFORM_RAM_SPEED}= 2933 +${PLATFORM_RAM_SIZE}= 8192 + @{ETH_PERF_PAIR_2_G}= enp3s0 enp4s0 @{ETH_PORTS}= 00-e0-67-1c-29-79 From f2a770904012b0d2f25e7a2dca2cae50381ee128 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Tue, 4 Mar 2025 11:40:10 +0100 Subject: [PATCH 136/416] Protectli VP2420 v1.2.1rc6: CPU & WiFi config changed More CPU-related options added to platform config, WiFi configuration switched to Qualcomm Atheros on both OSes. Signed-off-by: Mateusz Maciejewski --- platform-configs/protectli-vp2420.robot | 3 +++ 1 file changed, 3 insertions(+) diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index dc9ebeac44..24dca5e646 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -24,11 +24,14 @@ ${DEF_THREADS_TOTAL}= 4 ${DEF_THREADS_PER_CORE}= 1 ${DEF_CORES_PER_SOCKET}= 4 ${DEF_SOCKETS}= 1 +${DEF_ONLINE_CPU}= 0-3 ${PLATFORM_CPU_SPEED}= 2.00 ${PLATFORM_RAM_SPEED}= 2933 ${PLATFORM_RAM_SIZE}= 8192 +${WIFI_CARD}= Qualcomm Atheros QCA61x4A Wireless Network Adapter +${WIFI_CARD_UBUNTU}= Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter @{ETH_PERF_PAIR_2_G}= enp3s0 enp4s0 @{ETH_PORTS}= 00-e0-67-1c-29-79 From bb8a40147f942b799c9849e5bcc9f021bcd9c0ef Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Mon, 3 Mar 2025 16:28:26 +0100 Subject: [PATCH 137/416] Protectli VP2420: platform-specific CPU & RAM information + Power On fix Signed-off-by: Mateusz Maciejewski --- platform-configs/protectli-vp2420.robot | 3 +++ 1 file changed, 3 insertions(+) diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index 24dca5e646..fd13044044 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -30,8 +30,11 @@ ${PLATFORM_CPU_SPEED}= 2.00 ${PLATFORM_RAM_SPEED}= 2933 ${PLATFORM_RAM_SIZE}= 8192 +<<<<<<< HEAD ${WIFI_CARD}= Qualcomm Atheros QCA61x4A Wireless Network Adapter ${WIFI_CARD_UBUNTU}= Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter +======= +>>>>>>> 58f57b7fdfe4 (Protectli VP2420: platform-specific CPU & RAM information + Power On fix) @{ETH_PERF_PAIR_2_G}= enp3s0 enp4s0 @{ETH_PORTS}= 00-e0-67-1c-29-79 From 98933767a68aaf0bfb273aee6e7bcd7147260534 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Tue, 4 Mar 2025 16:19:23 +0100 Subject: [PATCH 138/416] lib/terminal.robot: Telnet library wrapper fix, Write Bare Into Terminal Interval argument (second one) with default value 'None' added to Write Bare Into Terminal keyword, for compatibility with: https://github.com/3mdeb/robotframework fork. Signed-off-by: Mateusz Maciejewski --- lib/terminal.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/terminal.robot b/lib/terminal.robot index 5b4d41f4ab..1ea6d2d882 100644 --- a/lib/terminal.robot +++ b/lib/terminal.robot @@ -256,9 +256,9 @@ Write Bare Into Terminal ... ... === Effects === ... The ``${text}`` is written to the terminal - [Arguments] ${text} + [Arguments] ${text} ${interval}=None IF '${DUT_CONNECTION_METHOD}' == 'Telnet' - Telnet.Write Bare ${text} + Telnet.Write Bare ${text} ${interval} ELSE IF '${DUT_CONNECTION_METHOD}' == 'SSH' SSHLibrary.Write Bare ${text} ELSE IF '${DUT_CONNECTION_METHOD}' == 'open-bmc' From f87864c4820beea174957b7012c1d7832174fac1 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Wed, 5 Mar 2025 15:42:41 +0100 Subject: [PATCH 139/416] robotidy errors fixed. Signed-off-by: Mateusz Maciejewski --- platform-configs/include/protectli-common.robot | 1 - 1 file changed, 1 deletion(-) diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index 42d945033b..bab671be93 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -132,7 +132,6 @@ ${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 *** Keywords *** - Check Coreboot Components Measurement [Documentation] Check whether the hashes of the coreboot components ... measurements have been stored in the TPM PCR registers. From 7c704b905d3c3914990ea4fe8e7583abc9580f0b Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Wed, 5 Mar 2025 15:04:54 +0100 Subject: [PATCH 140/416] Power On moved back to protectli-common. Signed-off-by: Mateusz Maciejewski --- keywords.robot | 4 ---- platform-configs/include/protectli-common.robot | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keywords.robot b/keywords.robot index 6e2d698ab9..245adcb5d6 100644 --- a/keywords.robot +++ b/keywords.robot @@ -1461,7 +1461,3 @@ Should Contain All FOR ${substring} IN @{substrings} Should Contain ${string} ${substring} END - -Power On - [Documentation] Implementation of keywords.Power On - Power On Default diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index bab671be93..70936ef18b 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -132,6 +132,10 @@ ${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 *** Keywords *** +Power On + [Documentation] Implementation of keywords.Power On + Power On Default + Check Coreboot Components Measurement [Documentation] Check whether the hashes of the coreboot components ... measurements have been stored in the TPM PCR registers. From 2c6d5762f5764b89840a7709ce1f2af150a5ea34 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Wed, 5 Mar 2025 17:15:57 +0100 Subject: [PATCH 141/416] Merge mistake fixed. Signed-off-by: Mateusz Maciejewski --- platform-configs/protectli-vp2420.robot | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index fd13044044..bd9bca821d 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -10,7 +10,8 @@ ${FLASHING_METHOD}= internal ${E_MMC_NAME}= 8GTF4R ${DMIDECODE_SERIAL_NUMBER}= N/A -${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v1.2.1-rc3 +${DMIDECODE_FIRMWARE_VERSION}= +... Dasharo (coreboot+UEFI) v1.2.1-rc3 ${DMIDECODE_PRODUCT_NAME}= VP2420 ${DMIDECODE_RELEASE_DATE}= 1/13/2025 ${DMIDECODE_TYPE}= Desktop @@ -30,11 +31,9 @@ ${PLATFORM_CPU_SPEED}= 2.00 ${PLATFORM_RAM_SPEED}= 2933 ${PLATFORM_RAM_SIZE}= 8192 -<<<<<<< HEAD ${WIFI_CARD}= Qualcomm Atheros QCA61x4A Wireless Network Adapter ${WIFI_CARD_UBUNTU}= Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter -======= ->>>>>>> 58f57b7fdfe4 (Protectli VP2420: platform-specific CPU & RAM information + Power On fix) + @{ETH_PERF_PAIR_2_G}= enp3s0 enp4s0 @{ETH_PORTS}= 00-e0-67-1c-29-79 From 1615ebd3d0b915e6d281c0464bfd4edb6b8a4703 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 14 Feb 2025 11:26:37 +0100 Subject: [PATCH 142/416] display-ports-and-lcd-support: Add fedora test case MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../display-ports-and-lcd-support.robot | 29 +++++++++++++++---- lib/bios/menus.robot | 1 + platform-configs/include/default.robot | 2 ++ platform-configs/qemu.robot | 3 ++ 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/dasharo-compatibility/display-ports-and-lcd-support.robot b/dasharo-compatibility/display-ports-and-lcd-support.robot index 59caa409f2..36eab8e44f 100644 --- a/dasharo-compatibility/display-ports-and-lcd-support.robot +++ b/dasharo-compatibility/display-ports-and-lcd-support.robot @@ -49,12 +49,8 @@ DSP002.001 - External HDMI display in OS (Ubuntu) ... the platform config. Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP003.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP003.001 not supported - Power On - Boot System Or From Connected Disk ubuntu - Login To Linux - Switch To Root User - Check External HDMI In Linux - Exit From Root User + Skip If "ubuntu" not in $TESTED_LINUX_DISTROS + DSP002 - External HDMI Display ubuntu DSP002.002 - External HDMI display in OS (Windows) [Documentation] Check whether an external HDMI display is visible in @@ -66,6 +62,15 @@ DSP002.002 - External HDMI display in OS (Windows) Login To Windows Check HDMI Windows +DSP002.003 - External HDMI display in OS (Fedora) + [Documentation] Check whether an external HDMI display is visible in + ... Fedora OS. An external HDMI display must be provided in + ... the platform config. + Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP002.002 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP002.002 not supported + Skip If "fedora" not in $TESTED_LINUX_DISTROS + DSP002 - External HDMI Display fedora + DSP003.001 - External DP display in OS (Ubuntu) [Documentation] Check whether an external Display Port is visible in ... Linux OS. An external Display Port must be provided in @@ -86,5 +91,17 @@ DSP003.002 - External DP display in OS (Windows) Skip If not ${EXTERNAL_DISPLAY_PORT_SUPPORT} DSP003.002 not supported Skip If not ${TESTS_IN_WINDOWS_SUPPORT} DSP003.002 not supported Power On + Boot System Or From Connected Disk windows Login To Windows Check DP Windows + + +*** Keywords *** +DSP002 - External HDMI Display + [Arguments] ${tested_os} + Power On + Boot System Or From Connected Disk ${tested_os} + Login To Linux + Switch To Root User + Check External HDMI In Linux + Exit From Root User diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index b0e5fb9961..a54ad771ef 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -1159,6 +1159,7 @@ Boot System Or From Connected Disk # robocop: disable=too-long-keyword ... - Does nothing if ${DUT_CONNECTION_METHOD}' == 'SSH' - selecting OS's ... \ not supported via ssh. [Arguments] ${system_name} ${boot_menu}=NOT_SET + Set Suite Variable ${BOOTED_OS} ${system_name} IF '${DUT_CONNECTION_METHOD}' == 'SSH' RETURN diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 732563549a..c35fa1595e 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -278,6 +278,8 @@ ${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}= NetworkBoot ${ETH_PORTS}= ${EMPTY} +${TESTED_LINUX_DISTROS}= ${TBD} + *** Keywords *** Power On Default diff --git a/platform-configs/qemu.robot b/platform-configs/qemu.robot index 205bf2e298..68e8a4b789 100644 --- a/platform-configs/qemu.robot +++ b/platform-configs/qemu.robot @@ -84,6 +84,9 @@ ${AUTO_BOOT_TIME_OUT_DEFAULT_VALUE}= 0 # Test module: dasharo-stability ${CAPSULE_UPDATE_SUPPORT}= ${TRUE} +${EXTERNAL_HDMI_DISPLAY_SUPPORT}= ${TRUE} +${TESTED_LINUX_DISTROS}= ubuntu fedora + *** Keywords *** Power On From 717364c09812a2a44611b53fdb9b4cb144760621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 17 Feb 2025 11:30:38 +0100 Subject: [PATCH 143/416] os-config/environment-test-ids: Add & use in DSP002 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/display-ports-and-lcd-support.robot | 6 +++--- os-config/environment-test-ids.robot | 7 +++++++ platform-configs/include/default.robot | 1 + 3 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 os-config/environment-test-ids.robot diff --git a/dasharo-compatibility/display-ports-and-lcd-support.robot b/dasharo-compatibility/display-ports-and-lcd-support.robot index 36eab8e44f..ed946cb5cb 100644 --- a/dasharo-compatibility/display-ports-and-lcd-support.robot +++ b/dasharo-compatibility/display-ports-and-lcd-support.robot @@ -43,7 +43,7 @@ DSP001.003 - Internal display in OS (Windows) Login To Windows Check Internal LCD Windows -DSP002.001 - External HDMI display in OS (Ubuntu) +DSP002.903 - External HDMI display in OS (Ubuntu) [Documentation] Check whether an external HDMI display is visible in ... Linux OS. An external HDMI display must be provided in ... the platform config. @@ -52,7 +52,7 @@ DSP002.001 - External HDMI display in OS (Ubuntu) Skip If "ubuntu" not in $TESTED_LINUX_DISTROS DSP002 - External HDMI Display ubuntu -DSP002.002 - External HDMI display in OS (Windows) +DSP002.904 - External HDMI display in OS (Windows) [Documentation] Check whether an external HDMI display is visible in ... Windows OS. An external HDMI display must be provided in ... the platform config. @@ -62,7 +62,7 @@ DSP002.002 - External HDMI display in OS (Windows) Login To Windows Check HDMI Windows -DSP002.003 - External HDMI display in OS (Fedora) +DSP002.905 - External HDMI display in OS (Fedora) [Documentation] Check whether an external HDMI display is visible in ... Fedora OS. An external HDMI display must be provided in ... the platform config. diff --git a/os-config/environment-test-ids.robot b/os-config/environment-test-ids.robot new file mode 100644 index 0000000000..9f440a6bc7 --- /dev/null +++ b/os-config/environment-test-ids.robot @@ -0,0 +1,7 @@ +*** Variables *** +${ENV_ID_EDK2_SETUP_MENU}= 901 +${ENV_ID_EDK2_UEFI_SHELL}= 902 +${ENV_ID_UBUNTU}= 903 +${ENV_ID_WINDOWS}= 904 +${ENV_ID_FEDORA}= 905 +${ENV_ID_QUBES}= 906 diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index c35fa1595e..7b4ab08f32 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -2,6 +2,7 @@ Resource ../../os-config/windows-credentials.robot Resource ../../os-config/ubuntu-credentials.robot Resource ../../lib/options/${OPTIONS_LIB}.robot +Resource ../../os-config/environment-test-ids.robot *** Variables *** From 69813a6362fd7154166182a0248bc0aee86e3c3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 17 Feb 2025 11:38:55 +0100 Subject: [PATCH 144/416] display-ports-and-lcd-support: Use ENV_IDS from os-config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/display-ports-and-lcd-support.robot | 4 ++-- platform-configs/qemu.robot | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dasharo-compatibility/display-ports-and-lcd-support.robot b/dasharo-compatibility/display-ports-and-lcd-support.robot index ed946cb5cb..81fe10730c 100644 --- a/dasharo-compatibility/display-ports-and-lcd-support.robot +++ b/dasharo-compatibility/display-ports-and-lcd-support.robot @@ -49,7 +49,7 @@ DSP002.903 - External HDMI display in OS (Ubuntu) ... the platform config. Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP003.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP003.001 not supported - Skip If "ubuntu" not in $TESTED_LINUX_DISTROS + Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" DSP002 - External HDMI Display ubuntu DSP002.904 - External HDMI display in OS (Windows) @@ -68,7 +68,7 @@ DSP002.905 - External HDMI display in OS (Fedora) ... the platform config. Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP002.002 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP002.002 not supported - Skip If "fedora" not in $TESTED_LINUX_DISTROS + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" DSP002 - External HDMI Display fedora DSP003.001 - External DP display in OS (Ubuntu) diff --git a/platform-configs/qemu.robot b/platform-configs/qemu.robot index 68e8a4b789..d10a58c902 100644 --- a/platform-configs/qemu.robot +++ b/platform-configs/qemu.robot @@ -85,7 +85,7 @@ ${AUTO_BOOT_TIME_OUT_DEFAULT_VALUE}= 0 ${CAPSULE_UPDATE_SUPPORT}= ${TRUE} ${EXTERNAL_HDMI_DISPLAY_SUPPORT}= ${TRUE} -${TESTED_LINUX_DISTROS}= ubuntu fedora +${TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} ${ENV_ID_FEDORA} *** Keywords *** From b7db3e71bf72204a68173a0c909f13fc5df994cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 18 Feb 2025 14:21:34 +0100 Subject: [PATCH 145/416] Import OS credentials dynamically MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Boot System Or From Connected Disk has to be called to import the variables according to which os is being booted Signed-off-by: Filip Gołaś --- keywords.robot | 22 +++++++++---------- lib/bios/menus.robot | 1 + lib/network.robot | 2 +- os-config/fedora-credentials.py | 10 +++++++++ os-config/ubuntu-credentials.py | 10 +++++++++ os-config/ubuntu-credentials.robot | 11 ---------- os-config/windows-credentials.py | 9 ++++++++ os-config/windows-credentials.robot | 5 ----- platform-configs/include/default.robot | 11 ++++------ .../include/novacustom-common.robot | 3 --- 10 files changed, 46 insertions(+), 38 deletions(-) create mode 100644 os-config/fedora-credentials.py create mode 100644 os-config/ubuntu-credentials.py delete mode 100644 os-config/ubuntu-credentials.robot create mode 100644 os-config/windows-credentials.py delete mode 100644 os-config/windows-credentials.robot diff --git a/keywords.robot b/keywords.robot index 245adcb5d6..2efbe21ada 100644 --- a/keywords.robot +++ b/keywords.robot @@ -53,12 +53,12 @@ Login To Linux ... 3x ... 0 ... Login To Linux Via SSH - ... ${DEVICE_UBUNTU_USERNAME} - ... ${DEVICE_UBUNTU_PASSWORD} + ... ${DEVICE_OS_USERNAME} + ... ${DEVICE_OS_PASSWORD} ELSE IF '${DUT_CONNECTION_METHOD}' == 'open-bmc' Login To Linux Via OBMC root root ELSE - Login To Linux Over Serial Console ${DEVICE_UBUNTU_USERNAME} ${DEVICE_UBUNTU_PASSWORD} + Login To Linux Over Serial Console ${DEVICE_OS_USERNAME} ${DEVICE_OS_PASSWORD} END Login To Linux Via OBMC @@ -121,14 +121,14 @@ Login To Linux Over Serial Console ... long we want to wait for the login prompt. [Arguments] ${username} ... ${password} - ... ${device_ubuntu_user_prompt}=${device_ubuntu_user_prompt} + ... ${device_os_user_prompt}=${device_os_user_prompt} ... ${timeout}=300 Set DUT Response Timeout ${timeout} seconds Telnet.Read Until login: Telnet.Write ${username} Telnet.Read Until Password: Telnet.Write ${password} - Telnet.Set Prompt ${device_ubuntu_user_prompt} prompt_is_regexp=False + Telnet.Set Prompt ${device_os_user_prompt} prompt_is_regexp=False Telnet.Read Until Prompt Login To Linux Via SSH @@ -136,7 +136,7 @@ Login To Linux Via SSH ... username and password respectively. The optional timeout ... parameter can be used to specify how long we want to ... wait for the login prompt. - [Arguments] ${username} ${password} ${timeout}=180 ${prompt}=${DEVICE_UBUNTU_USER_PROMPT} + [Arguments] ${username} ${password} ${timeout}=180 ${prompt}=${DEVICE_OS_USER_PROMPT} Should Not Be Empty ${DEVICE_IP} msg=DEVICE_IP variable must be defined # We need this when switching from PiKVM to SSH Remap Keys Variables From PiKVM @@ -199,15 +199,15 @@ Switch To Root User # the "sudo -S" to pass password from stdin does not work correctly with # the su command and we need to type in the password Write Into Terminal sudo su - Read From Terminal Until [sudo] password for ${DEVICE_UBUNTU_USERNAME}: - Write Into Terminal ${DEVICE_UBUNTU_PASSWORD} - Set Prompt For Terminal ${DEVICE_UBUNTU_ROOT_PROMPT} + Read From Terminal Until [sudo] password for ${DEVICE_OS_USERNAME}: + Write Into Terminal ${DEVICE_OS_PASSWORD} + Set Prompt For Terminal ${DEVICE_OS_ROOT_PROMPT} Read From Terminal Until Prompt Exit From Root User [Documentation] Exit from the root environment Write Into Terminal exit - Set Prompt For Terminal ${DEVICE_UBUNTU_USER_PROMPT} + Set Prompt For Terminal ${DEVICE_OS_USER_PROMPT} Read From Terminal Until Prompt Open Connection And Log In @@ -1180,7 +1180,7 @@ Login To Linux With Root Privileges ... platform type. IF '${DUT_CONNECTION_METHOD}' == 'SSH' Run Keywords - ... Login To Linux Via SSH ${DEVICE_UBUNTU_USERNAME} ${DEVICE_UBUNTU_PASSWORD} + ... Login To Linux Via SSH ${DEVICE_OS_USERNAME} ${DEVICE_OS_PASSWORD} ... AND ... Switch To Root User END diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index a54ad771ef..8563732193 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -1160,6 +1160,7 @@ Boot System Or From Connected Disk # robocop: disable=too-long-keyword ... \ not supported via ssh. [Arguments] ${system_name} ${boot_menu}=NOT_SET Set Suite Variable ${BOOTED_OS} ${system_name} + Import Variables ${CURDIR}/../../os-config/${system_name}-credentials.py IF '${DUT_CONNECTION_METHOD}' == 'SSH' RETURN diff --git a/lib/network.robot b/lib/network.robot index 7b4ec122e6..7422089211 100644 --- a/lib/network.robot +++ b/lib/network.robot @@ -23,7 +23,7 @@ Send File To DUT END Execute Command In Terminal rm -f ${target_path} SSHLibrary.Open Connection ${ip_address} port=${port} - SSHLibrary.Login ${DEVICE_UBUNTU_USERNAME} ${DEVICE_UBUNTU_PASSWORD} + SSHLibrary.Login ${DEVICE_OS_USERNAME} ${DEVICE_OS_PASSWORD} SSHLibrary.Put File ${source_path} ${target_path} SSHLibrary.Close Connection ELSE diff --git a/os-config/fedora-credentials.py b/os-config/fedora-credentials.py new file mode 100644 index 0000000000..d6a1698171 --- /dev/null +++ b/os-config/fedora-credentials.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: 2025 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +DEVICE_OS_USERNAME = "linux" +DEVICE_OS_PASSWORD = "linux" +DEVICE_OS_HOSTNAME = "3mdeb" + +DEVICE_OS_USER_PROMPT = f"[{DEVICE_OS_USERNAME}@{DEVICE_OS_HOSTNAME} ~]$" +DEVICE_OS_ROOT_PROMPT = f"[root@{DEVICE_OS_HOSTNAME} {DEVICE_OS_USERNAME}]#" diff --git a/os-config/ubuntu-credentials.py b/os-config/ubuntu-credentials.py new file mode 100644 index 0000000000..5207372a36 --- /dev/null +++ b/os-config/ubuntu-credentials.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: 2025 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +DEVICE_OS_USERNAME = "ubuntu" +DEVICE_OS_PASSWORD = "ubuntu" +DEVICE_OS_HOSTNAME = "3mdeb" + +DEVICE_OS_USER_PROMPT = f"{DEVICE_OS_USERNAME}@{DEVICE_OS_HOSTNAME}:~$" +DEVICE_OS_ROOT_PROMPT = f"root@{DEVICE_OS_HOSTNAME}:/home/{DEVICE_OS_USERNAME}#" diff --git a/os-config/ubuntu-credentials.robot b/os-config/ubuntu-credentials.robot deleted file mode 100644 index a1c4719e92..0000000000 --- a/os-config/ubuntu-credentials.robot +++ /dev/null @@ -1,11 +0,0 @@ -*** Variables *** -# TODO: we still cannot have stable username/password/hostname -# across installations. At least hostname has been defined, and -# username and hostname variables are used in the prompts. Before, -# we needed to change them in prompts as well. -${UBUNTU_USERNAME}= ubuntu -${UBUNTU_PASSWORD}= ubuntu -${UBUNTU_HOSTNAME}= 3mdeb - -${UBUNTU_USER_PROMPT}= ${UBUNTU_USERNAME}@${UBUNTU_HOSTNAME}:~$ -${UBUNTU_ROOT_PROMPT}= root@${UBUNTU_HOSTNAME}:/home/${UBUNTU_USERNAME}# diff --git a/os-config/windows-credentials.py b/os-config/windows-credentials.py new file mode 100644 index 0000000000..b209658e4a --- /dev/null +++ b/os-config/windows-credentials.py @@ -0,0 +1,9 @@ +# SPDX-FileCopyrightText: 2025 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +OS_USERNAME = "user" +OS_PASSWORD = "windows" + +OS_USER_PROMPT = f"PS C:\\Users\\{OS_USERNAME}>" +OS_ROOT_PROMPT = f"PS C:\\Users\\{OS_USERNAME}>" diff --git a/os-config/windows-credentials.robot b/os-config/windows-credentials.robot deleted file mode 100644 index f114c32d61..0000000000 --- a/os-config/windows-credentials.robot +++ /dev/null @@ -1,5 +0,0 @@ -*** Variables *** -${WINDOWS_USERNAME}= user -${WINDOWS_PASSWORD}= windows - -${WINDOWS_USER_PROMPT}= PS C:\\Users\\${WINDOWS_USERNAME}> diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 7b4ab08f32..cfa0956d79 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -42,14 +42,11 @@ ${LAPTOP_EC_SERIAL_WORKAROUND}= ${FALSE} ${OPTIONS_LIB}= options-lib_uefi-setup-menu # OS config -${DEVICE_WINDOWS_USERNAME}= ${WINDOWS_USERNAME} -${DEVICE_WINDOWS_PASSWORD}= ${WINDOWS_PASSWORD} -${DEVICE_WINDOWS_USER_PROMPT}= ${WINDOWS_USER_PROMPT} +${DEVICE_OS_USERNAME}= ${TBD} +${DEVICE_OS_PASSWORD}= ${TBD} +${DEVICE_OS_USER_PROMPT}= ${TBD} +${DEVICE_OS_ROOT_PROMPT}= ${TBD} -${DEVICE_UBUNTU_USERNAME}= ${UBUNTU_USERNAME} -${DEVICE_UBUNTU_PASSWORD}= ${UBUNTU_PASSWORD} -${DEVICE_UBUNTU_USER_PROMPT}= ${UBUNTU_USER_PROMPT} -${DEVICE_UBUNTU_ROOT_PROMPT}= ${UBUNTU_ROOT_PROMPT} ${3_MDEB_WIFI_NETWORK}= 3mdeb_Laboratorium ${FW_VERSION}= ${TBD} diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index b05594b234..e583d4cbc3 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -41,9 +41,6 @@ ${TESTS_IN_FIRMWARE_SUPPORT}= ${FALSE} ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} -${DEVICE_UBUNTU_USER_PROMPT}= ${UBUNTU_USER_PROMPT} -${DEVICE_UBUNTU_ROOT_PROMPT}= ${UBUNTU_ROOT_PROMPT} - # Regression test flags ${DASHARO_SECURITY_MENU_SUPPORT}= ${TRUE} ${DASHARO_USB_MENU_SUPPORT}= ${TRUE} From 374e60498a447186fb1ef2ead0cca4b423c5560b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 18 Feb 2025 14:42:11 +0100 Subject: [PATCH 146/416] platform-configs: Devine settings for dynamic credentials importing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- platform-configs/include/default.robot | 2 +- platform-configs/novacustom-ns50mu.robot | 2 ++ platform-configs/novacustom-v540tu.robot | 4 +++- platform-configs/qemu.robot | 3 --- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index cfa0956d79..fc69d6695c 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -276,7 +276,7 @@ ${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}= NetworkBoot ${ETH_PORTS}= ${EMPTY} -${TESTED_LINUX_DISTROS}= ${TBD} +${TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} *** Keywords *** diff --git a/platform-configs/novacustom-ns50mu.robot b/platform-configs/novacustom-ns50mu.robot index 71e7848c39..81adf190c0 100644 --- a/platform-configs/novacustom-ns50mu.robot +++ b/platform-configs/novacustom-ns50mu.robot @@ -29,3 +29,5 @@ ${EC_NO_SYNC_DOWNLOAD_LINK}= ${FW_NO_EC_SYNC_VERSION}= v1.5.1 ${EC_NO_SYNC_VERSION}= 2023-10-31_f148431 ${POWER_CTRL}= none + +${TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} diff --git a/platform-configs/novacustom-v540tu.robot b/platform-configs/novacustom-v540tu.robot index d1e812ce9b..2df977fd79 100644 --- a/platform-configs/novacustom-v540tu.robot +++ b/platform-configs/novacustom-v540tu.robot @@ -1,6 +1,6 @@ *** Settings *** -Resource include/novacustom-common.robot Resource include/novacustom-mtl.robot +Resource include/novacustom-common.robot *** Variables *** @@ -16,3 +16,5 @@ ${CPU_MAX_FREQUENCY}= 4800 ${CPU_MIN_FREQUENCY}= 300 ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${FALSE} + +${TESTED_LINUX_DISTROS}= ${ENV_ID_FEDORA} diff --git a/platform-configs/qemu.robot b/platform-configs/qemu.robot index d10a58c902..205bf2e298 100644 --- a/platform-configs/qemu.robot +++ b/platform-configs/qemu.robot @@ -84,9 +84,6 @@ ${AUTO_BOOT_TIME_OUT_DEFAULT_VALUE}= 0 # Test module: dasharo-stability ${CAPSULE_UPDATE_SUPPORT}= ${TRUE} -${EXTERNAL_HDMI_DISPLAY_SUPPORT}= ${TRUE} -${TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} ${ENV_ID_FEDORA} - *** Keywords *** Power On From 51a25aab835e2e727005c9e523064c995e2c7772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 21 Feb 2025 15:06:48 +0100 Subject: [PATCH 147/416] docs/tests-naming-convention: Add document MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/tests-naming-convention.md | 46 +++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs/tests-naming-convention.md diff --git a/docs/tests-naming-convention.md b/docs/tests-naming-convention.md new file mode 100644 index 0000000000..954ff86d0f --- /dev/null +++ b/docs/tests-naming-convention.md @@ -0,0 +1,46 @@ + + +# Tests naming Conventipm + +The tests in the Open Source Firmware Validation repository use the following +naming convention: + +`.` + +where: +- `suite_id` - It's typically 3 to 4 letters, uppercase, identifies the + test suite. Should be related to what the test suite accomplishes. + Examples: +- `PSW001.001` - the `PSW` test suite tests the UEFI setup password functionality. + Name is clearly derived from the word `Password`. +- `CBO001.001` - the suite tests customizing the boot order. The name is an acronym + of `Custom Boot Order` +- `case_id` - It's a three digit number with leading zeros. Identifies test + cases in a test suite. Typically test cases are numbered incrementally + starting from `001`. + Examples: + + `VBO001.001` + + `VBO002.001` + + `VBO003.001` + + `VBO004.001` +- `environment_id` - A three digit number, unambiguously identifies the + environment in which the test case is performed. The IDs of environments + are separated into groups based on the leading digit: + + `1xx` - Firmware + Example: `101` - EDK2 UEFI + + `2xx` - Linux + Example: `201` - Ubuntu + + `3xx` - Windows + Example: `301` - Windows 11 + +All the `environment_id`s of all the tested environments are defined as +Robot Framework variables in the `os-config/environment-test-ids.robot` +file. + +**❗Note:** in old test cases the `environment_id` segment was used more +loosely. `environment_id`s with leading `0` don't use the +convention above. From 67d4af0e8a48f46c1f1e079214b11901cfd7459c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 21 Feb 2025 15:24:55 +0100 Subject: [PATCH 148/416] environment-test-ids: Update and use in DSP002 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/display-ports-and-lcd-support.robot | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dasharo-compatibility/display-ports-and-lcd-support.robot b/dasharo-compatibility/display-ports-and-lcd-support.robot index 81fe10730c..5f410801ff 100644 --- a/dasharo-compatibility/display-ports-and-lcd-support.robot +++ b/dasharo-compatibility/display-ports-and-lcd-support.robot @@ -43,7 +43,7 @@ DSP001.003 - Internal display in OS (Windows) Login To Windows Check Internal LCD Windows -DSP002.903 - External HDMI display in OS (Ubuntu) +DSP002.201 - External HDMI display in OS (Ubuntu) [Documentation] Check whether an external HDMI display is visible in ... Linux OS. An external HDMI display must be provided in ... the platform config. @@ -52,7 +52,7 @@ DSP002.903 - External HDMI display in OS (Ubuntu) Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" DSP002 - External HDMI Display ubuntu -DSP002.904 - External HDMI display in OS (Windows) +DSP002.301 - External HDMI display in OS (Windows) [Documentation] Check whether an external HDMI display is visible in ... Windows OS. An external HDMI display must be provided in ... the platform config. @@ -62,7 +62,7 @@ DSP002.904 - External HDMI display in OS (Windows) Login To Windows Check HDMI Windows -DSP002.905 - External HDMI display in OS (Fedora) +DSP002.202 - External HDMI display in OS (Fedora) [Documentation] Check whether an external HDMI display is visible in ... Fedora OS. An external HDMI display must be provided in ... the platform config. From ba85e3be9c3a2e7cb0a7d9d6eebaf59070524ced Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Feb 2025 16:25:31 +0100 Subject: [PATCH 149/416] Make sure os-config credentials are being imported when switching OS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../display-ports-and-lcd-support.robot | 1 + keywords.robot | 5 ++++- lib/options/options-lib_dcu.robot | 3 +++ os-config/environment-test-ids.robot | 19 +++++++++++++------ platform-configs/include/default.robot | 3 +-- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/dasharo-compatibility/display-ports-and-lcd-support.robot b/dasharo-compatibility/display-ports-and-lcd-support.robot index 5f410801ff..ca195ede5c 100644 --- a/dasharo-compatibility/display-ports-and-lcd-support.robot +++ b/dasharo-compatibility/display-ports-and-lcd-support.robot @@ -59,6 +59,7 @@ DSP002.301 - External HDMI display in OS (Windows) Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP002.002 not supported Skip If not ${TESTS_IN_WINDOWS_SUPPORT} DSP002.002 not supported Power On + Boot System Or From Connected Disk windows Login To Windows Check HDMI Windows diff --git a/keywords.robot b/keywords.robot index 2efbe21ada..066be7def1 100644 --- a/keywords.robot +++ b/keywords.robot @@ -486,7 +486,7 @@ Prepare Test Suite Import Osfv Libraries [Documentation] Import osfv_cli libraries based on config and command ... line variables - IF '${OPTIONS_LIB}'=='options-lib_options-lib_dcu' RETURN + IF '${OPTIONS_LIB}'=='options-lib_dcu' RETURN Log ${SNIPEIT} IF '${SNIPEIT}' == 'yes' Import Library osfv.rf.snipeit_robot @@ -524,6 +524,9 @@ Prepare To SSH Connection ... the SSH protocol # tu leci zmiana, musimy brać platformy zgodnie z tym co zostało pobrane w dasharo Set Global Variable ${PLATFORM} ${CONFIG} + IF '${DEFAULT_BOOT_OS}' + Import Variables ../../os-config/${DEFAULT_BOOT_OS}-credentials.py + END SSHLibrary.Set Default Configuration timeout=60 seconds IF '${SNIPEIT}'=='no' RETURN diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index 48782512ab..47ee6abd8e 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -141,6 +141,8 @@ Boot System Or From Connected Disk ${os_boot_id}= Set Variable ${EMPTY} ${os}= Convert To Lower Case ${os} + Import Variables ../../os-config/ubuntu-credentials.py + Login To Linux Switch To Root User @@ -164,6 +166,7 @@ Boot System Or From Connected Disk Execute Command In Terminal efibootmgr --bootnext ${id} Sleep 1s Write Into Terminal reboot + Import Variables ../../os-config/${os}-credentials.py Sleep 30s ELSE Fail Os entry not found diff --git a/os-config/environment-test-ids.robot b/os-config/environment-test-ids.robot index 9f440a6bc7..1188b2c51d 100644 --- a/os-config/environment-test-ids.robot +++ b/os-config/environment-test-ids.robot @@ -1,7 +1,14 @@ *** Variables *** -${ENV_ID_EDK2_SETUP_MENU}= 901 -${ENV_ID_EDK2_UEFI_SHELL}= 902 -${ENV_ID_UBUNTU}= 903 -${ENV_ID_WINDOWS}= 904 -${ENV_ID_FEDORA}= 905 -${ENV_ID_QUBES}= 906 +# 1xx - Firmware +${ENV_ID_EDK2}= 101 +${ENV_ID_SEABIOS}= 102 +${ENV_ID_IPXE}= 103 +${ENV_ID_HEADS}= 104 + +# 2xx - Linux +${ENV_ID_UBUNTU}= 201 +${ENV_ID_FEDORA}= 202 +${ENV_ID_QUBES}= 203 + +# 3xx - Windows +${ENV_ID_WINDOWS_11}= 301 diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index fc69d6695c..91aed9840e 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -1,6 +1,4 @@ *** Settings *** -Resource ../../os-config/windows-credentials.robot -Resource ../../os-config/ubuntu-credentials.robot Resource ../../lib/options/${OPTIONS_LIB}.robot Resource ../../os-config/environment-test-ids.robot @@ -277,6 +275,7 @@ ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}= NetworkBoot ${ETH_PORTS}= ${EMPTY} ${TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} +${DEFAULT_BOOT_OS}= ubuntu *** Keywords *** From ed9efdfccbfdc4289789d98e600f805a77387d58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Feb 2025 16:26:23 +0100 Subject: [PATCH 150/416] platform-configs/novacustom-v540tu: Add Ubuntu to supported OSs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- platform-configs/novacustom-v540tu.robot | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/platform-configs/novacustom-v540tu.robot b/platform-configs/novacustom-v540tu.robot index 2df977fd79..355e74fa57 100644 --- a/platform-configs/novacustom-v540tu.robot +++ b/platform-configs/novacustom-v540tu.robot @@ -17,4 +17,9 @@ ${CPU_MIN_FREQUENCY}= 300 ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${FALSE} -${TESTED_LINUX_DISTROS}= ${ENV_ID_FEDORA} +${TESTED_LINUX_DISTROS}= ${ENV_ID_FEDORA} ${ENV_ID_UBUNTU} + + +*** Keywords *** +Power On + Novacustom-common.Power On From 5e1edd0a1b6d5d968643f5800e59794b7c30176d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Feb 2025 17:26:34 +0100 Subject: [PATCH 151/416] options-lib_dcu/Boot System (...): Check currently booted OS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- keywords.robot | 2 +- lib/options/options-lib_dcu.robot | 10 ++++++++-- platform-configs/include/default.robot | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/keywords.robot b/keywords.robot index 066be7def1..cff51f5ee3 100644 --- a/keywords.robot +++ b/keywords.robot @@ -525,7 +525,7 @@ Prepare To SSH Connection # tu leci zmiana, musimy brać platformy zgodnie z tym co zostało pobrane w dasharo Set Global Variable ${PLATFORM} ${CONFIG} IF '${DEFAULT_BOOT_OS}' - Import Variables ../../os-config/${DEFAULT_BOOT_OS}-credentials.py + Import Variables ${CURDIR}/os-config/${DEFAULT_BOOT_OS}-credentials.py END SSHLibrary.Set Default Configuration timeout=60 seconds IF '${SNIPEIT}'=='no' RETURN diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index 47ee6abd8e..14c8e50df0 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -141,11 +141,16 @@ Boot System Or From Connected Disk ${os_boot_id}= Set Variable ${EMPTY} ${os}= Convert To Lower Case ${os} - Import Variables ../../os-config/ubuntu-credentials.py + Import Variables ${CURDIR}/../../os-config/${BOOTED_OS}-credentials.py Login To Linux Switch To Root User + IF '${BOOTED_OS}' == '${os}' + Log Target OS already booted + RETURN + END + ${boot_entries}= Execute Command In Terminal efibootmgr @{lines}= Split To Lines ${boot_entries} @@ -166,7 +171,8 @@ Boot System Or From Connected Disk Execute Command In Terminal efibootmgr --bootnext ${id} Sleep 1s Write Into Terminal reboot - Import Variables ../../os-config/${os}-credentials.py + Import Variables ${CURDIR}/../../os-config/${os}-credentials.py + Set Suite Variable ${BOOTED_OS} ${os} Sleep 30s ELSE Fail Os entry not found diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 91aed9840e..93d2f76f02 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -276,6 +276,7 @@ ${ETH_PORTS}= ${EMPTY} ${TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} ${DEFAULT_BOOT_OS}= ubuntu +${BOOTED_OS}= ${DEFAULT_BOOT_OS} *** Keywords *** From 0b263a7247b35267b46d54786537a519c04b49fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Feb 2025 17:35:04 +0100 Subject: [PATCH 152/416] os-config/environment-test-ids: Change to .py and add ENV_ID to name map MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- os-config/environment-test-ids.py | 23 +++++++++++++++++++++++ os-config/environment-test-ids.robot | 14 -------------- platform-configs/include/default.robot | 4 ++-- 3 files changed, 25 insertions(+), 16 deletions(-) create mode 100644 os-config/environment-test-ids.py delete mode 100644 os-config/environment-test-ids.robot diff --git a/os-config/environment-test-ids.py b/os-config/environment-test-ids.py new file mode 100644 index 0000000000..ae7df4276d --- /dev/null +++ b/os-config/environment-test-ids.py @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2025 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +# 1xx - Firmware +ENV_ID_EDK2 = "101" +ENV_ID_SEABIOS = "102" +ENV_ID_IPXE = "103" +ENV_ID_HEADS = "104" + +# 2xx - Linux +ENV_ID_UBUNTU = "201" +ENV_ID_FEDORA = "202" +ENV_ID_QUBES = "203" + +# 3xx - Windows +ENV_ID_WINDOWS_11 = "301" + +ENV_ID_OS_BOOTMENU_NAMES = { + ENV_ID_UBUNTU: "ubuntu", + ENV_ID_FEDORA: "fedora", + ENV_ID_WINDOWS_11: "windows", +} diff --git a/os-config/environment-test-ids.robot b/os-config/environment-test-ids.robot deleted file mode 100644 index 1188b2c51d..0000000000 --- a/os-config/environment-test-ids.robot +++ /dev/null @@ -1,14 +0,0 @@ -*** Variables *** -# 1xx - Firmware -${ENV_ID_EDK2}= 101 -${ENV_ID_SEABIOS}= 102 -${ENV_ID_IPXE}= 103 -${ENV_ID_HEADS}= 104 - -# 2xx - Linux -${ENV_ID_UBUNTU}= 201 -${ENV_ID_FEDORA}= 202 -${ENV_ID_QUBES}= 203 - -# 3xx - Windows -${ENV_ID_WINDOWS_11}= 301 diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 93d2f76f02..62157639cc 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -1,6 +1,6 @@ *** Settings *** -Resource ../../lib/options/${OPTIONS_LIB}.robot -Resource ../../os-config/environment-test-ids.robot +Resource ../../lib/options/${OPTIONS_LIB}.robot +Variables ../../os-config/environment-test-ids.py *** Variables *** From 07af8b822ac28f82e078d960bc36124b72c6b626 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Feb 2025 17:36:15 +0100 Subject: [PATCH 153/416] lib/{bios,options}: Use ENV_IDs in Boot System Or (...) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/display-ports-and-lcd-support.robot | 6 +++--- lib/bios/menus.robot | 6 ++++-- lib/options/options-lib_dcu.robot | 5 +++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/dasharo-compatibility/display-ports-and-lcd-support.robot b/dasharo-compatibility/display-ports-and-lcd-support.robot index ca195ede5c..0ae529bd34 100644 --- a/dasharo-compatibility/display-ports-and-lcd-support.robot +++ b/dasharo-compatibility/display-ports-and-lcd-support.robot @@ -50,7 +50,7 @@ DSP002.201 - External HDMI display in OS (Ubuntu) Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP003.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP003.001 not supported Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" - DSP002 - External HDMI Display ubuntu + DSP002 - External HDMI Display ${ENV_ID_UBUNTU} DSP002.301 - External HDMI display in OS (Windows) [Documentation] Check whether an external HDMI display is visible in @@ -59,7 +59,7 @@ DSP002.301 - External HDMI display in OS (Windows) Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP002.002 not supported Skip If not ${TESTS_IN_WINDOWS_SUPPORT} DSP002.002 not supported Power On - Boot System Or From Connected Disk windows + Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11} Login To Windows Check HDMI Windows @@ -70,7 +70,7 @@ DSP002.202 - External HDMI display in OS (Fedora) Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP002.002 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP002.002 not supported Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" - DSP002 - External HDMI Display fedora + DSP002 - External HDMI Display ${ENV_ID_FEDORA} DSP003.001 - External DP display in OS (Ubuntu) [Documentation] Check whether an external Display Port is visible in diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index 8563732193..a73f2d6e55 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -1141,7 +1141,8 @@ Save Changes And Reset Tianocore Reset System Boot System Or From Connected Disk # robocop: disable=too-long-keyword - [Documentation] Tries to boot ${system_name}. If it is not possible then it tries + [Documentation] Tries to boot system with ID of ${ENV_ID}. If it is not + ... possible then it tries ... to boot from connected disk set up in config ... ... === Requirements === @@ -1158,7 +1159,8 @@ Boot System Or From Connected Disk # robocop: disable=too-long-keyword ... - Boots into the selected OS ... - Does nothing if ${DUT_CONNECTION_METHOD}' == 'SSH' - selecting OS's ... \ not supported via ssh. - [Arguments] ${system_name} ${boot_menu}=NOT_SET + [Arguments] ${env_id} ${boot_menu}=NOT_SET + ${system_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} Set Suite Variable ${BOOTED_OS} ${system_name} Import Variables ${CURDIR}/../../os-config/${system_name}-credentials.py diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index 14c8e50df0..dd0a55655c 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -137,9 +137,10 @@ Login To Windows Boot System Or From Connected Disk [Documentation] Keyword makes the DUT to reboot in chosen OS. There is a requirement for DUT to always reboot to Ubuntu. - [Arguments] ${os} + [Arguments] ${env_id} ${os_boot_id}= Set Variable ${EMPTY} - ${os}= Convert To Lower Case ${os} + ${system_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} + ${os}= Convert To Lower Case ${system_name} Import Variables ${CURDIR}/../../os-config/${BOOTED_OS}-credentials.py From 422aa2cb6b2ff6d5797ec9a1fb1d8811e132824c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Feb 2025 18:10:21 +0100 Subject: [PATCH 154/416] Boot System Or From Connected Disk: Use ENV_ID instead of name globally MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../apu-configuration-menu.robot | 8 ++--- dasharo-compatibility/audio-subsystem.robot | 4 +-- .../check-ethernet-ports-order.robot | 2 +- .../coreboot-fan-control.robot | 4 +-- dasharo-compatibility/cpu-cores-count.robot | 24 ++++++------- dasharo-compatibility/cpu-status.robot | 8 ++--- dasharo-compatibility/cpu-throttling.robot | 2 +- dasharo-compatibility/dcu.robot | 14 ++++---- .../display-ports-and-lcd-support.robot | 6 ++-- dasharo-compatibility/dmidecode.robot | 2 +- dasharo-compatibility/eMMC-support.robot | 2 +- dasharo-compatibility/efi.robot | 2 +- .../flash-write-protection.robot | 4 +-- dasharo-compatibility/network-speed.robot | 4 +-- dasharo-compatibility/nvme-support.robot | 2 +- .../platform-suspend-and-resume.robot | 2 +- dasharo-compatibility/sata-detect.robot | 2 +- dasharo-compatibility/sd-card-reader.robot | 4 +-- dasharo-compatibility/usb-detect.robot | 2 +- .../usb-hid-and-msc-support.robot | 6 ++-- .../usb-type-c-semiauto.robot | 20 +++++------ dasharo-compatibility/usb-type-c.robot | 22 ++++++------ dasharo-compatibility/watchdog.robot | 4 +-- .../wifi-bluetooth-support.robot | 6 ++-- dasharo-performance/cpu-frequency.robot | 6 ++-- dasharo-performance/cpu-temperature.robot | 4 +-- dasharo-performance/platform-stability.robot | 4 +-- dasharo-security/bios-lock.robot | 4 +-- .../early-boot-dma-protection.robot | 4 +-- dasharo-security/me-neuter-static.robot | 2 +- dasharo-security/me-neuter.robot | 8 ++--- dasharo-security/measured-boot.robot | 2 +- dasharo-security/secure-boot.robot | 4 +-- .../smm-bios-write-protection.robot | 4 +-- dasharo-security/tpm-support.robot | 2 +- dasharo-security/tpm2-commands.robot | 4 +-- dasharo-security/verified-boot.robot | 36 +++++++++---------- dasharo-stability/capsule-update.robot | 2 +- dasharo-stability/m2-wifi.robot | 2 +- .../network-interface-after-suspend.robot | 10 +++--- dasharo-stability/nvme-detection.robot | 10 +++--- .../power-on-keyword-stress.robot | 2 +- dasharo-stability/tpm-detect-heads.robot | 2 +- dasharo-stability/tpm-detect.robot | 6 ++-- .../usb-type-a-devices-detection.robot | 10 +++--- keywords.robot | 4 +-- lib/CPU-performance-lib.robot | 2 +- lib/bios/menus.robot | 7 ++-- lib/esp-scanning-lib.robot | 4 +-- lib/flash.robot | 2 +- lib/options/options-lib_dcu.robot | 4 ++- lib/options/options-lib_uefi-setup-menu.robot | 6 ++-- os-config/environment-test-ids.py | 2 ++ platform-configs/protectli-vp2420.robot | 2 +- self-tests/dcu.robot | 2 +- self-tests/os-boot.robot | 4 +-- util/basic-platform-setup.robot | 4 +-- 57 files changed, 165 insertions(+), 162 deletions(-) diff --git a/dasharo-compatibility/apu-configuration-menu.robot b/dasharo-compatibility/apu-configuration-menu.robot index e2e2fe0bb9..543b8270b7 100644 --- a/dasharo-compatibility/apu-configuration-menu.robot +++ b/dasharo-compatibility/apu-configuration-menu.robot @@ -102,7 +102,7 @@ APU005.001 Check if disabling CPB decreases performance ${apu_menu}= Enter Dasharo Submenu ${setup_menu} Dasharo APU Configuration Set Option State ${apu_menu} Core Performance Boost ${FALSE} Save Changes And Reset - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Execute Command In Terminal @@ -114,7 +114,7 @@ APU005.001 Check if disabling CPB decreases performance ${apu_menu}= Enter Dasharo Submenu ${setup_menu} Dasharo APU Configuration Set Option State ${apu_menu} Core Performance Boost ${TRUE} Save Changes And Reset - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Execute Command In Terminal @@ -131,7 +131,7 @@ APU006.001 Check whether disabling "Enable PCIe power management features" disab ${apu_menu}= Enter Dasharo Submenu ${setup_menu} Dasharo APU Configuration Set Option State ${apu_menu} Enable PCI Express power ${FALSE} Save Changes And Reset - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package pciutils @@ -145,7 +145,7 @@ APU006.002 Check whether enabling "Enable PCIe power management features" enable ${apu_menu}= Enter Dasharo Submenu ${setup_menu} Dasharo APU Configuration Set Option State ${apu_menu} Enable PCI Express power ${TRUE} Save Changes And Reset - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package pciutils diff --git a/dasharo-compatibility/audio-subsystem.robot b/dasharo-compatibility/audio-subsystem.robot index 7d4020c89b..54650f222e 100644 --- a/dasharo-compatibility/audio-subsystem.robot +++ b/dasharo-compatibility/audio-subsystem.robot @@ -29,7 +29,7 @@ AUD001.001 Audio subsystem detection (Ubuntu) Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} AUD001.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package alsa-utils @@ -77,7 +77,7 @@ AUD004.001 External headset recognition (Ubuntu) Skip If not ${EXTERNAL_HEADSET_SUPPORT} AUD004.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} AUD004.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= Execute Linux Command amixer -c 0 contents | grep -A 2 'Headphone' | cat diff --git a/dasharo-compatibility/check-ethernet-ports-order.robot b/dasharo-compatibility/check-ethernet-ports-order.robot index f88463d825..b6b1036720 100644 --- a/dasharo-compatibility/check-ethernet-ports-order.robot +++ b/dasharo-compatibility/check-ethernet-ports-order.robot @@ -23,7 +23,7 @@ SPS001.001 Ethernet ports are in order ... on PCIe bus numbers and checks PCIe switching. Skip If '''${ETH_PORTS}''' == '' not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${pci_devices}= Get MACs diff --git a/dasharo-compatibility/coreboot-fan-control.robot b/dasharo-compatibility/coreboot-fan-control.robot index 0df4ff8bc4..68ab778931 100644 --- a/dasharo-compatibility/coreboot-fan-control.robot +++ b/dasharo-compatibility/coreboot-fan-control.robot @@ -31,7 +31,7 @@ CFN001.001 CPU temperature and fan speed can be read (Debian) ... is available and can be read. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CFN001.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${rpm}= Get Fan RPM @@ -44,7 +44,7 @@ CFN002.001 CPU fan speed increases if the temperature rises (Debian) ... temperature rises. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CFN002.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User # Colling procedure: sometimes before starting the test case, CPU diff --git a/dasharo-compatibility/cpu-cores-count.robot b/dasharo-compatibility/cpu-cores-count.robot index 1e508d618f..dae2b87815 100644 --- a/dasharo-compatibility/cpu-cores-count.robot +++ b/dasharo-compatibility/cpu-cores-count.robot @@ -34,7 +34,7 @@ CCC001.001 Check core count with HT disabled (Ubuntu) [Documentation] Disable HT and check the number of cores as seen by the OS. Depends On ${HYPER_THREADING_SUPPORT} Set UEFI Option HyperThreading ${FALSE} - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package util-linux @@ -45,7 +45,7 @@ CCC002.001 Check core count with HT enabled [Documentation] Enable HT and check the number of cores as seen by the OS. Depends On ${HYPER_THREADING_SUPPORT} Set UEFI Option HyperThreading ${TRUE} - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package util-linux @@ -59,7 +59,7 @@ CCC003.001 Check core count (HT Enabled, P: All, E: 0) (Ubuntu) Reset To Defaults Tianocore Save Changes And Reset Set UEFI Option ActiveECores 0 - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package cpuid @@ -76,7 +76,7 @@ CCC004.001 Check core count (HT Enabled, P: All, E: All) (Ubuntu) Reset To Defaults Tianocore Save Changes And Reset Set UEFI Option ActiveECores All active - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package cpuid @@ -94,7 +94,7 @@ CCC005.001 Check core count (HT Disabled, P: All, E: 0) (Ubuntu) Save Changes And Reset Set UEFI Option HyperThreading ${FALSE} Set UEFI Option ActiveECores 0 - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package cpuid @@ -111,7 +111,7 @@ CCC006.001 Check core count (HT Disabled, P: All, E: 0) (Ubuntu) Save Changes And Reset Set UEFI Option ActiveECores 0 Set UEFI Option HyperThreading ${FALSE} - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package cpuid @@ -127,7 +127,7 @@ CCC007.001 Check core count (HT Enabled, P: 1, E: A) (Ubuntu) Reset To Defaults Tianocore Save Changes And Reset Set UEFI Option ActivePCores 1 - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package cpuid @@ -145,7 +145,7 @@ CCC008.001 Check core count (HT Disabled, P: 1, E: A) (Ubuntu) Save Changes And Reset Set UEFI Option HyperThreading ${FALSE} Set UEFI Option ActivePCores 1 - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package cpuid @@ -163,7 +163,7 @@ CCC009.001 Check core count (HT Enabled, P: 1, E: 1) (Ubuntu) Set UEFI Option HyperThreading ${TRUE} Set UEFI Option ActivePCores 1 Set UEFI Option ActiveECores 1 - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package cpuid @@ -182,7 +182,7 @@ CCC010.001 Check core count (HT Disabled, P: 1, E: 1) (Ubuntu) Set UEFI Option HyperThreading ${FALSE} Set UEFI Option ActivePCores 1 Set UEFI Option ActiveECores 1 - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package cpuid @@ -199,7 +199,7 @@ CCC011.001 Check core count (HT Enabled, P: A, E: 1) (Ubuntu) Save Changes And Reset Set UEFI Option HyperThreading ${TRUE} Set UEFI Option ActiveECores 1 - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package cpuid @@ -217,7 +217,7 @@ CCC012.001 Check core count (HT Disabled, P: A, E: 1) (Ubuntu) Save Changes And Reset Set UEFI Option HyperThreading ${FALSE} Set UEFI Option ActiveECores 1 - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package cpuid diff --git a/dasharo-compatibility/cpu-status.robot b/dasharo-compatibility/cpu-status.robot index 682cd5f320..d99b3ad627 100644 --- a/dasharo-compatibility/cpu-status.robot +++ b/dasharo-compatibility/cpu-status.robot @@ -31,7 +31,7 @@ CPU001.001 CPU works (Ubuntu) [Documentation] Check whether the CPU mounted on the DUT works. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU001.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux CPU001.002 CPU works (Windows) @@ -45,7 +45,7 @@ CPU002.001 CPU cache enabled (Ubuntu) ... are enabled. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU002.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux ${mem_info}= Execute Linux Command getconf -a | grep CACHE Check Cache Support ${mem_info} LEVEL1 @@ -76,7 +76,7 @@ CPU003.001 Multiple CPU support (Ubuntu) [Documentation] Check whether the DUT has multiple CPU support. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU003.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux ${cpu_info}= Execute Linux Command lscpu Set Suite Variable ${CPU_INFO} @@ -99,7 +99,7 @@ CPU004.001 Multiple-core support (Ubuntu) [Documentation] Check whether the DUT has multi-core support. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU004.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux ${cpu_info}= Execute Linux Command lscpu ${sockets}= Get Lines Containing String ${cpu_info} Socket(s): diff --git a/dasharo-compatibility/cpu-throttling.robot b/dasharo-compatibility/cpu-throttling.robot index b3fedc708f..3e6ca3caba 100644 --- a/dasharo-compatibility/cpu-throttling.robot +++ b/dasharo-compatibility/cpu-throttling.robot @@ -50,7 +50,7 @@ THR002.001 Try to enter a threshold value within the limits and verify in Ubuntu ... take effect in Ubuntu Skip If not ${TESTS_IN_UBUNTU_SUPPORT} THR002.001 not supported Set UEFI Option CpuThrottlingThreshold 70 - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Stress Test # Wait until the stress load gets to "heat up" the CPU diff --git a/dasharo-compatibility/dcu.robot b/dasharo-compatibility/dcu.robot index 916e909b95..ab8d4607e3 100644 --- a/dasharo-compatibility/dcu.robot +++ b/dasharo-compatibility/dcu.robot @@ -42,7 +42,7 @@ DCU001.001 Change the UUID Make Sure New Firmware Is Booted After Flashing Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${uuid_read}= Get Firmware UUID @@ -59,7 +59,7 @@ DCU002.001 Change the serial number Make Sure New Firmware Is Booted After Flashing Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${serial_no_read}= Get Firmware Serial Number @@ -79,7 +79,7 @@ DCU003.001 Change the bootsplash logo Make Sure New Firmware Is Booted After Flashing Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Set Global Variable ${DUT_CONNECTION_METHOD} SSH Login To Linux Switch To Root User @@ -132,7 +132,7 @@ Verify SMMSTORE Changes (Setup Menu) ${new_value}= Evaluate not ${initial_value} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User DCU Variable Set UEFI Option In DUT ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE} ${new_value} @@ -141,7 +141,7 @@ Verify SMMSTORE Changes (Setup Menu) Should Be Equal ${value} ${new_value} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User DCU Variable Set UEFI Option In DUT ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE} ${initial_value} @@ -158,7 +158,7 @@ Verify SMMSTORE Changes (DCU) ${initial_value}= Set Variable ${FALSE} ${new_value}= Set Variable ${TRUE} - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User DCU Variable Set UEFI Option In DUT ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE} ${new_value} @@ -181,7 +181,7 @@ Make Sure New Firmware Is Booted After Flashing ... flashing IF '''${POWER_CTRL}''' == '''NONE''' Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Execute Reboot Command diff --git a/dasharo-compatibility/display-ports-and-lcd-support.robot b/dasharo-compatibility/display-ports-and-lcd-support.robot index 0ae529bd34..fde56f23d2 100644 --- a/dasharo-compatibility/display-ports-and-lcd-support.robot +++ b/dasharo-compatibility/display-ports-and-lcd-support.robot @@ -28,7 +28,7 @@ DSP001.002 - Internal display in OS (Ubuntu) Skip If not ${INTERNAL_LCD_DISPLAY_SUPPORT} DSP001.002 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP001.002 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Check Internal LCD Linux @@ -79,7 +79,7 @@ DSP003.001 - External DP display in OS (Ubuntu) Skip If not ${EXTERNAL_DISPLAY_PORT_SUPPORT} DSP003.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP003.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Check External DP In Linux @@ -92,7 +92,7 @@ DSP003.002 - External DP display in OS (Windows) Skip If not ${EXTERNAL_DISPLAY_PORT_SUPPORT} DSP003.002 not supported Skip If not ${TESTS_IN_WINDOWS_SUPPORT} DSP003.002 not supported Power On - Boot System Or From Connected Disk windows + Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11} Login To Windows Check DP Windows diff --git a/dasharo-compatibility/dmidecode.robot b/dasharo-compatibility/dmidecode.robot index 74380fb681..79c653875f 100644 --- a/dasharo-compatibility/dmidecode.robot +++ b/dasharo-compatibility/dmidecode.robot @@ -88,7 +88,7 @@ Get SMBIOS Values ... in a dedicated variable because their fields have generic names (e.g. ... Type) that is later extracted in the test cases. Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package dmidecode diff --git a/dasharo-compatibility/eMMC-support.robot b/dasharo-compatibility/eMMC-support.robot index edcc19d802..9409d849b7 100644 --- a/dasharo-compatibility/eMMC-support.robot +++ b/dasharo-compatibility/eMMC-support.robot @@ -29,7 +29,7 @@ MMC001.001 eMMC support (Ubuntu) Skip If not ${EMMC_SUPPORT} MMC001.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MMC001.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= Execute Command In Terminal cat /sys/class/block/mmcblk0/device/name diff --git a/dasharo-compatibility/efi.robot b/dasharo-compatibility/efi.robot index 2272b57a77..1dcea1459e 100644 --- a/dasharo-compatibility/efi.robot +++ b/dasharo-compatibility/efi.robot @@ -30,7 +30,7 @@ EFI001.001 Boot into UEFI OS (Ubuntu) ... possibility to identify the system. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} EFI001.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= Execute Command In Terminal cat /etc/os-release diff --git a/dasharo-compatibility/flash-write-protection.robot b/dasharo-compatibility/flash-write-protection.robot index fd0da31acd..3fb15ec6c9 100644 --- a/dasharo-compatibility/flash-write-protection.robot +++ b/dasharo-compatibility/flash-write-protection.robot @@ -29,7 +29,7 @@ HWP001.001 Hardware flash write protection support [Documentation] Check whether the DUT support hardware write protection ... mechanism. Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Check Write Protection Availability @@ -38,7 +38,7 @@ HWP002.001 Hardware flash write protection enable / disable [Documentation] Check whether there is a possibility to set and erase ... hardware write protection on the DUT. Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Erase Write Protection diff --git a/dasharo-compatibility/network-speed.robot b/dasharo-compatibility/network-speed.robot index 3316dfb5b0..7174144f6e 100644 --- a/dasharo-compatibility/network-speed.robot +++ b/dasharo-compatibility/network-speed.robot @@ -27,7 +27,7 @@ ETHPERF001.001 Check Performance of 2.5G Wired Network Interface (Ubuntu) [Documentation] This test aims to verify the performance of Ethernet connection Depends On ${ETH_PERF_PAIR_2_G} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package iperf3 @@ -41,7 +41,7 @@ ETHPERF002.001 Check Performance of 10G Wired Network Interface (Ubuntu) [Documentation] This test aims to verify the performance of Ethernet connection Depends On ${ETH_PERF_PAIR_10_G} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package iperf3 diff --git a/dasharo-compatibility/nvme-support.robot b/dasharo-compatibility/nvme-support.robot index fa9a22821c..bbd464d60b 100644 --- a/dasharo-compatibility/nvme-support.robot +++ b/dasharo-compatibility/nvme-support.robot @@ -38,7 +38,7 @@ NVM001.002 NVMe support in OS (Ubuntu) ... disk in M.2 slot. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NVM001.002 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= List Devices In Linux pci diff --git a/dasharo-compatibility/platform-suspend-and-resume.robot b/dasharo-compatibility/platform-suspend-and-resume.robot index a2114cc14a..c4e97b31f0 100644 --- a/dasharo-compatibility/platform-suspend-and-resume.robot +++ b/dasharo-compatibility/platform-suspend-and-resume.robot @@ -50,7 +50,7 @@ Cyclic Platform Suspend And Resume (Ubuntu) [Arguments] ${platform_sleep_type}=${EMPTY} ${suspend_detected_fails}= Set Variable ${0} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User diff --git a/dasharo-compatibility/sata-detect.robot b/dasharo-compatibility/sata-detect.robot index 139e1f2b36..dcf87e93e2 100644 --- a/dasharo-compatibility/sata-detect.robot +++ b/dasharo-compatibility/sata-detect.robot @@ -28,7 +28,7 @@ SAT001.002 SATA support in OS (Ubuntu) Depends On ${SATA_SUPPORT} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package smartmontools diff --git a/dasharo-compatibility/sd-card-reader.robot b/dasharo-compatibility/sd-card-reader.robot index 06270e5e75..662d6f73c7 100644 --- a/dasharo-compatibility/sd-card-reader.robot +++ b/dasharo-compatibility/sd-card-reader.robot @@ -30,7 +30,7 @@ SDC001.001 SD Card reader detection (Ubuntu) ... and can be detected from the operating system. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SDC001.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${disks}= Identify Disks In Linux @@ -53,7 +53,7 @@ SDC002.001 SD Card read/write (Ubuntu) ... and can be used from the operating system. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SDC002.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Execute Linux Command dd if=/dev/urandom of=/tmp/in.bin bs=4K count=100 diff --git a/dasharo-compatibility/usb-detect.robot b/dasharo-compatibility/usb-detect.robot index 20e9c33855..1f82e527ea 100644 --- a/dasharo-compatibility/usb-detect.robot +++ b/dasharo-compatibility/usb-detect.robot @@ -72,7 +72,7 @@ UDT001.003 USB detection after system reboot FOR ${index} IN RANGE 0 ${USB_DETECTION_ITERATIONS_NUMBER} ${boot_menu}= Enter Boot Menu Tianocore And Return Construction ${found}= Check USB Stick Detection In Edk2 ${boot_menu} - Boot System Or From Connected Disk ubuntu boot_menu=${boot_menu} + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} boot_menu=${boot_menu} Login To Linux Switch To Root User Execute Reboot Command diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 0e550359e0..8218eb9972 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -39,7 +39,7 @@ USB001.002 USB devices detected by OS (Ubuntu) Depends On ${USB_DISKS_DETECTION_SUPPORT} Depends On ${TESTS_IN_UBUNTU_SUPPORT} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package usbutils @@ -80,7 +80,7 @@ USB002.002 USB keyboard in OS (Ubuntu) Depends On ${HAS_KEYBOARD} Depends On ${TESTS_IN_UBUNTU_SUPPORT} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= List Devices In Linux usb @@ -105,7 +105,7 @@ USB003.001 Upload 1GB file on USB storage (Ubuntu) Depends On ${HAS_USB_STORAGE} Depends On ${TESTS_IN_UBUNTU_SUPPORT} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Execute Linux Command openssl rand -out test_file.txt -base64 $(( 2**30 * 3/4 )) diff --git a/dasharo-compatibility/usb-type-c-semiauto.robot b/dasharo-compatibility/usb-type-c-semiauto.robot index a31c61a0f2..5577e711bf 100644 --- a/dasharo-compatibility/usb-type-c-semiauto.robot +++ b/dasharo-compatibility/usb-type-c-semiauto.robot @@ -296,7 +296,7 @@ Docking Station Detection After Coldboot (Ubuntu) Pause Execution In Console ... Please make sure the docking station connected is ${docking_station_model} and press ENTER Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out_after_reboot}= Execute Linux Command uptime --since @@ -325,7 +325,7 @@ Docking Station Detection After Coldboot (Ubuntu) Docking Station Detection After Warmboot (Ubuntu) [Arguments] ${docking_station_model} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out_after_reboot}= Execute Linux Command uptime --since @@ -354,7 +354,7 @@ Docking Station Detection After Warmboot (Ubuntu) Docking Station Detection After Reboot (Ubuntu) [Arguments] ${docking_station_model} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Docking Station In Linux ${docking_station_model} @@ -363,7 +363,7 @@ Docking Station Detection After Reboot (Ubuntu) Log To Console Reboot iteration ${iteration+1}/${STABILITY_DETECTION_REBOOT_ITERATIONS} TRY Execute Reboot Command - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Docking Station In Linux ${docking_station_model} @@ -379,7 +379,7 @@ Docking Station Detection After Reboot (Ubuntu) Docking Station Detection After Suspend (Ubuntu) [Arguments] ${docking_station_model} ${platform_sleep_type}=${EMPTY} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User @@ -415,7 +415,7 @@ Docking Station Detection After Coldboot Then Hotplug (Ubuntu) Skip If '${POWER_CTRL}' == 'none' Coldboot automatic tests not supported Pause Execution In Console Please make sure the docking station is disconnected and press ENTER Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out_after_reboot}= Execute Linux Command uptime --since @@ -457,7 +457,7 @@ Docking Station Detection After Warmboot Then Hotplug (Ubuntu) [Arguments] ${docking_station_model} Pause Execution In Console Please make sure the docking station is disconnected and press ENTER Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out_after_reboot}= Execute Linux Command uptime --since @@ -498,13 +498,13 @@ Docking Station Detection After Reboot Then Hotplug (Ubuntu) [Arguments] ${docking_station_model} Pause Execution In Console Please make sure the docking station is disconnected and press ENTER Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Run Keyword And Expect Error * does not contain * Detect Docking Station In Linux ${docking_station_model} Set Global Variable ${FAILED_DETECTION} 0 Execute Reboot Command - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} @@ -529,7 +529,7 @@ Docking Station Detection After Reboot Then Hotplug (Ubuntu) Docking Station Detection After Suspend Then Hotplug (Ubuntu) [Arguments] ${docking_station_model} ${platform_sleep_type}=${EMPTY} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User diff --git a/dasharo-compatibility/usb-type-c.robot b/dasharo-compatibility/usb-type-c.robot index 8f5895987e..8bbdeca1e1 100644 --- a/dasharo-compatibility/usb-type-c.robot +++ b/dasharo-compatibility/usb-type-c.robot @@ -30,7 +30,7 @@ UTC004.001 USB Type-C Display output (semi-automatic) Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC004.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC004.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= List Devices In Linux usb @@ -43,7 +43,7 @@ UTC004.005 USB Type-C Display output With Me Disabled(semi-automatic) Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC004.002 not supported Skip If not ${DASHARO_INTEL_ME_MENU_SUPPORT} Dasharo Intel ME menu not supported Set UEFI Option MeMode Disabled (HAP) - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${result}= Check ME Out @@ -58,7 +58,7 @@ UTC004.006 USB Type-C Display output With Me Enabled (semi-automatic) Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} TMD004.003 not supported Skip If not ${DASHARO_INTEL_ME_MENU_SUPPORT} Dasharo Intel ME menu not supported Set UEFI Option MeMode Enabled - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${result}= Check ME Out @@ -74,7 +74,7 @@ UTC005.001 - Docking station HDMI display in OS (DP Alt mode) (Ubuntu) Skip If not ${DOCKING_STATION_HDMI} UTC005.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC005.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Check PCON On MST Hub In Linux @@ -97,7 +97,7 @@ UTC005.003 - Docking station HDMI display in OS (Ubuntu) Skip If not ${DOCKING_STATION_HDMI} UTC005.003 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC005.003 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Check Display Port On Hub In Linux HDMI @@ -110,7 +110,7 @@ UTC005.005 USB Type-C docking station HDMI display with ME disabled(Ubuntu) Skip If not ${DOCKING_STATION_HDMI} UTC005.005 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC005.005 not supported Set UEFI Option MeMode Disabled (HAP) - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${result}= Check ME Out @@ -125,7 +125,7 @@ UTC005.007 USB Type-C docking station HDMI display with ME enabled(Ubuntu) Skip If not ${DOCKING_STATION_HDMI} UTC005.007 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC005.007 not supported Set UEFI Option MeMode Enabled - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${result}= Check ME Out @@ -140,7 +140,7 @@ UTC006.001 - Docking station DP display in OS (DP Alt mode) (Ubuntu) Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC006.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC006.001 not supported Power Cycle On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Check DP Port On MST Hub In Linux @@ -163,7 +163,7 @@ UTC006.003 - Docking station DP display in OS (Ubuntu) Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC006.003 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC006.003 not supported Power Cycle On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Check Display Port On Hub In Linux DP @@ -176,7 +176,7 @@ UTC006.005 USB Type-C docking station DP display with ME disabled(Ubuntu) Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC006.005 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC006.005 not supported Set UEFI Option MeMode Disabled (HAP) - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${result}= Check ME Out @@ -191,7 +191,7 @@ UTC006.007 USB Type-C docking station DP display with ME enabled(Ubuntu) Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC006.007 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC006.007 not supported Set UEFI Option MeMode Enabled - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${result}= Check ME Out diff --git a/dasharo-compatibility/watchdog.robot b/dasharo-compatibility/watchdog.robot index f22f8428ca..90022b1460 100644 --- a/dasharo-compatibility/watchdog.robot +++ b/dasharo-compatibility/watchdog.robot @@ -119,7 +119,7 @@ WDT005.001 Watchdog is detected by OS (Ubuntu) ${chipset_menu}= Reenter Menu And Return Construction Set Option State ${chipset_menu} Watchdog timeout value 300 Save Changes And Reset - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Execute Linux Command modprobe wdat_wdt @@ -148,7 +148,7 @@ WTD006.001 Watchdog resets platform on kernel crash (Ubuntu 22.04) ${chipset_menu}= Reenter Menu And Return Construction Set Option State ${chipset_menu} Watchdog timeout value 300 Save Changes And Reset - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User # Verify that there are entries from wdt or watchdog in kernel logs diff --git a/dasharo-compatibility/wifi-bluetooth-support.robot b/dasharo-compatibility/wifi-bluetooth-support.robot index 5d9d7b1067..239b96712f 100644 --- a/dasharo-compatibility/wifi-bluetooth-support.robot +++ b/dasharo-compatibility/wifi-bluetooth-support.robot @@ -35,7 +35,7 @@ WLE001.001 Wireless card detection (Ubuntu) Log To Console Remember to test all variants of wireless cards. Log Remember to test all variants of wireless cards. WARN Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package pciutils @@ -70,7 +70,7 @@ WLE002.001 Wi-Fi scanning (Ubuntu) Log To Console Remember to test all variants of wireless cards. Log Remember to test all variants of wireless cards. WARN Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Scan For Wi-Fi In Linux @@ -106,7 +106,7 @@ WLE003.001 Bluetooth scanning (Ubuntu) Log To Console Remember to test all variants of wireless cards. Log Remember to test all variants of wireless cards. WARN Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Scan For Bluetooth In Linux diff --git a/dasharo-performance/cpu-frequency.robot b/dasharo-performance/cpu-frequency.robot index 427e8d92f4..99d31ac989 100644 --- a/dasharo-performance/cpu-frequency.robot +++ b/dasharo-performance/cpu-frequency.robot @@ -306,7 +306,7 @@ CPF004.008 CPU with load runs on expected frequency (Windows) (USB-PD) *** Keywords *** CPU Not Stuck On Initial Frequency (Ubuntu) Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Sleep 10s @@ -334,7 +334,7 @@ CPU Runs On Expected Frequency (Ubuntu) ${cpu_min_frequency_tol}= Evaluate ${CPU_MIN_FREQUENCY} * 0.875 Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${timer}= Convert To Integer 0 @@ -369,7 +369,7 @@ CPU With Load Runs On Expected Frequency (Ubuntu) ${cpu_min_frequency_tol}= Evaluate ${CPU_MIN_FREQUENCY} * 0.875 Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Stress Test ${FREQUENCY_TEST_DURATION}m diff --git a/dasharo-performance/cpu-temperature.robot b/dasharo-performance/cpu-temperature.robot index adc3124961..c758fed69d 100644 --- a/dasharo-performance/cpu-temperature.robot +++ b/dasharo-performance/cpu-temperature.robot @@ -116,7 +116,7 @@ CPT002.004 CPU temperature after stress test (Ubuntu) (USB-PD) *** Keywords *** CPU Temperature Without Load (Ubuntu) Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package lm-sensors @@ -158,7 +158,7 @@ CPU Temperature Without Load (Ubuntu) CPU Temperature After Stress Test (Ubuntu) Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package lm-sensors diff --git a/dasharo-performance/platform-stability.robot b/dasharo-performance/platform-stability.robot index 104e221b6f..ef23e2d2c5 100644 --- a/dasharo-performance/platform-stability.robot +++ b/dasharo-performance/platform-stability.robot @@ -60,7 +60,7 @@ STB001.002 Verify if no reboot occurs in the OS (Ubuntu) Skip If not ${TESTS_IN_UBUNTU_SUPPORT} STB001.002 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${timer}= Convert To Integer 0 @@ -123,7 +123,7 @@ STB002.001 Verify if no unexpected boot errors appear in Linux logs Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Check Unexpected Boot Errors diff --git a/dasharo-security/bios-lock.robot b/dasharo-security/bios-lock.robot index 82464455e7..824e226d6b 100644 --- a/dasharo-security/bios-lock.robot +++ b/dasharo-security/bios-lock.robot @@ -34,7 +34,7 @@ BLS001.001 BIOS lock support (Ubuntu) ... recognized during attempt to overwrite it by using flashrom tool. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} BLS001.001 not supported Set UEFI Option LockBios ${TRUE} - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Get Flashrom From Cloud @@ -49,7 +49,7 @@ BLS002.001 BIOS lock support deactivation (Ubuntu) ... available again. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} BLS002.001 not supported Set UEFI Option LockBios ${FALSE} - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Get Flashrom From Cloud diff --git a/dasharo-security/early-boot-dma-protection.robot b/dasharo-security/early-boot-dma-protection.robot index 4190a2ad3d..436551f41b 100644 --- a/dasharo-security/early-boot-dma-protection.robot +++ b/dasharo-security/early-boot-dma-protection.robot @@ -39,7 +39,7 @@ EDP001.001 Enable early Boot DMA Protection support ${security_menu}= Enter Dasharo Submenu ${dasharo_menu} Dasharo Security Options Set Option State ${security_menu} Early boot DMA Protection ${TRUE} Save Changes And Reset - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Get Cbmem From Cloud @@ -58,7 +58,7 @@ EDP002.001 Disable early Boot DMA Protection support ${security_menu}= Enter Dasharo Submenu ${dasharo_menu} Dasharo Security Options Set Option State ${security_menu} Early boot DMA Protection ${FALSE} Save Changes And Reset - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Get Cbmem From Cloud diff --git a/dasharo-security/me-neuter-static.robot b/dasharo-security/me-neuter-static.robot index 0b499bbacb..9bfe429ea5 100644 --- a/dasharo-security/me-neuter-static.robot +++ b/dasharo-security/me-neuter-static.robot @@ -29,7 +29,7 @@ MES001.001 Check if ME is statically disabled [Documentation] Check whether the Intel ME is disabled at build time. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE002.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${result}= Check ME Out diff --git a/dasharo-security/me-neuter.robot b/dasharo-security/me-neuter.robot index 9220c97232..5ebde3bf77 100644 --- a/dasharo-security/me-neuter.robot +++ b/dasharo-security/me-neuter.robot @@ -43,7 +43,7 @@ MNE002.001 Intel ME mode option Enabled works correctly (Ubuntu) ... works correctly. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE002.001 not supported Set UEFI Option MeMode Enabled - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${result}= Check ME Out @@ -54,7 +54,7 @@ MNE003.001 Intel ME mode option Disabled (Soft) works correctly (Ubuntu) ... Disabled (Soft) works correctly Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE003.001 not supported Set UEFI Option MeMode Disabled (Soft) - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${result}= Check ME Out @@ -69,7 +69,7 @@ MNE004.001 Intel ME mode option Disabled (HAP) works correctly (Ubuntu) ... Disabled (HAP) works correctly. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE004.001 not supported Set UEFI Option MeMode Disabled (HAP) - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${result}= Check ME Out @@ -86,7 +86,7 @@ MNE006.001 Check Intel ME version (Ubuntu) Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE006.001 not supported Set UEFI Option MeMode Enabled Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= Execute Command In Terminal cat /sys/class/mei/mei0/fw_ver diff --git a/dasharo-security/measured-boot.robot b/dasharo-security/measured-boot.robot index 169677747a..875707f34a 100644 --- a/dasharo-security/measured-boot.robot +++ b/dasharo-security/measured-boot.robot @@ -286,7 +286,7 @@ Get Default PCRs State Boot Ubuntu And Login To Root [Documentation] Boots Ubuntu and logins as root - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User diff --git a/dasharo-security/secure-boot.robot b/dasharo-security/secure-boot.robot index 640de71728..8a89602140 100644 --- a/dasharo-security/secure-boot.robot +++ b/dasharo-security/secure-boot.robot @@ -68,7 +68,7 @@ SBO002.001 UEFI Secure Boot (Ubuntu) Tianocore Reset System # 2. Check SB state in OS - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${sb_status}= Check Secure Boot In Linux @@ -83,7 +83,7 @@ SBO002.001 UEFI Secure Boot (Ubuntu) Tianocore Reset System # 4. Check SB state in OS - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${sb_status}= Check Secure Boot In Linux diff --git a/dasharo-security/smm-bios-write-protection.robot b/dasharo-security/smm-bios-write-protection.robot index 17f0590217..de28716dbb 100644 --- a/dasharo-security/smm-bios-write-protection.robot +++ b/dasharo-security/smm-bios-write-protection.robot @@ -44,7 +44,7 @@ SMM001.001 SMM BIOS write protection enabling (Ubuntu) ${network_menu}= Enter Dasharo Submenu ${dasharo_menu} Dasharo Security Options Set Option State ${network_menu} Enable SMM BIOS write ${TRUE} Save Changes And Reset - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Get Flashrom From Cloud @@ -68,7 +68,7 @@ SMM002.001 SMM BIOS write protection disabling (Ubuntu) ${network_menu}= Enter Dasharo Submenu ${dasharo_menu} Dasharo Security Options Set Option State ${network_menu} Enable SMM BIOS write ${FALSE} Save Changes And Reset - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Get Flashrom From Cloud diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index 4778c1fe30..f4cbd89b36 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -133,7 +133,7 @@ TPM003.003 Check TPM Physical Presence Interface (Windows) Prepare TPM Test On Ubuntu [Documentation] Run common actions required for TPM tests in Ubuntu Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Verify Presence Of TPM Via Sysfs diff --git a/dasharo-security/tpm2-commands.robot b/dasharo-security/tpm2-commands.robot index b7a91b961d..4f8b7efe86 100644 --- a/dasharo-security/tpm2-commands.robot +++ b/dasharo-security/tpm2-commands.robot @@ -266,7 +266,7 @@ TPM2 Suite Setup Skip If '${TPM_SUPPORTED_VERSION}' != '2' TPM commands tests supported only TPM2 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM commands tests supported only on Ubuntu Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Verify Presence Of TPM Via Sysfs @@ -277,7 +277,7 @@ TPM2 Suite Setup # Restore default allocations in case any bank was disabled and reboot Execute Linux Command tpm2_pcrallocate Execute Reboot Command - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User END diff --git a/dasharo-security/verified-boot.robot b/dasharo-security/verified-boot.robot index d2e9f79605..e94c19d709 100644 --- a/dasharo-security/verified-boot.robot +++ b/dasharo-security/verified-boot.robot @@ -45,7 +45,7 @@ ${FW_FILE_RESIGNED}= /home/${UBUNTU_USERNAME}/test-firmware_resigned.rom VBO006.002 Check whether the verstage was run [Documentation] Check whether the Verified Boot is enabled and ... functional. - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Skip If not ${TESTS_IN_UBUNTU_SUPPORT} VBO006.002 not supported @@ -57,7 +57,7 @@ VBO007.002 Boot from RW when correctly signed firmware is flashed ... Slot A/B if the signatures for firmware stored in vboot ... Slot A/B are correct. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} VBO007.002 not supported - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out_vboot}= Execute Command In Terminal ./dasharo-tools/vboot/workbuf_parse -1 | grep "boot mode" @@ -69,12 +69,12 @@ VBO008.001 Booting from recovery ... continue automatically after a 30s delay. Skip If not ${VERIFIED_BOOT_POPUP_SUPPORT} VBO008.002 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} VBO008.002 not supported - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Flash RW Sections Via Internal Programmer ${FW_FILE_RESIGNED} Execute Reboot Command - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= Execute Command In Terminal cbmem -c | grep -i recovery @@ -87,7 +87,7 @@ VBO009.001 Recovery boot popup is displayed when incorrectly signed firmware is Skip If not ${VERIFIED_BOOT_POPUP_SUPPORT} VBO009.001 not supported Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} VBO009.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} VBO009.001 not supported - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Flash RW Sections Via Internal Programmer ${FW_FILE_RESIGNED} @@ -97,7 +97,7 @@ VBO009.001 Recovery boot popup is displayed when incorrectly signed firmware is Should Contain ${recovery_popup} !!! WARNING !!! Should Contain ${recovery_popup} Recovery reason code: Should Contain ${recovery_popup} Recovery reason: - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux VBO009.001 Recovery boot popup is displayed when incorrectly signed firmware is flashed in RW_A (Semi-auto) @@ -119,7 +119,7 @@ VBO010.001 Recovery boot popup can be skipped Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} VBO010.001 not supported Read From Terminal Until Press ENTER key to continue Write Into Terminal ${ENTER} - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux VBO010.001 Recovery boot popup can be skipped (Semi-auto) @@ -144,13 +144,13 @@ VBO011.001 Recovery popup is not displayed when correctly signed firmware is fla Variable Should Exist ${FW_FILE} # 1. Start with flashing of correctly signed firmware Set DUT Response Timeout 180s - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Flash RW Sections Via Internal Programmer ${FW_FILE_ORIGINAL} FOR ${index} IN RANGE 2 Execute Reboot Command - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User END @@ -163,7 +163,7 @@ VBO011.001 Recovery popup is not displayed when correctly signed firmware is fla Execute Reboot Command Read From Terminal Until Press ENTER key to continue Write Into Terminal ${ENTER} - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out_vboot}= Execute Command In Terminal ./dasharo-tools/vboot/workbuf_parse -1 | grep "boot mode" @@ -172,7 +172,7 @@ VBO011.001 Recovery popup is not displayed when correctly signed firmware is fla # 3. Flash again with correctly signed firmware Flash RW Sections Via Internal Programmer ${FW_FILE_ORIGINAL} Execute Reboot Command - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out_vboot}= Execute Command In Terminal ./dasharo-tools/vboot/workbuf_parse -1 | grep "boot mode" @@ -190,13 +190,13 @@ VBO011.001 Recovery popup is not displayed when correctly signed firmware is fla Variable Should Exist ${FW_FILE} # 1. Start with flashing of correctly signed firmware Set DUT Response Timeout 180s - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Flash RW Sections Via Internal Programmer ${FW_FILE_ORIGINAL} FOR ${index} IN RANGE 2 Execute Reboot Command - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User END @@ -208,7 +208,7 @@ VBO011.001 Recovery popup is not displayed when correctly signed firmware is fla FOR ${index} IN RANGE 2 Execute Reboot Command Sleep 15s # Wait for the pop-up to disappear automatically - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out_vboot}= Execute Command In Terminal ./dasharo-tools/vboot/workbuf_parse -1 | grep "boot mode" @@ -217,7 +217,7 @@ VBO011.001 Recovery popup is not displayed when correctly signed firmware is fla # 3. Flash again with correctly signed firmware Flash RW Sections Via Internal Programmer ${FW_FILE_ORIGINAL} Execute Reboot Command - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out_vboot}= Execute Command In Terminal ./dasharo-tools/vboot/workbuf_parse -1 | grep "boot mode" @@ -229,12 +229,12 @@ VBO012.001 Self-signed binary is bootable without errors ... used by the end users are correct and don't cause bricks. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} VBO012.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Flash RW Sections Via Internal Programmer ${FW_FILE_RESIGNED} Execute Reboot Command - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User @@ -263,7 +263,7 @@ Prepare Tools, Keys And Binaries Power On # TODO: store the disk boot entry in platform config, or figure out how # to handle UEFI boot entries in a reliable manner - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Get Coreboot Tools From Cloud diff --git a/dasharo-stability/capsule-update.robot b/dasharo-stability/capsule-update.robot index ea511ff70c..926a839ba2 100644 --- a/dasharo-stability/capsule-update.robot +++ b/dasharo-stability/capsule-update.robot @@ -443,7 +443,7 @@ Prepare For Logo Persistence Test Go To Ubuntu Prompt Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} IF '${DUT_CONNECTION_METHOD}' == 'pikvm' Set Suite Variable ${DUT_CONNECTION_METHOD} SSH END diff --git a/dasharo-stability/m2-wifi.robot b/dasharo-stability/m2-wifi.robot index 62f78b1f89..0ee61d9cc3 100644 --- a/dasharo-stability/m2-wifi.robot +++ b/dasharo-stability/m2-wifi.robot @@ -123,7 +123,7 @@ SMW004.003 Wi-fi connection after suspension (Ubuntu) (S3) Wi-fi Connection After Suspension (Ubuntu) [Arguments] ${platform_sleep_type}=${EMPTY} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User diff --git a/dasharo-stability/network-interface-after-suspend.robot b/dasharo-stability/network-interface-after-suspend.robot index e381f391b8..5c7de36b24 100644 --- a/dasharo-stability/network-interface-after-suspend.robot +++ b/dasharo-stability/network-interface-after-suspend.robot @@ -32,12 +32,12 @@ NET002.001 Net controller after warmboot (Ubuntu) ... the platform is able to connect to the network after reboot. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NET001.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User FOR ${ind} IN RANGE ${STABILITY_DETECTION_REBOOT_ITERATIONS} Perform Warmboot Using Rtcwake - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${network_status}= Execute Command In Terminal ip link | grep -E 'enp' @@ -49,12 +49,12 @@ NET003.001 Net controller after reboot (Ubuntu) ... the platform is able to connect to the network after reboot. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NET001.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User FOR ${ind} IN RANGE ${STABILITY_DETECTION_REBOOT_ITERATIONS} Execute Reboot Command - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${network_status}= Execute Command In Terminal ip link | grep -E 'enp' @@ -89,7 +89,7 @@ NET004.003 NET controller after suspend (Ubuntu) (S3) NET Controller After Suspend (Ubuntu) [Arguments] ${platform_sleep_type}=${EMPTY} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User diff --git a/dasharo-stability/nvme-detection.robot b/dasharo-stability/nvme-detection.robot index dc163949e4..c22da2e440 100644 --- a/dasharo-stability/nvme-detection.robot +++ b/dasharo-stability/nvme-detection.robot @@ -51,14 +51,14 @@ SNV0002.001 NVMe detection after warm boot (Ubuntu) Skip If not ${NVME_DETECTION_SUPPORT} SNV002.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SNV002.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= List Devices In Linux pci Should Contain ${out} ${DEVICE_NVME_DISK} FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_WARMBOOT_ITERATIONS} Perform Warmboot Using Rtcwake - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= List Devices In Linux pci @@ -70,14 +70,14 @@ SNV003.001 NVMe detection after reboot (Ubuntu) ... correctly after performing a reboot. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SNV003.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= List Devices In Linux pci Should Contain ${out} ${DEVICE_NVME_DISK} FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} Execute Reboot Command - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= List Devices In Linux pci @@ -114,7 +114,7 @@ SNV004.003 NVMe detection after suspension (Ubuntu) (S3) NVMe Detection After Suspension (Ubuntu) [Arguments] ${platform_sleep_type}=${EMPTY} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User diff --git a/dasharo-stability/power-on-keyword-stress.robot b/dasharo-stability/power-on-keyword-stress.robot index a3eaebce15..9667941576 100644 --- a/dasharo-stability/power-on-keyword-stress.robot +++ b/dasharo-stability/power-on-keyword-stress.robot @@ -55,7 +55,7 @@ Test Power On Kwd In Firmware Test Power On Kwd In OS Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Execute Command In Terminal sleep 10 diff --git a/dasharo-stability/tpm-detect-heads.robot b/dasharo-stability/tpm-detect-heads.robot index ea285d9664..9ae9663115 100644 --- a/dasharo-stability/tpm-detect-heads.robot +++ b/dasharo-stability/tpm-detect-heads.robot @@ -104,7 +104,7 @@ TPM001.002 TPM Support (Ubuntu) ... correctly and the PCRs can be accessed from the operating system. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM001.002 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Detect Or Install Package tpm2-tools diff --git a/dasharo-stability/tpm-detect.robot b/dasharo-stability/tpm-detect.robot index 74a494a8a8..d4e523f9e0 100644 --- a/dasharo-stability/tpm-detect.robot +++ b/dasharo-stability/tpm-detect.robot @@ -23,7 +23,7 @@ TPD003.001 Detect TPM after platform reboot (Ubuntu) Skip If not ${TPM_DETECT_SUPPORT} TPD003.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPD003.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= List Devices In Linux pci @@ -31,7 +31,7 @@ TPD003.001 Detect TPM after platform reboot (Ubuntu) Detect Or Install Package tpm2-tools FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} Execute Reboot Command - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= Execute Command In Terminal tpm2_pcrread @@ -46,7 +46,7 @@ TPD004.001 Detect TPM after platform suspend (Ubuntu) Skip If not ${TPM_DETECT_SUPPORT} TPD001.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPD004.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= List Devices In Linux pci diff --git a/dasharo-stability/usb-type-a-devices-detection.robot b/dasharo-stability/usb-type-a-devices-detection.robot index e54579a882..7fb9b83242 100644 --- a/dasharo-stability/usb-type-a-devices-detection.robot +++ b/dasharo-stability/usb-type-a-devices-detection.robot @@ -53,7 +53,7 @@ SUD002.001 USB devices detection after warm boot (Ubuntu) Skip If not ${USB_TYPE-a_devices_detection_support} SUD002.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUD002.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= List Devices In Linux usb @@ -61,7 +61,7 @@ SUD002.001 USB devices detection after warm boot (Ubuntu) Detect Or Install FWTS FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_WARMBOOT_ITERATIONS} Perform Warmboot Using Rtcwake - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= List Devices In Linux usb @@ -74,14 +74,14 @@ SUD003.001 USB devices detection after reboot (Ubuntu) ... correctly after a reboot. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUD003.001 not supported Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= List Devices In Linux usb Should Contain ${out} ${USB_DEVICE} FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} Execute Reboot Command - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${out}= List Devices In Linux usb @@ -116,7 +116,7 @@ SUD004.003 USB devices detection after suspension (Ubuntu) (S3) USB Devices Detection After Suspension (Ubuntu) [Arguments] ${platform_sleep_type}=${EMPTY} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User diff --git a/keywords.robot b/keywords.robot index cff51f5ee3..31df9b43b8 100644 --- a/keywords.robot +++ b/keywords.robot @@ -74,7 +74,7 @@ Login To Linux Via OBMC Login To Windows [Documentation] Universal login to Windows. - Boot System Or From Connected Disk ${OS_WINDOWS} + Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11} # TODO: We need a better way of switching between SSH and serial inside tests IF '${DUT_CONNECTION_METHOD}' == 'pikvm' Set Test Variable ${DUT_CONNECTION_METHOD} SSH @@ -181,7 +181,7 @@ Login To Windows Via SSH # power on - login procedure in single keyword, and use # Run Keyword Until Succeeds? Restore Initial DUT Connection Method - Boot System Or From Connected Disk ${OS_WINDOWS} + Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11} Set Test Variable ${DUT_CONNECTION_METHOD} SSH END END diff --git a/lib/CPU-performance-lib.robot b/lib/CPU-performance-lib.robot index c3a387c9cb..c3c5caa609 100644 --- a/lib/CPU-performance-lib.robot +++ b/lib/CPU-performance-lib.robot @@ -124,7 +124,7 @@ Check The Platform Is A Laptop Check Power Supply On Linux Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux ${bat0_present_raw}= Execute Command In Terminal cat /sys/class/power_supply/BAT0/present ${bat0_present}= Run Keyword And Return Status Should Be Equal ${bat0_present_raw} 1 diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index a73f2d6e55..dfe0ac00a8 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -1141,8 +1141,8 @@ Save Changes And Reset Tianocore Reset System Boot System Or From Connected Disk # robocop: disable=too-long-keyword - [Documentation] Tries to boot system with ID of ${ENV_ID}. If it is not - ... possible then it tries + [Documentation] Tries to boot the the system with the ID of ${ENV_ID}. + ... If it is not possible then it tries ... to boot from connected disk set up in config ... ... === Requirements === @@ -1157,10 +1157,9 @@ Boot System Or From Connected Disk # robocop: disable=too-long-keyword ... ... === Effects === ... - Boots into the selected OS - ... - Does nothing if ${DUT_CONNECTION_METHOD}' == 'SSH' - selecting OS's - ... \ not supported via ssh. [Arguments] ${env_id} ${boot_menu}=NOT_SET ${system_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} + Set Suite Variable ${BOOTED_OS} ${system_name} Import Variables ${CURDIR}/../../os-config/${system_name}-credentials.py diff --git a/lib/esp-scanning-lib.robot b/lib/esp-scanning-lib.robot index 62a46f8f8c..d32bb6f504 100644 --- a/lib/esp-scanning-lib.robot +++ b/lib/esp-scanning-lib.robot @@ -41,7 +41,7 @@ Prepare EFI Partition With System Files Add HDD To Qemu img_name=${DL_CACHE_DIR}/image.img ELSE IF "${DUT_CONNECTION_METHOD}" == "pikvm" - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Remove All Supported Systems From Efi @@ -68,7 +68,7 @@ Clear Out EFI Partition Remove Drive From Qemu ELSE IF "${DUT_CONNECTION_METHOD}" == "pikvm" - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Remove All Supported Systems From Efi diff --git a/lib/flash.robot b/lib/flash.robot index bd46cb42ea..db68b979b5 100644 --- a/lib/flash.robot +++ b/lib/flash.robot @@ -90,7 +90,7 @@ Flash Firmware ELSE IF '${FLASHING_METHOD}' == 'internal' Make Sure That Flash Locks Are Disabled Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Flash Via Internal Programmer ${fw_file} region=bios diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index dd0a55655c..aa93e06ab4 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -133,11 +133,13 @@ Make Sure That Flash Locks Are Disabled Login To Windows Power On - Boot System Or From Connected Disk ${OS_WINDOWS} + Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11} Boot System Or From Connected Disk [Documentation] Keyword makes the DUT to reboot in chosen OS. There is a requirement for DUT to always reboot to Ubuntu. [Arguments] ${env_id} + ${system_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} + ${os_boot_id}= Set Variable ${EMPTY} ${system_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} ${os}= Convert To Lower Case ${system_name} diff --git a/lib/options/options-lib_uefi-setup-menu.robot b/lib/options/options-lib_uefi-setup-menu.robot index 2a41af58ad..fe73dcdc76 100644 --- a/lib/options/options-lib_uefi-setup-menu.robot +++ b/lib/options/options-lib_uefi-setup-menu.robot @@ -91,7 +91,7 @@ Measure Coldboot Time # Do one more iteration than requested, as we may hit first boot which is always longer. FOR ${index} IN RANGE 0 ${iterations}+1 Power Cycle On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${boot_time}= Get Boot Time From Cbmem @@ -112,7 +112,7 @@ Measure Warmboot Time # Do one more iteration than requested, as we may hit first boot which is always longer. FOR ${index} IN RANGE 0 ${iterations}+1 Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${boot_time}= Get Boot Time From Cbmem @@ -135,7 +135,7 @@ Measure Reboot Time Log To Console \n # Do one more iteration than requested, as we may hit first boot which is always longer. FOR ${index} IN RANGE 0 ${iterations}+1 - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${boot_time}= Get Boot Time From Cbmem diff --git a/os-config/environment-test-ids.py b/os-config/environment-test-ids.py index ae7df4276d..34512786ec 100644 --- a/os-config/environment-test-ids.py +++ b/os-config/environment-test-ids.py @@ -12,6 +12,7 @@ ENV_ID_UBUNTU = "201" ENV_ID_FEDORA = "202" ENV_ID_QUBES = "203" +ENV_ID_TRENCHBOOT = "204" # 3xx - Windows ENV_ID_WINDOWS_11 = "301" @@ -20,4 +21,5 @@ ENV_ID_UBUNTU: "ubuntu", ENV_ID_FEDORA: "fedora", ENV_ID_WINDOWS_11: "windows", + ENV_ID_TRENCHBOOT: "trenchboot", } diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index bd9bca821d..4b2e4cb378 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -51,7 +51,7 @@ ${TPM_EXPECTED_CHIP}= SLB9670 Flash Protectli VP2420 Internal Make Sure That Flash Locks Are Disabled Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Get Flashrom From Cloud diff --git a/self-tests/dcu.robot b/self-tests/dcu.robot index 63b0c42b93..6676ed31ea 100644 --- a/self-tests/dcu.robot +++ b/self-tests/dcu.robot @@ -29,7 +29,7 @@ Boot System Or From Connected Disk Power On - Dcu.Boot System Or From Connected Disk ${OS_WINDOWS} + Dcu.Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11} Dcu.Login To Windows Via SSH ${DEVICE_WINDOWS_USERNAME} ${DEVICE_WINDOWS_PASSWORD} Power On diff --git a/self-tests/os-boot.robot b/self-tests/os-boot.robot index f513e97ba3..791cbb6512 100644 --- a/self-tests/os-boot.robot +++ b/self-tests/os-boot.robot @@ -33,7 +33,7 @@ BOT001.001 Boot To Ubuntu Multiple Times ${index}= Evaluate ${i} + 1 Log To Console Iteration: ${index} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User END @@ -57,7 +57,7 @@ BOT003.001 Boot To Ubuntu Then Boot To Windows ${index}= Evaluate ${i} + 1 Log To Console Iteration: ${index} Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Power On diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index 0a082c10c2..1188fe6ea3 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -127,7 +127,7 @@ BPS003.002 Sonoff Power Off BPS004.001 Boot to OS - Ubuntu [Documentation] This test verifies if platform can be booted to Ubunto and if correct credentials are set. Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${logging}= Get Logging Level @@ -151,7 +151,7 @@ BPS005.001 External flashing BPS005.002 Internal flashing [Documentation] This test verifies if flashrom can detect the die. Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Get Flashrom From Cloud From 565bcc7f73446b1e9f5ea0e9f9851931e95f41df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Feb 2025 18:17:33 +0100 Subject: [PATCH 155/416] protectli-vp6650: define `Power On` - workaround for now MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Overriding keywords does not work like intended now and every platform config has to define Power On as using one from the includes if it should be used Signed-off-by: Filip Gołaś --- platform-configs/protectli-vp6650.robot | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/platform-configs/protectli-vp6650.robot b/platform-configs/protectli-vp6650.robot index 3d83fc8f5c..4cff4db4a2 100644 --- a/platform-configs/protectli-vp6650.robot +++ b/platform-configs/protectli-vp6650.robot @@ -28,3 +28,8 @@ ${PLATFORM_RAM_SIZE}= 65536 ... 64-62-66-22-84-f6 ... 64-62-66-22-84-f7 ... 64-62-66-22-84-f8 + + +*** Keywords *** +Power On + Protectli-common.Power On From 8121985a213cb586c5c38d1ee831d39ff9395128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Feb 2025 13:00:53 +0100 Subject: [PATCH 156/416] docs/novacustom: Warn about MAC randomization on wireless interfaces MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/novacustom.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/novacustom.md b/docs/novacustom.md index 7017c2883e..3942f1f7ae 100644 --- a/docs/novacustom.md +++ b/docs/novacustom.md @@ -39,3 +39,8 @@ internal programmer. If any locks are present the flashing will fail. station make sure that the appliances are connected to the docking station and not directly to the device and the other way around. Otherwise false positives will be generated. +* Make sure to connect the laptop using an ethernet cable, not via WiFi. + Some Operating Systems use MAC randomization on ,or similar mechanisms, on + wireless interfaces, which is not being handled right now. This might lead to + losing connection when rebooting to another OS, as the DUT IP address is + configured as constant in platform configs. From 91a0ca74f77d30e1cc4a89a3e3ba91b24f17638a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 7 Mar 2025 15:38:47 +0100 Subject: [PATCH 157/416] Use ENV_IDS for credentials files & change windows bootmenu name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/custom-fan-curve.robot | 6 +++--- keywords.robot | 10 +++++----- lib/bios/menus.robot | 4 ++-- lib/options/options-lib_dcu.robot | 18 ++++++++---------- ...buntu-credentials.py => 201-credentials.py} | 0 ...edora-credentials.py => 202-credentials.py} | 0 os-config/301-credentials.py | 9 +++++++++ os-config/environment-test-ids.py | 2 +- os-config/windows-credentials.py | 9 --------- platform-configs/include/default.robot | 4 ++-- self-tests/dcu.robot | 2 +- trenchboot/01-without-drtm.robot | 2 +- trenchboot/02-with-drtm.robot | 2 +- 13 files changed, 33 insertions(+), 35 deletions(-) rename os-config/{ubuntu-credentials.py => 201-credentials.py} (100%) rename os-config/{fedora-credentials.py => 202-credentials.py} (100%) create mode 100644 os-config/301-credentials.py delete mode 100644 os-config/windows-credentials.py diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index 7b67a7deb1..547ea4b781 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -40,7 +40,7 @@ CFC001.001 Custom fan curve silent profile measure (Ubuntu) Set UEFI Option FanCurveOption Silent Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Perform Custom Fan Curve Test silent @@ -54,7 +54,7 @@ CFC002.001 Custom fan curve performance profile measure (Ubuntu) Set UEFI Option FanCurveOption Performance Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Perform Custom Fan Curve Test performance @@ -68,7 +68,7 @@ CFC003.001 Custom fan curve OFF profile measure (Ubuntu) Set UEFI Option FanCurveOption Fans Off Power On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Perform Custom Fan Curve Test off diff --git a/keywords.robot b/keywords.robot index 31df9b43b8..1bc3e866a6 100644 --- a/keywords.robot +++ b/keywords.robot @@ -83,7 +83,7 @@ Login To Windows Set Test Variable ${DUT_CONNECTION_METHOD} SSH END IF '${DUT_CONNECTION_METHOD}' == 'SSH' - Login To Windows Via SSH ${DEVICE_WINDOWS_USERNAME} ${DEVICE_WINDOWS_PASSWORD} + Login To Windows Via SSH ${DEVICE_OS_USERNAME} ${DEVICE_OS_PASSWORD} ELSE Fail Login to Windows not supported. DUT_CONNECTION_METHOD must be set to SSH. END @@ -156,8 +156,8 @@ Login To Windows Via SSH ... username and password respectively. The optional timeout ... parameter can be used to specify how long we want to ... wait for the login prompt. - [Arguments] ${username}=${DEVICE_WINDOWS_USERNAME} ${password}=${DEVICE_WINDOWS_PASSWORD} ${timeout}=180 - SSHLibrary.Open Connection ${DEVICE_IP} prompt=${DEVICE_WINDOWS_USER_PROMPT} + [Arguments] ${username}=${DEVICE_OS_USERNAME} ${password}=${DEVICE_OS_PASSWORD} ${timeout}=180 + SSHLibrary.Open Connection ${DEVICE_IP} prompt=${DEVICE_OS_USER_PROMPT} SSHLibrary.Set Client Configuration ... timeout=${timeout} ... term_type=vt100 @@ -524,8 +524,8 @@ Prepare To SSH Connection ... the SSH protocol # tu leci zmiana, musimy brać platformy zgodnie z tym co zostało pobrane w dasharo Set Global Variable ${PLATFORM} ${CONFIG} - IF '${DEFAULT_BOOT_OS}' - Import Variables ${CURDIR}/os-config/${DEFAULT_BOOT_OS}-credentials.py + IF '${DEFAULT_BOOT_OS_ID}' + Import Variables ${CURDIR}/os-config/${DEFAULT_BOOT_OS_ID}-credentials.py END SSHLibrary.Set Default Configuration timeout=60 seconds IF '${SNIPEIT}'=='no' RETURN diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index dfe0ac00a8..fcd92877c1 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -1160,8 +1160,8 @@ Boot System Or From Connected Disk # robocop: disable=too-long-keyword [Arguments] ${env_id} ${boot_menu}=NOT_SET ${system_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} - Set Suite Variable ${BOOTED_OS} ${system_name} - Import Variables ${CURDIR}/../../os-config/${system_name}-credentials.py + Set Suite Variable ${BOOTED_OS_ID} ${env_id} + Import Variables ${CURDIR}/../../os-config/${env_id}-credentials.py IF '${DUT_CONNECTION_METHOD}' == 'SSH' RETURN diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index aa93e06ab4..a44becf976 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -138,18 +138,16 @@ Login To Windows Boot System Or From Connected Disk [Documentation] Keyword makes the DUT to reboot in chosen OS. There is a requirement for DUT to always reboot to Ubuntu. [Arguments] ${env_id} - ${system_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} ${os_boot_id}= Set Variable ${EMPTY} - ${system_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} - ${os}= Convert To Lower Case ${system_name} + ${os_bootentry_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} - Import Variables ${CURDIR}/../../os-config/${BOOTED_OS}-credentials.py + Import Variables ${CURDIR}/../../os-config/${BOOTED_OS_ID}-credentials.py Login To Linux Switch To Root User - IF '${BOOTED_OS}' == '${os}' + IF '${BOOTED_OS_ID}' == '${env_id}' Log Target OS already booted RETURN END @@ -164,7 +162,7 @@ Boot System Or From Connected Disk ${line}= Get Substring ${line} 0 150 ${line}= Convert To Lower Case ${line} - IF '${os}' in '${line}' + IF '${os_bootentry_name}' in '${line}' ${os_boot_id}= Set Variable ${line} BREAK END @@ -174,8 +172,8 @@ Boot System Or From Connected Disk Execute Command In Terminal efibootmgr --bootnext ${id} Sleep 1s Write Into Terminal reboot - Import Variables ${CURDIR}/../../os-config/${os}-credentials.py - Set Suite Variable ${BOOTED_OS} ${os} + Import Variables ${CURDIR}/../../os-config/${env_id}-credentials.py + Set Suite Variable ${BOOTED_OS_ID} ${env_id} Sleep 30s ELSE Fail Os entry not found @@ -184,8 +182,8 @@ Boot System Or From Connected Disk Login To Windows Via SSH [Documentation] Login to Windows via SSH by using provided arguments as ... username and password respectively. - [Arguments] ${username}=${DEVICE_WINDOWS_USERNAME} ${password}=${DEVICE_WINDOWS_PASSWORD} ${timeout}=180 - SSHLibrary.Open Connection ${DEVICE_IP} prompt=${DEVICE_WINDOWS_USER_PROMPT} + [Arguments] ${username}=${DEVICE_OS_USERNAME} ${password}=${DEVICE_OS_PASSWORD} ${timeout}=180 + SSHLibrary.Open Connection ${DEVICE_IP} prompt=${DEVICE_OS_USER_PROMPT} SSHLibrary.Set Client Configuration ... timeout=${timeout} ... term_type=vt100 diff --git a/os-config/ubuntu-credentials.py b/os-config/201-credentials.py similarity index 100% rename from os-config/ubuntu-credentials.py rename to os-config/201-credentials.py diff --git a/os-config/fedora-credentials.py b/os-config/202-credentials.py similarity index 100% rename from os-config/fedora-credentials.py rename to os-config/202-credentials.py diff --git a/os-config/301-credentials.py b/os-config/301-credentials.py new file mode 100644 index 0000000000..7381e0ea71 --- /dev/null +++ b/os-config/301-credentials.py @@ -0,0 +1,9 @@ +# SPDX-FileCopyrightText: 2025 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +DEVICE_OS_USERNAME = "user" +DEVICE_OS_PASSWORD = "windows" + +DEVICE_OS_USER_PROMPT = f"PS C:\\Users\\{DEVICE_OS_USERNAME}>" +DEVICE_OS_ROOT_PROMPT = f"PS C:\\Users\\{DEVICE_OS_USERNAME}>" diff --git a/os-config/environment-test-ids.py b/os-config/environment-test-ids.py index 34512786ec..9e71a834eb 100644 --- a/os-config/environment-test-ids.py +++ b/os-config/environment-test-ids.py @@ -20,6 +20,6 @@ ENV_ID_OS_BOOTMENU_NAMES = { ENV_ID_UBUNTU: "ubuntu", ENV_ID_FEDORA: "fedora", - ENV_ID_WINDOWS_11: "windows", + ENV_ID_WINDOWS_11: "Windows Boot", ENV_ID_TRENCHBOOT: "trenchboot", } diff --git a/os-config/windows-credentials.py b/os-config/windows-credentials.py deleted file mode 100644 index b209658e4a..0000000000 --- a/os-config/windows-credentials.py +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-FileCopyrightText: 2025 3mdeb -# -# SPDX-License-Identifier: Apache-2.0 - -OS_USERNAME = "user" -OS_PASSWORD = "windows" - -OS_USER_PROMPT = f"PS C:\\Users\\{OS_USERNAME}>" -OS_ROOT_PROMPT = f"PS C:\\Users\\{OS_USERNAME}>" diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 62157639cc..dc1b85f061 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -275,8 +275,8 @@ ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}= NetworkBoot ${ETH_PORTS}= ${EMPTY} ${TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} -${DEFAULT_BOOT_OS}= ubuntu -${BOOTED_OS}= ${DEFAULT_BOOT_OS} +${DEFAULT_BOOT_OS_ID}= ${ENV_ID_UBUNTU} +${BOOTED_OS_ID}= ${DEFAULT_BOOT_OS_ID} *** Keywords *** diff --git a/self-tests/dcu.robot b/self-tests/dcu.robot index 6676ed31ea..1c5e3710ea 100644 --- a/self-tests/dcu.robot +++ b/self-tests/dcu.robot @@ -30,7 +30,7 @@ Boot System Or From Connected Disk Power On Dcu.Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11} - Dcu.Login To Windows Via SSH ${DEVICE_WINDOWS_USERNAME} ${DEVICE_WINDOWS_PASSWORD} + Dcu.Login To Windows Via SSH ${DEVICE_OS_USERNAME} ${DEVICE_OS_PASSWORD} Power On Dcu.Boot System Or From Connected Disk ${OS_UBUNTU} diff --git a/trenchboot/01-without-drtm.robot b/trenchboot/01-without-drtm.robot index 37dca3c849..450dd080e4 100644 --- a/trenchboot/01-without-drtm.robot +++ b/trenchboot/01-without-drtm.robot @@ -62,7 +62,7 @@ TrenchBoot Suite Setup Skip If not ${TESTS_IN_METATB_SUPPORT} Tests in meta-trenchboot aren't supported Power On - Boot System Or From Connected Disk trenchboot + Boot System Or From Connected Disk ${ENV_ID_TRENCHBOOT} Read From Terminal Until Press enter to boot the selected OS Write Bare Into Terminal ${ENTER} diff --git a/trenchboot/02-with-drtm.robot b/trenchboot/02-with-drtm.robot index 7655b95abf..2dda9a138b 100644 --- a/trenchboot/02-with-drtm.robot +++ b/trenchboot/02-with-drtm.robot @@ -164,7 +164,7 @@ TrenchBoot Suite Setup Skip If not ${TESTS_IN_METATB_SUPPORT} Tests in meta-trenchboot aren't supported Power On - Boot System Or From Connected Disk trenchboot + Boot System Or From Connected Disk ${ENV_ID_TRENCHBOOT} Read From Terminal Until Press enter to boot the selected OS # Slaunch is the second boot option, pick it. Write Bare Into Terminal ${ARROW_DOWN} From 81c3a1edc6623306f7e8f94edde93ca9b7a2724b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Mon, 20 Jan 2025 18:28:23 +0100 Subject: [PATCH 158/416] keywords.robot: add suport for checking power LED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- keywords.robot | 12 ++++++++++++ platform-configs/include/default.robot | 1 + platform-configs/include/protectli-common.robot | 1 + platform-configs/minnowboard-turbot.robot | 1 + 4 files changed, 15 insertions(+) diff --git a/keywords.robot b/keywords.robot index 1bc3e866a6..20f3498ec5 100644 --- a/keywords.robot +++ b/keywords.robot @@ -672,6 +672,18 @@ Power Cycle On END IF '${DEFAULT_POWER_STATE_AFTER_FAIL}' == 'Powered Off' Rte Power On + IF '${CHECK_POWER_LED_SUPPORT}' == '${TRUE}' + FOR ${i} IN RANGE 5 + ${out}= Rte Check Power Led + IF '${out}' == 'high' RETURN + Sleep 1s + END + IF '${out}' != 'high' + FAIL Power LED didn't light up! Setup needs manual verification, + ... or Power State After Power Failure is set incorrectly. + END + END + OBMC Power Cycle On [Documentation] Clears obmc-console-client buffer and perform full power ... cycle with Chassis and Host State Control diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index dc1b85f061..c66d40ad88 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -29,6 +29,7 @@ ${INTERNAL_PROGRAMMER_CHIPNAME}= "Opaque flash chip" ${FLASHING_METHOD}= external ${SNIPEIT}= yes ${SEABIOS_BOOT_DEVICE}= ${EMPTY} +${CHECK_POWER_LED_SUPPORT}= ${FALSE} # See: https://github.com/Dasharo/dasharo-issues/issues/614 ${LAPTOP_EC_SERIAL_WORKAROUND}= ${FALSE} diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index 70936ef18b..54763c85cf 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -19,6 +19,7 @@ ${MANUFACTURER}= ${TBD} ${CPU}= ${TBD} ${POWER_CTRL}= RteCtrl ${FLASH_VERIFY_METHOD}= none +${CHECK_POWER_LED_SUPPORT}= ${TRUE} ${DMIDECODE_SERIAL_NUMBER}= N/A ${DMIDECODE_MANUFACTURER}= Protectli diff --git a/platform-configs/minnowboard-turbot.robot b/platform-configs/minnowboard-turbot.robot index c2ac97748f..776ce157bd 100644 --- a/platform-configs/minnowboard-turbot.robot +++ b/platform-configs/minnowboard-turbot.robot @@ -33,6 +33,7 @@ ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} # Regression test flags ${CUSTOM_BOOT_MENU_KEY_SUPPORT}= ${TRUE} +${CHECK_POWER_LED_SUPPORT}= ${TRUE} *** Keywords *** From ae5bbe7ac7569c0f312d2a78fa48e50d22c9470e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Tue, 11 Feb 2025 15:25:32 +0100 Subject: [PATCH 159/416] platform-configs: invert CHECK_POWER_LED_SUPPORT logic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- platform-configs/include/default.robot | 2 +- platform-configs/include/msi-z690-common.robot | 1 + platform-configs/include/novacustom-common.robot | 1 + platform-configs/include/optiplex-common.robot | 1 + platform-configs/include/protectli-common.robot | 4 ++-- platform-configs/minnowboard-turbot.robot | 1 - 6 files changed, 6 insertions(+), 4 deletions(-) diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index c66d40ad88..3761e82684 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -29,7 +29,7 @@ ${INTERNAL_PROGRAMMER_CHIPNAME}= "Opaque flash chip" ${FLASHING_METHOD}= external ${SNIPEIT}= yes ${SEABIOS_BOOT_DEVICE}= ${EMPTY} -${CHECK_POWER_LED_SUPPORT}= ${FALSE} +${CHECK_POWER_LED_SUPPORT}= ${TRUE} # See: https://github.com/Dasharo/dasharo-issues/issues/614 ${LAPTOP_EC_SERIAL_WORKAROUND}= ${FALSE} diff --git a/platform-configs/include/msi-z690-common.robot b/platform-configs/include/msi-z690-common.robot index 3bf1d09e5f..12a32b9989 100644 --- a/platform-configs/include/msi-z690-common.robot +++ b/platform-configs/include/msi-z690-common.robot @@ -25,6 +25,7 @@ ${POWER_CTRL}= sonoff ${FLASH_VERIFY_METHOD}= none ${WIFI_CARD}= ${TBD} ${MAX_CPU_TEMP}= 80 +${CHECK_POWER_LED_SUPPORT}= ${FALSE} ${DMIDECODE_MANUFACTURER}= Micro-Star International Co., Ltd. ${DMIDECODE_VENDOR}= 3mdeb diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index e583d4cbc3..6ebfba4793 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -24,6 +24,7 @@ ${FLASH_VERIFY_METHOD}= none ${MAX_CPU_TEMP}= 82 ${AUTO_BOOT_TIME_OUT_DEFAULT_VALUE}= 6 ${FLASHING_METHOD}= internal +${CHECK_POWER_LED_SUPPORT}= ${FALSE} ${DMIDECODE_SERIAL_NUMBER}= N/A ${DMIDECODE_MANUFACTURER}= Notebook diff --git a/platform-configs/include/optiplex-common.robot b/platform-configs/include/optiplex-common.robot index 509459c367..256f12c71b 100644 --- a/platform-configs/include/optiplex-common.robot +++ b/platform-configs/include/optiplex-common.robot @@ -16,6 +16,7 @@ ${SETUP_MENU_KEY}= ${F2} ${IPXE_BOOT_ENTRY}= Network Boot and Utilities ${POWER_CTRL}= sonoff ${MAX_CPU_TEMP}= 80 +${CHECK_POWER_LED_SUPPORT}= ${FALSE} ${DMIDECODE_VENDOR}= 3mdeb ${DMIDECODE_FAMILY}= N/A diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index 54763c85cf..b2e6aecbe1 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -18,8 +18,8 @@ ${EDK2_IPXE_CHECKPOINT}= Advanced ${MANUFACTURER}= ${TBD} ${CPU}= ${TBD} ${POWER_CTRL}= RteCtrl -${FLASH_VERIFY_METHOD}= none -${CHECK_POWER_LED_SUPPORT}= ${TRUE} +${FLASH_VERIFY_METHOD}= tianocore-shell +${FLASH_VERIFY_OPTION}= UEFI Shell ${DMIDECODE_SERIAL_NUMBER}= N/A ${DMIDECODE_MANUFACTURER}= Protectli diff --git a/platform-configs/minnowboard-turbot.robot b/platform-configs/minnowboard-turbot.robot index 776ce157bd..c2ac97748f 100644 --- a/platform-configs/minnowboard-turbot.robot +++ b/platform-configs/minnowboard-turbot.robot @@ -33,7 +33,6 @@ ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} # Regression test flags ${CUSTOM_BOOT_MENU_KEY_SUPPORT}= ${TRUE} -${CHECK_POWER_LED_SUPPORT}= ${TRUE} *** Keywords *** From 5a8a3345e59a9f96606b29f8da67c119d02cdafc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Tue, 11 Feb 2025 15:40:35 +0100 Subject: [PATCH 160/416] keywords.robot: change power LED polling rate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- keywords.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keywords.robot b/keywords.robot index 20f3498ec5..874b7fdd95 100644 --- a/keywords.robot +++ b/keywords.robot @@ -673,10 +673,10 @@ Power Cycle On IF '${DEFAULT_POWER_STATE_AFTER_FAIL}' == 'Powered Off' Rte Power On IF '${CHECK_POWER_LED_SUPPORT}' == '${TRUE}' - FOR ${i} IN RANGE 5 + FOR ${i} IN RANGE 50 ${out}= Rte Check Power Led IF '${out}' == 'high' RETURN - Sleep 1s + Sleep 0.25s END IF '${out}' != 'high' FAIL Power LED didn't light up! Setup needs manual verification, From 4141fa300fd11a8fa22d052462630835c7029ee5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Tue, 25 Feb 2025 11:14:41 +0100 Subject: [PATCH 161/416] keywords.robot: switch to 0.5s when polling power LED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- keywords.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keywords.robot b/keywords.robot index 874b7fdd95..940adf944b 100644 --- a/keywords.robot +++ b/keywords.robot @@ -676,7 +676,7 @@ Power Cycle On FOR ${i} IN RANGE 50 ${out}= Rte Check Power Led IF '${out}' == 'high' RETURN - Sleep 0.25s + Sleep 0.5s END IF '${out}' != 'high' FAIL Power LED didn't light up! Setup needs manual verification, From 4fd0f0d5453beda20a52bdced7bb326bf3dc8069 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Fri, 7 Mar 2025 09:03:15 +0100 Subject: [PATCH 162/416] protectli-vp2420.robot: display audio device information added Signed-off-by: Mateusz Maciejewski --- platform-configs/protectli-vp2420.robot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index 4b2e4cb378..c8039c6f55 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -46,6 +46,8 @@ ${NVME_DISK_SUPPORT}= ${FALSE} ${TPM_EXPECTED_CHIP}= SLB9670 +${DEVICE_AUDIO1_WIN}= Display Audio +${DEVICE_AUDIO1}= EA244WMi *** Keywords *** Flash Protectli VP2420 Internal From 347753b548b5f7305bba9c8b198bb543b8581e82 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Fri, 7 Mar 2025 09:06:09 +0100 Subject: [PATCH 163/416] protectli-vp24xx.robot SENSORS_CONFIG_FILE set to default. cpu-temperature.robot modified to load variables from *.yml file pointed by SENSORS_CONFIG_FILE variable taken from platform config. Signed-off-by: Mateusz Maciejewski --- dasharo-performance/cpu-temperature.robot | 2 ++ platform-configs/include/protectli-vp24xx.robot | 2 ++ platform-configs/protectli-vp2420.robot | 1 + 3 files changed, 5 insertions(+) diff --git a/dasharo-performance/cpu-temperature.robot b/dasharo-performance/cpu-temperature.robot index c758fed69d..c8ae714652 100644 --- a/dasharo-performance/cpu-temperature.robot +++ b/dasharo-performance/cpu-temperature.robot @@ -22,6 +22,8 @@ Suite Setup Run Keywords ... Skip If not ${CPU_TEMPERATURE_MEASURE} CPU temperature measurement tests not supported ... AND ... Check Power Supply +... AND +... Import Variables ${CURDIR}/../platform-configs/${SENSORS_CONFIG_FILE} Suite Teardown Run Keyword ... Log Out And Close Connection diff --git a/platform-configs/include/protectli-vp24xx.robot b/platform-configs/include/protectli-vp24xx.robot index 39e9ae39b7..438fa549fe 100644 --- a/platform-configs/include/protectli-vp24xx.robot +++ b/platform-configs/include/protectli-vp24xx.robot @@ -12,3 +12,5 @@ ${MAX_CPU_TEMP}= 95 ${DMIDECODE_MANUFACTURER}= Protectli ${DMIDECODE_VENDOR}= 3mdeb ${DMIDECODE_FAMILY}= Vault Pro + +${SENSORS_CONFIG_FILE}= include/sensors/default-sensors-config.yaml diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index c8039c6f55..72d660de56 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -49,6 +49,7 @@ ${TPM_EXPECTED_CHIP}= SLB9670 ${DEVICE_AUDIO1_WIN}= Display Audio ${DEVICE_AUDIO1}= EA244WMi + *** Keywords *** Flash Protectli VP2420 Internal Make Sure That Flash Locks Are Disabled From 5e86f0b54fad364d052a2fec6c7cee045b80ce81 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Wed, 12 Mar 2025 12:25:15 +0100 Subject: [PATCH 164/416] scripts/refactoring-state.sh: add missing power-related old kwds Signed-off-by: Maciej Pijanowski --- scripts/refactoring-state.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/refactoring-state.sh b/scripts/refactoring-state.sh index 177f846117..a0d505cc94 100755 --- a/scripts/refactoring-state.sh +++ b/scripts/refactoring-state.sh @@ -40,6 +40,10 @@ kwds_to_remove=( "Enable Option In Submenu" "Disable Option In Submenu" "Get Intel ME Mode State" +"Power Cycle Off" +"Rte Relay" +"Rte Relay Set" +"Coldboot Via RTE Relay" ) echo "Keywords that should not be used, but are still used:" From 0b43feba13e2a39cfd654559a8a95bba10ab0a32 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Wed, 12 Mar 2025 12:25:59 +0100 Subject: [PATCH 165/416] keywords.robot: drop RTE Relay leftovers Signed-off-by: Maciej Pijanowski --- keywords.robot | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/keywords.robot b/keywords.robot index 940adf944b..688fb3539a 100644 --- a/keywords.robot +++ b/keywords.robot @@ -632,7 +632,7 @@ Remap Keys Variables From PiKVM Get DUT To Start State [Documentation] Clears telnet buffer and get Device Under Test to start - ... state (RTE Relay On). + ... state. Telnet.Read IF '${MANUFACTURER}' != 'QEMU' and '${CONFIG}' != 'no-rte' ${state}= Get Power Supply State @@ -1263,12 +1263,6 @@ Rescan Devices In Petitboot Write Bare Into Terminal ${ENTER} # To Do: read system log -Coldboot Via RTE Relay - [Documentation] Coldboot the DUT using RTE Relay. - Rte Relay Set off - Sleep 5s - Rte Relay on - Reboot Via OS Boot By Petitboot [Documentation] Reboot system with system installed on the DUT while ... already logged into Petitboot. From f603dd543e136488822df9fae5cdabeee265665d Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Wed, 12 Mar 2025 12:26:30 +0100 Subject: [PATCH 166/416] util/basic-platform-setup.robot: rework considering the PSU abstraction We no longer control Relay or Sonoff directly in OSFV, we use PSU abstraction configured in osfv_cli libraries instead. Signed-off-by: Maciej Pijanowski --- util/basic-platform-setup.robot | 83 ++++++--------------------------- 1 file changed, 14 insertions(+), 69 deletions(-) diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index 1188fe6ea3..a4cf4e1827 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -25,50 +25,25 @@ Suite Teardown Run Keyword *** Test Cases *** -BPS001.001 Power Control - Power On and Serial output - [Documentation] Verifies if the DUT can be turned On and if the serial output can be read. +BPS001.001 Power Control - PSU ON and serial output + [Documentation] Verifies if PSU can be turned ON and if the serial output can be read. Power On ${result}= Wait For Serial Output Should Be True ${result} msg=Power On keyword failed -BPS001.002 Power Control - Power Off - [Documentation] This test verifies if the DUT can be powered down. +BPS002.001 Power control - PSU OFF + [Documentation] Verifies if PSU can be turned OFF Power On ${result}= Wait For Serial Output Should Be True ${result} msg=Power On keyword failed - Power Cycle Off - ${out}= Read From Terminal - ${result}= Wait For Serial Output timeout=10 - Should Not Be True ${result} msg=Power Cycle Off keyword failed - -BPS002.001 RTE Relay low - [Documentation] Verifies if RTE Relay set to low state will turn off the DUT. - Skip If '${POWER_CTRL}' != 'RteCtrl' DUT doesn't use RTE relay for power control - Power On - ${result}= Wait For Serial Output - Should Be True ${result} msg=Power On keyword failed - - Rte Relay Set off - Read From Terminal - ${result}= Wait For Serial Output timeout=10 - Should Not Be True ${result} msg=Failed to power off DUT via relay - -BPS002.002 RTE Relay high - [Documentation] Verifies if RTE Relay set to high state will turn on the DUT. - Skip If '${POWER_CTRL}' != 'RteCtrl' DUT doesn't use RTE relay for power control - Power On - Rte Relay Set off + Rte Psu Off Read From Terminal ${result}= Wait For Serial Output timeout=10 - Should Not Be True ${result} msg=Failed to power off DUT via relay + Should Not Be True ${result} msg=Failed to switch PSU OFF - Rte Relay Set on - ${result}= Wait For Serial Output - Should Be True ${result} msg=Failed to power on DUT via relay - -BPS002.003 RTE Power On - [Documentation] Verifies if Power Button can turn on the DUT. +BPS003.001 RTE Power On + [Documentation] Verifies if Power Button can turn DUT ON/OFF. # TODO: do we have platforms in the lab that might not use # power/reset buttons? If so, we do not have flag for it. Power On @@ -85,20 +60,8 @@ BPS002.003 RTE Power On ${result}= Wait For Serial Output Should Be True ${result} msg=Failed to power on DUT via power button -BPS002.004 RTE Power Off - [Documentation] Verifies if Power Button can turn off the DUT. - Power On - ${result}= Wait For Serial Output - Should Be True ${result} msg=Power On keyword failed - - Rte Power Off - Sleep 10s - Read From Terminal - ${result}= Wait For Serial Output timeout=10 - Should Not Be True ${result} msg=Failed to power off DUT via power button - -BPS002.005 RTE Reset - [Documentation] Verifies if RTE Reset works +BPS004.001 RTE Reset + [Documentation] Verifies if reset button can reset the DUT. Power On Wait For Serial Output Rte Reset @@ -106,25 +69,7 @@ BPS002.005 RTE Reset ${result}= Wait For Serial Output Should Be True ${result} msg=Failed to reset DUT via reset button -BPS003.001 Sonoff Power On - [Documentation] This test verifies if the DUT can be powerd on by Sonoff - Skip If '${POWER_CTRL}' != 'sonoff' DUT doesn't use Sonoff - Sonoff Power Cycle On - ${result}= Wait For Serial Output - Should Be True ${result} msg=Failed power on DUT via Sonoff - -BPS003.002 Sonoff Power Off - [Documentation] This test verifies if the DUT can be shutdown by Sonoff - Skip If '${POWER_CTRL}' != 'sonoff' DUT doesn't use Sonoff - Sonoff Power Cycle On - ${result}= Wait For Serial Output - Should Be True ${result} msg=Failed power on DUT via Sonoff - Sonoff Power Cycle Off - Read From Terminal - ${result}= Wait For Serial Output timeout=10 - Should Not Be True ${result} msg=Failed power off DUT via Sonoff - -BPS004.001 Boot to OS - Ubuntu +BPS005.001 Boot to OS - Ubuntu [Documentation] This test verifies if platform can be booted to Ubunto and if correct credentials are set. Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} @@ -138,17 +83,17 @@ BPS004.001 Boot to OS - Ubuntu ${logging}= Get Logging Level Should Be Equal As Integers ${logging} 0 -BPS004.002 Boot to OS - Windows +BPS005.002 Boot to OS - Windows [Documentation] This test verifies if platform can be booted to Windows, if SSH server is enabled and if correct credentials are set. Power On Login To Windows -BPS005.001 External flashing +BPS006.001 External flashing [Documentation] This test verifies if the flash die can be detected. ${rc}= Rte Flash Probe Should Be Equal As Integers ${rc} 0 -BPS005.002 Internal flashing +BPS006.002 Internal flashing [Documentation] This test verifies if flashrom can detect the die. Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} From 5000f0e6b4a2cf13a236350b65b0a9bf03ecfaf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Wed, 12 Mar 2025 15:28:21 +0100 Subject: [PATCH 167/416] requirements.txt: Bump OSFV libs for clear CMOS KW MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- requirements.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index cde88d77a3..62ee2a1be0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -38,7 +38,9 @@ mdurl==0.1.2 nodeenv==1.8.0 numpy==2.2.3 oauth2client==4.1.3 -osfv @ git+https://github.com/Dasharo/osfv-scripts.git@f65d9682b446cec5d7fd15b24f36186b8aff599d#subdirectory=osfv_cli +osfv @ git+https://github.com/Dasharo/osfv-scripts.git@8a565cad6214b426a0d01ebdcdb5a7df3d3aef01#subdirectory=osfv_cli +packaging==24.2 +pandas==2.2.3 paramiko==3.4.0 pathspec==0.9.0 pexpect==4.9.0 From 3af25b652b4d13bc447a52bd69f21397db88c154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Wed, 12 Mar 2025 15:29:55 +0100 Subject: [PATCH 168/416] util/basic-platform-setup.robot: Add CMOS clear test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- util/basic-platform-setup.robot | 39 +++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index a4cf4e1827..975289ee4d 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -103,6 +103,45 @@ BPS006.002 Internal flashing ${out_flashrom}= Execute Command In Terminal flashrom -p internal Should Contain ${out_flashrom} Found chipset +BPS007.001 RTE CMOS clear + [Documentation] This test verifies if CMOS clear works with the platform setup. + # CMOS should be cleared when platform is cut off from power + Rte Psu Off + Rte Clear Cmos + Power On + # TODO: Can we do it without Linux? + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + # Test relies entirely on coreboot console to print the CMOS invalid message + Get Cbmem From Cloud + ${out}= Execute Command In Terminal + ... cbmem -1 | grep -i rtc + + Should Contain Any ${out} + ... "RTC: Clear requested" + ... "rtc_failed \= 0x1" + ... ignore_case=True + + Execute Reboot Command + + # Now check if the CMOS is not reset again after reboot. If CMOS fails it + # means that either the CMOS battery is not connected at all or the + # platform setup is incorrect. + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + + ${out}= Execute Command In Terminal + ... cbmem -1 | grep -i rtc + + Should Not Contain Any + ... ${out} + ... "RTC: Clear requested" + ... "rtc_failed \= 0x1" + ... ignore_case=True + ... msg=CMOS is invalid after reboot. Either the CMOS battery is not connected or the connection is wrong. Check DUT setup. + *** Keywords *** Check If Empty From 2dff0045f8ea18b27f49558512d8d9ea45d0480b Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Thu, 16 Jan 2025 00:58:44 +0100 Subject: [PATCH 169/416] tree-wide: drop host-cache, use osfv-test-data module Signed-off-by: Maciej Pijanowski --- .../dasharo-tools-suite.robot | 8 +-- dasharo-compatibility/dcu.robot | 7 +- dasharo-compatibility/esp-scanning.robot | 11 +--- .../firmware-bulding-locally.robot | 2 +- .../usb-hid-and-msc-support.robot | 3 +- dasharo-security/bios-lock.robot | 4 +- .../early-boot-dma-protection.robot | 4 +- dasharo-security/secure-boot.robot | 49 ++++---------- dasharo-security/tpm-support.robot | 3 +- dasharo-security/verified-boot.robot | 2 +- dasharo-stability/capsule-update.robot | 7 +- keywords.robot | 66 +++++++++---------- lib/dl-cache.robot | 33 ---------- lib/esp-scanning-lib.robot | 64 +++++------------- lib/usb-hid-msc-lib.robot | 51 +++++++------- platform-configs/protectli-vp2420.robot | 2 +- scripts/refactoring-state.sh | 31 +++++++++ util/basic-platform-setup.robot | 2 +- variables.robot | 2 +- 19 files changed, 134 insertions(+), 217 deletions(-) delete mode 100644 lib/dl-cache.robot diff --git a/dasharo-compatibility/dasharo-tools-suite.robot b/dasharo-compatibility/dasharo-tools-suite.robot index 1a009d73e5..77e3297a5e 100644 --- a/dasharo-compatibility/dasharo-tools-suite.robot +++ b/dasharo-compatibility/dasharo-tools-suite.robot @@ -29,13 +29,7 @@ DTS001.001 Booting DTS from USB works correctly [Documentation] This test aims to verify that DTS is properly booting ... from USB. Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} DTS001.001 not supported - # FIXME: Only supported on PiKVM based setups right now - Skip If "${DUT_CONNECTION_METHOD}" != "pikvm" DTS001.001 not supported - Skip This test will fail. You cannot use SSH when using DTS via PiKVM, as it is read-only and SSH fails. - Download ISO And Mount As USB - ... ${DL_CACHE_DIR}/dts-base-image-v1.2.8.iso - ... ${DTS_URL} - ... f42b59633dbcc16ecbd7c98a880c582c5235c22626d7204202c922f3a7fa231b + Mount USB Disk Image ${TEST_DATA_DIR}/dts/dts-base-image-v2.1.3.wic Power On Boot Dasharo Tools Suite USB diff --git a/dasharo-compatibility/dcu.robot b/dasharo-compatibility/dcu.robot index ab8d4607e3..a6e4d40513 100644 --- a/dasharo-compatibility/dcu.robot +++ b/dasharo-compatibility/dcu.robot @@ -73,7 +73,7 @@ DCU003.001 Change the bootsplash logo Skip If not ${CUSTOM_LOGO_SUPPORT} DCU003.001 not supported ${img_sum}= Set Variable f91fe017bef1f98ce292bde1c2c7c61edf7b51e9c96d25c33bfac90f50de4513 - ${logo_path}= Join Path ${DL_CACHE_DIR} logo.bmp + ${logo_path}= Join Path ${TEST_DATA_DIR}/dcu logo.bmp DCU Logo Set In File ${FW_COPY} ${logo_path} Flash Firmware ${FW_COPY} Make Sure New Firmware Is Booted After Flashing @@ -116,11 +116,6 @@ DCU004.001 Verify SMMSTORE changes *** Keywords *** Prepare DCU Test Environment - Download To Host Cache - ... logo.bmp - ... https://cloud.3mdeb.com/index.php/s/rsjCdz4wSNesLio/download - ... 6e5a6722955e4f78d947654630f27ff833703fbc04776ffed963c96617f6bb2a - Run cp ${FW_FILE} ${FW_COPY} Run chmod -R a+rw dcu diff --git a/dasharo-compatibility/esp-scanning.robot b/dasharo-compatibility/esp-scanning.robot index 01e11055a1..0cd2642864 100644 --- a/dasharo-compatibility/esp-scanning.robot +++ b/dasharo-compatibility/esp-scanning.robot @@ -12,7 +12,6 @@ Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -# Library ../lib/QemuMonitor.py /tmp/qmp-socket Suite Setup Setup Esp Scanning Suite Suite Teardown Teardown Esp Scanning Suite @@ -35,9 +34,7 @@ ESP003.001 ESP Scan ignores OSes on removable media ... partitions of removable media are ignored by the scan and aren't ... listed in boot menu, except for DTS. Power On - Download ISO And Mount As USB ${DL_CACHE_DIR}/CorePlus-current.iso - ... ${TINYCORE_URL} - ... 5c0c5c7c835070f0adcaeafad540252e9dd2935c02e57de6112fb92fb5d6f9c5 + Mount USB Disk Image ${TEST_DATA_DIR}/iso/TinyCore-15.0.iso required=${FALSE} Power On ${boot_menu}= Enter Boot Menu Tianocore And Return Construction Should Not Contain Match ${boot_menu} *CorePlus* @@ -62,10 +59,7 @@ ESP005.001 ESP Scan detects Dasharo Tools Suite ... Dasharo Tools Suite boot media and creates a corresponding boot ... menu entry. Power On - Download ISO And Mount As USB - ... ${DL_CACHE_DIR}/dts-base-i${DL_CACHE_DIR}/mage-v1.2.8.iso - ... ${DTS_URL} - ... f42b59633dbcc16ecbd7c98a880c582c5235c22626d7204202c922f3a7fa231b + Mount USB Disk Image ${TEST_DATA_DIR}/dts/dts-base-image-v2.1.3.wic Power On ${boot_menu}= Enter Boot Menu Tianocore And Return Construction Should Contain Match ${boot_menu} Dasharo Tools Suite (on * @@ -97,7 +91,6 @@ Setup Esp Scanning Suite Prepare Test Suite Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} ESP scanning tests not supported Skip If not ${ESP_SCANNING_SUPPORT} ESP scanning tests not supported - Prepare Required Files For Qemu Prepare EFI Partition With System Files Teardown Esp Scanning Suite diff --git a/dasharo-compatibility/firmware-bulding-locally.robot b/dasharo-compatibility/firmware-bulding-locally.robot index 1bcf5bf3c7..01a0e3cd46 100644 --- a/dasharo-compatibility/firmware-bulding-locally.robot +++ b/dasharo-compatibility/firmware-bulding-locally.robot @@ -43,7 +43,7 @@ FLB002.001 Flash locally built firmware (Ubuntu) Power On Login To Linux Switch To Root User - Get Flashrom From Cloud + Get Flashrom Write Into Terminal flashrom -p internal -w ../coreboot/build/coreboot.rom --ifd -i bios ${flash_result}= Read From Terminal Until Prompt IF "Warning: Chip content is identical to the requested image." in """${flash_result}""" diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 8218eb9972..cccb2633e2 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -145,10 +145,9 @@ Prepare USB HID Test Suite ELSE Set Suite Variable $HAS_KEYBOARD ${FALSE} END - ${conf}= Get Current CONFIG ${CONFIG_LIST} IF "${DUT_CONNECTION_METHOD}" == "pikvm" - Upload And Mount DTS Flash Iso + Mount USB Disk Image ${TEST_DATA_DIR}/secure-boot/sb_test_data.img END # Assume for now that we always have USB storage attached. In fact, all of diff --git a/dasharo-security/bios-lock.robot b/dasharo-security/bios-lock.robot index 824e226d6b..0362e24fb5 100644 --- a/dasharo-security/bios-lock.robot +++ b/dasharo-security/bios-lock.robot @@ -37,7 +37,7 @@ BLS001.001 BIOS lock support (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Flashrom From Cloud + Get Flashrom ${out_flashrom}= Execute Command In Terminal flashrom -p internal ${pr0}= Get Lines Matching Regexp ${out_flashrom} ^PR0: Warning: 0x.{8}-0x.{8} is read-only.$ Should Not Be Empty ${pr0} @@ -52,7 +52,7 @@ BLS002.001 BIOS lock support deactivation (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Flashrom From Cloud + Get Flashrom ${out_flashrom}= Execute Command In Terminal flashrom -p internal ${pr0}= Get Lines Matching Regexp ${out_flashrom} ^PR0: Warning: 0x.{8}-0x.{8} is read-only.$ Should Be Empty ${pr0} diff --git a/dasharo-security/early-boot-dma-protection.robot b/dasharo-security/early-boot-dma-protection.robot index 436551f41b..4a35e4220a 100644 --- a/dasharo-security/early-boot-dma-protection.robot +++ b/dasharo-security/early-boot-dma-protection.robot @@ -42,7 +42,7 @@ EDP001.001 Enable early Boot DMA Protection support Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Cbmem From Cloud + Get Cbmem ${cbmem_output}= Execute Command In Terminal cbmem -1 | grep --color=never DMA Should Contain ${cbmem_output} Successfully enabled VT-d PMR DMA protection @@ -61,6 +61,6 @@ EDP002.001 Disable early Boot DMA Protection support Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Cbmem From Cloud + Get Cbmem ${cbmem_output}= Execute Command In Terminal cbmem -1 | grep --color=never DMA Should Not Contain ${cbmem_output} Successfully enabled VT-d PMR DMA protection diff --git a/dasharo-security/secure-boot.robot b/dasharo-security/secure-boot.robot index 8a89602140..d77dee4cfe 100644 --- a/dasharo-security/secure-boot.robot +++ b/dasharo-security/secure-boot.robot @@ -25,6 +25,8 @@ Suite Setup Run Keywords ... AND ... Skip If not ${SECURE_BOOT_SUPPORT} Secure Boot is not supported ... AND +... Mount USB Disk Image ${TEST_DATA_DIR}/secure-boot/sb_test_data.img +... AND ... Restore Secure Boot Defaults Suite Teardown Run Keywords ... Run Keyword If ${SECURE_BOOT_SUPPORT} and ${TESTS_IN_FIRMWARE_SUPPORT} Set Secure Boot State To Disabled @@ -131,7 +133,6 @@ SBO003.001 Attempt to boot file with the correct key from Shell (firmware) ... a signed file with a correct key. Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} SBO003.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SBO003.001 not supported - Download ISO And Mount As USB ${DL_CACHE_DIR}/${GOOD_KEYS_NAME} ${GOOD_KEYS_URL} ${GOOD_KEYS_SHA256} Power On ${sb_menu}= Enter Secure Boot Menu And Return Construction Enable Secure Boot ${sb_menu} @@ -141,14 +142,14 @@ SBO003.001 Attempt to boot file with the correct key from Shell (firmware) ${sb_menu}= Get Secure Boot Menu Construction ${advanced_menu}= Enter Advanced Secure Boot Keys Management And Return Construction ${sb_menu} Enter Enroll DB Signature Using File In DB Options ${advanced_menu} - Enter Volume In File Explorer GOOD_KEYS - Select File In File Explorer DB.cer + Enter Volume In File Explorer SB_TEST + Select File In File Explorer good_keys_DB.cer # Save Changes And Reset # Changes to Secure Boot menu take action immediately, so we can just reset Tianocore Reset System Enter UEFI Shell - ${out}= Execute File In UEFI Shell hello-valid-keys.efi + ${out}= Execute File In UEFI Shell good_keys_hello.efi Should Contain ${out} Hello, world! SBO004.001 Attempt to boot file without the key from Shell (firmware) @@ -156,7 +157,6 @@ SBO004.001 Attempt to boot file without the key from Shell (firmware) ... without a key. Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} SBO004.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SBO004.001 not supported - Download ISO And Mount As USB ${DL_CACHE_DIR}/${NOT_SIGNED_NAME} ${NOT_SIGNED_URL} ${NOT_SIGNED_SHA256} # 1. Make sure that SB is enabled Power On ${sb_menu}= Enter Secure Boot Menu And Return Construction @@ -165,7 +165,7 @@ SBO004.001 Attempt to boot file without the key from Shell (firmware) # Changes to Secure Boot menu takes action immediately, so we can just reset Tianocore Reset System Enter UEFI Shell - ${out}= Execute File In UEFI Shell hello.efi + ${out}= Execute File In UEFI Shell not_signed_hello.efi Should Contain ${out} Access Denied SBO005.001 Attempt to boot file with the wrong-signed key from Shell (firmware) @@ -173,7 +173,6 @@ SBO005.001 Attempt to boot file with the wrong-signed key from Shell (firmware) ... a signed file with a wrong-signed key. Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} SBO005.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SBO005.001 not supported - Download ISO And Mount As USB ${DL_CACHE_DIR}/${BAD_KEYS_NAME} ${BAD_KEYS_URL} ${BAD_KEYS_SHA256} # 1. Make sure that SB is enabled Power On ${sb_menu}= Enter Secure Boot Menu And Return Construction @@ -182,7 +181,7 @@ SBO005.001 Attempt to boot file with the wrong-signed key from Shell (firmware) # Changes to Secure Boot menu takes action immediately, so we can just reset Tianocore Reset System Enter UEFI Shell - ${out}= Execute File In UEFI Shell hello-bad-keys.efi + ${out}= Execute File In UEFI Shell bad_keys_hello.efi Should Contain ${out} Access Denied SBO006.001 Reset Secure Boot Keys option availability (firmware) @@ -206,7 +205,6 @@ SBO007.001 Attempt to boot the file after restoring keys to default (firmware) ... removes any custom added certificates. Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} SBO007.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SBO007.001 not supported - Download ISO And Mount As USB ${DL_CACHE_DIR}/${GOOD_KEYS_NAME} ${GOOD_KEYS_URL} ${GOOD_KEYS_SHA256} Power On ${sb_menu}= Enter Secure Boot Menu And Return Construction Enable Secure Boot ${sb_menu} @@ -217,14 +215,14 @@ SBO007.001 Attempt to boot the file after restoring keys to default (firmware) ${sb_menu}= Get Secure Boot Menu Construction ${advanced_menu}= Enter Advanced Secure Boot Keys Management And Return Construction ${sb_menu} Enter Enroll DB Signature Using File In DB Options ${advanced_menu} - Enter Volume In File Explorer GOOD_KEYS - Select File In File Explorer DB.cer + Enter Volume In File Explorer SB_TEST + Select File In File Explorer good_keys_DB.cer # Save Changes And Reset # Changes to Secure Boot menu take action immediately, so we can just reset Tianocore Reset System Enter UEFI Shell - ${out}= Execute File In UEFI Shell hello-valid-keys.efi + ${out}= Execute File In UEFI Shell good_keys_hello.efi Should Contain ${out} Hello, world! Power On @@ -236,7 +234,7 @@ SBO007.001 Attempt to boot the file after restoring keys to default (firmware) Tianocore Reset System Enter UEFI Shell - ${out}= Execute File In UEFI Shell hello-valid-keys.efi + ${out}= Execute File In UEFI Shell good_keys_hello.efi Should Contain ${out} Access Denied SBO008.001 Attempt to enroll the key in the incorrect format (firmware) @@ -244,7 +242,6 @@ SBO008.001 Attempt to enroll the key in the incorrect format (firmware) ... a certificate in the wrong file format. Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} SBO008.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SBO008.001 not supported - Download ISO And Mount As USB ${DL_CACHE_DIR}/${BAD_FORMAT_NAME} ${BAD_FORMAT_URL} ${BAD_FORMAT_SHA256} # 1. Make sure that SB is enabled Power On ${sb_menu}= Enter Secure Boot Menu And Return Construction @@ -254,8 +251,8 @@ SBO008.001 Attempt to enroll the key in the incorrect format (firmware) ${sb_menu}= Get Secure Boot Menu Construction ${advanced_menu}= Enter Advanced Secure Boot Keys Management And Return Construction ${sb_menu} Enter Enroll DB Signature Using File In DB Options ${advanced_menu} - Enter Volume In File Explorer BAD_FORMAT - Select File In File Explorer DB.txt + Enter Volume In File Explorer SB_TEST + Select File In File Explorer bad_format_DB.txt Read From Terminal Until ERROR: Unsupported file type! @@ -266,23 +263,3 @@ Set Secure Boot State To Disabled Disable Secure Boot ${sb_menu} # Changes to Secure Boot menu take action immediately, so we can just reset Tianocore Reset System - -Prepare Test Files - IF "${MANUFACTURER}" == "QEMU" - Download To Host Cache - ... ${GOOD_KEYS_NAME} - ... ${GOOD_KEYS_URL} - ... ${GOOD_KEYS_SHA256} - Download To Host Cache - ... ${NOT_SIGNED_NAME} - ... ${NOT_SIGNED_URL} - ... ${NOT_SIGNED_SHA256} - Download To Host Cache - ... ${BAD_KEYS_NAME} - ... ${BAD_KEYS_URL} - ... ${BAD_KEYS_SHA256} - Download To Host Cache - ... ${BAD_FORMAT_NAME} - ... ${BAD_FORMAT_URL} - ... ${BAD_FORMAT_SHA256} - END diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index f4cbd89b36..bf2fc03934 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -93,7 +93,7 @@ TPM003.001 Check TPM Physical Presence Interface (firmware) ... with cbmem within Ubuntu Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.001 not supported Prepare TPM Test On Ubuntu - Get Cbmem From Cloud + Get Cbmem ${out}= Execute Command In Terminal cbmem -1 | grep PPI Should Contain ${out} PPI: Pending OS request Should Contain ${out} PPI: OS response @@ -136,4 +136,5 @@ Prepare TPM Test On Ubuntu Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Get Cbmem Verify Presence Of TPM Via Sysfs diff --git a/dasharo-security/verified-boot.robot b/dasharo-security/verified-boot.robot index e94c19d709..32d4ce5e15 100644 --- a/dasharo-security/verified-boot.robot +++ b/dasharo-security/verified-boot.robot @@ -266,7 +266,7 @@ Prepare Tools, Keys And Binaries Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Coreboot Tools From Cloud + Get Coreboot Tools Install Docker Packages Generate Verified Boot Keys Resign Existing Firmware Image With Generated Keys diff --git a/dasharo-stability/capsule-update.robot b/dasharo-stability/capsule-update.robot index 926a839ba2..0823cd9656 100644 --- a/dasharo-stability/capsule-update.robot +++ b/dasharo-stability/capsule-update.robot @@ -429,12 +429,7 @@ Prepare For Logo Persistence Test Run cp ${FW_FILE} dcu/coreboot.rom IF ${CUSTOM_LOGO_SUPPORT} == ${TRUE} - Download To Host Cache - ... logo.bmp - ... https://cloud.3mdeb.com/index.php/s/rsjCdz4wSNesLio/download - ... 6e5a6722955e4f78d947654630f27ff833703fbc04776ffed963c96617f6bb2a - ${local_path}= Join Path ${DL_CACHE_DIR} logo.bmp - Run cp ${local_path} dcu/logo.bmp + Run cp ${TEST_DATA_DIR}/dcu/logo.bmp ${result}= Run Process bash -c cd ./dcu; ./dcuc logo ./coreboot.rom -l ./logo.bmp Log ${result.stdout} Log ${result.stderr} diff --git a/keywords.robot b/keywords.robot index 688fb3539a..b075f6289c 100644 --- a/keywords.robot +++ b/keywords.robot @@ -1,24 +1,22 @@ *** Settings *** -Library Collections -Library OperatingSystem -Resource lib/bios/menus.robot -Resource lib/secure-boot-lib.robot -Resource lib/usb-hid-msc-lib.robot -Resource lib/dts-lib.robot -Resource lib/terminal.robot -Resource lib/esp-scanning-lib.robot -Resource lib/dl-cache.robot -Resource lib/dmidecode-lib.robot -Resource lib/docks.robot -Resource lib/flash.robot -Resource lib/self-tests.robot -Resource lib/sleep-lib.robot -Resource lib/CPU-performance-lib.robot -Resource lib/framework.robot -Resource lib/me.robot -Resource lib/network.robot -Resource lib/options/options.robot -Resource keys.robot +Library Collections +Library OperatingSystem +Resource lib/bios/menus.robot +Resource lib/secure-boot-lib.robot +Resource lib/usb-hid-msc-lib.robot +Resource lib/dts-lib.robot +Resource lib/terminal.robot +Resource lib/esp-scanning-lib.robot +Resource lib/dmidecode-lib.robot +Resource lib/docks.robot +Resource lib/flash.robot +Resource lib/self-tests.robot +Resource lib/sleep-lib.robot +Resource lib/CPU-performance-lib.robot +Resource lib/framework.robot +Resource lib/me.robot +Resource lib/network.robot +Variables platform-configs/fan-curve-config.yaml *** Keywords *** @@ -1299,39 +1297,39 @@ Refresh Serial Screen In BIOS Editable Settings Menu Press Key N Times 1 ${F10} Press Key N Times 1 ${ESC} -Get Coreboot Tools From Cloud - [Documentation] Downloads required coreboot tools from cloud - Get Cbmem From Cloud - Get Flashrom From Cloud - Get Cbfstool From Cloud +Get Coreboot Tools + [Documentation] Set up required coreboot tools + Get Cbmem + Get Flashrom + Get Cbfstool -Get Cbmem From Cloud - [Documentation] Download cbmem from the cloud. +Get Cbmem + [Documentation] Set up cbmem on DUT. ${cbmem_path}= Set Variable /usr/local/bin/cbmem ${out_sha256sum}= Execute Command In Terminal sha256sum ${cbmem_path} ${sha256}= Set Variable ${out_sha256sum.split()}[0] IF '${sha256}' != '169c5a5a63699cb37cf08d1eff83e59f146ffa98cf283145f27adecc081ac3f6' - Download File https://cloud.3mdeb.com/index.php/s/C6LJMi4bWz3wzR9/download ${cbmem_path} + Send File To DUT ${TEST_DATA_DIR}/coreboot-tools/cbmem ${cbmem_path} Execute Command In Terminal chmod 777 ${cbmem_path} END -Get Flashrom From Cloud - [Documentation] Download flashrom from the cloud. +Get Flashrom + [Documentation] Set up flashrom on DUT. ${flashrom_path}= Set Variable /usr/local/bin/flashrom ${out_sha256sum}= Execute Command In Terminal sha256sum ${flashrom_path} ${sha256}= Set Variable ${out_sha256sum.split()}[0] IF '${sha256}' != '8e57fee6578dd31684da7f1afd6f5e5b1d964bb6db52b3a9ec038a7292802ae9' - Download File https://cloud.3mdeb.com/index.php/s/fsPNM8SpDjATMrW/download ${flashrom_path} + Send File To DUT ${TEST_DATA_DIR}/coreboot-tools/flashrom ${flashrom_path} Execute Command In Terminal chmod 777 ${flashrom_path} END -Get Cbfstool From Cloud - [Documentation] Download cbfstool from the cloud +Get Cbfstool + [Documentation] Set up cbfstool on DUT. ${cbfstool_path}= Set Variable /usr/local/bin/cbfstool ${out_sha256sum}= Execute Command In Terminal sha256sum ${cbfstool_path} ${sha256}= Set Variable ${out_sha256sum.split()}[0] IF '${sha256}' != 'e090051e71980620e6f2d2876532eb6fcf4346593260c0c1349a5be51181fb4f' - Download File https://cloud.3mdeb.com/index.php/s/ScCf8XFLZYWBE25/download ${cbfstool_path} + Send File To DUT ${TEST_DATA_DIR}/coreboot-tools/cbfstool ${cbfstool_path} Execute Command In Terminal chmod 777 ${cbfstool_path} END diff --git a/lib/dl-cache.robot b/lib/dl-cache.robot deleted file mode 100644 index 651e546cdd..0000000000 --- a/lib/dl-cache.robot +++ /dev/null @@ -1,33 +0,0 @@ -*** Settings *** -Documentation Collection of keywords for downloading local files - -Resource ../keywords.robot - - -*** Variables *** -${DL_CACHE_DIR}= ${CURDIR}/../dl-cache - - -*** Keywords *** -Download To Host Cache - [Arguments] ${local_file_name} ${url} ${sha256sum} - ${local_path}= Join Path ${DL_CACHE_DIR} ${local_file_name} - ${file_exists}= Run Keyword And Return Status - ... Should Exist ${local_path} - IF ${file_exists} - ${calculated_sha256sum}= Calculate Sha256 Sum ${local_path} - IF '${sha256sum}' == '${calculated_sha256sum}' - Log File ${local_file_name} already exists in dl-cache - RETURN - END - END - Log Downloading ${url} ... - ${wget_rc}= Run And Return RC wget -O ${local_path} ${url} - IF ${wget_rc} != 0 Fail Download failed with exit code: ${wget_rc} - -Calculate SHA256 Sum - [Arguments] ${file_path} - ${out}= Run sha256sum ${file_path} - ${out_splitted}= Split String ${out} - ${sha256sum}= Get From List ${out_splitted} 0 - RETURN ${sha256sum} diff --git a/lib/esp-scanning-lib.robot b/lib/esp-scanning-lib.robot index d32bb6f504..a585478bc7 100644 --- a/lib/esp-scanning-lib.robot +++ b/lib/esp-scanning-lib.robot @@ -5,10 +5,6 @@ Resource ../keywords.robot *** Variables *** -${TINYCORE_URL}= https://distro.ibiblio.org/tinycorelinux/14.x/x86/release/CorePlus-14.0.iso -${DTS_URL}= https://dl.3mdeb.com/open-source-firmware/DTS/v1.2.8/dts-base-image-v1.2.8.iso -${DISK_IMAGE_URL}= https://cloud.3mdeb.com/index.php/s/BwLyjHT9fRncXMY/download/image.img - # These are always installed, used in many different testing. We do not want # to remove them during the ESP scanning testing. @{SYSTEMS_ALWAYS_INSTALLED}= Windows Boot Manager (on @@ -34,27 +30,19 @@ Prepare EFI Partition With System Files Power On IF "${MANUFACTURER}" == "QEMU" - Download To Host Cache - ... image.img - ... ${DISK_IMAGE_URL} - ... 031560742d6b337ed684cfdb90d3c5eb48f13576f4751b33095e8d1566d72e83 - Add HDD To Qemu img_name=${DL_CACHE_DIR}/image.img + Add HDD To Qemu img_name=${TEST_DATA_DIR}/esp-scanning/qemu-disk.img ELSE - IF "${DUT_CONNECTION_METHOD}" == "pikvm" - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Remove All Supported Systems From Efi - Execute Command In Terminal wget ${DISK_IMAGE_URL} -O image.img timeout=180s - Execute Command In Terminal mkdir /mnt/disk_image - Execute Command In Terminal losetup /dev/loop99 -P ./image.img - Execute Command In Terminal mount /dev/loop99p1 /mnt/disk_image - Execute Command In Terminal - ... rsync -a --ignore-existing --exclude /mnt/disk_image/EFI/Ubuntu /mnt/disk_image/EFI/Microsoft /mnt/disk_image/EFI/* /boot/efi/EFI/ - Execute Command In Terminal sync - ELSE - Skip unsupported - END + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Remove All Supported Systems From Efi + Send File To DUT ${TEST_DATA_DIR}/esp-scanning/qemu-disk.img /tmp/image.img + Execute Command In Terminal mkdir /mnt/disk_image + Execute Command In Terminal losetup /dev/loop99 -P ./image.img + Execute Command In Terminal mount /dev/loop99p1 /mnt/disk_image + Execute Command In Terminal + ... rsync -a --ignore-existing --exclude /mnt/disk_image/EFI/Ubuntu /mnt/disk_image/EFI/Microsoft /mnt/disk_image/EFI/* /boot/efi/EFI/ + Execute Command In Terminal sync END Clear Out EFI Partition @@ -67,14 +55,10 @@ Clear Out EFI Partition IF "${MANUFACTURER}" == "QEMU" Remove Drive From Qemu ELSE - IF "${DUT_CONNECTION_METHOD}" == "pikvm" - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Remove All Supported Systems From Efi - ELSE - Skip unsupported - END + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Remove All Supported Systems From Efi END Remove All Supported Systems From Efi @@ -84,19 +68,3 @@ Remove All Supported Systems From Efi FOR ${dir} IN @{dirs} Execute Command In Terminal rm -r /boot/efi/EFI/${dir} END - -Prepare Required Files For Qemu - IF "${MANUFACTURER}" == "QEMU" - Download To Host Cache - ... dts-base-image-v1.2.8.iso - ... ${DTS_URL} - ... f42b59633dbcc16ecbd7c98a880c582c5235c22626d7204202c922f3a7fa231b - Download To Host Cache - ... esp-scanning.img - ... ${DISK_IMAGE_URL} - ... a0cf9c6cc561585b375a7416a5bdb98caad4c48d22f87098844b6e294a3c0aff - Download To Host Cache - ... CorePlus-14.0.iso - ... ${TINYCORE_URL} - ... 5c0c5c7c835070f0adcaeafad540252e9dd2935c02e57de6112fb92fb5d6f9c5 - END diff --git a/lib/usb-hid-msc-lib.robot b/lib/usb-hid-msc-lib.robot index 6bfa76de2b..cbfece307d 100644 --- a/lib/usb-hid-msc-lib.robot +++ b/lib/usb-hid-msc-lib.robot @@ -19,37 +19,36 @@ Library OperatingSystem *** Keywords *** -Upload And Mount DTS Flash ISO - [Documentation] Mounts a bootable ISO as flash USB. Currently - ... only the Qubes OS ISO seems to work for the platform. +Mount USB Disk Image + [Documentation] Mounts USB disk image - either from URL or from local file. + [Arguments] ${img_source} ${upload_type}=file ${required}=${TRUE} - Upload Image To PiKVM - ... https://dl.3mdeb.com/open-source-firmware/DTS/v1.2.8/dts-base-image-v1.2.8.iso - ... dts-base-image-v1.2.8.iso - Mount Image On PiKVM dts-base-image-v1.2.8.iso + # TODO:: Move to interface approach, not IF/ELSE tree + IF "${upload_type}" == "file" + ${img_dir} ${img_name}= Split Path ${img_source} -Download ISO And Mount As USB - [Documentation] Mounts the desired ISO as USB stick, - ... either via PiKVM or Qemu - [Arguments] ${img_path} ${img_url} ${img_sha256sum} - - ${img_dir} ${img_name}= Split Path ${img_path} - - Download To Host Cache - ... ${img_name} - ... ${img_url} - ... ${img_sha256sum} - - IF "${MANUFACTURER}" == "QEMU" - Remove Drive From Qemu - Add USB To Qemu img_name=${img_path} - ELSE - IF "${DUT_CONNECTION_METHOD}" == "pikvm" - Upload Image To PiKVM ${img_url} ${img_name} + IF "${MANUFACTURER}" == "QEMU" + Remove Drive From Qemu + Add USB To Qemu img_name=${img_source} + ELSE IF "${DUT_CONNECTION_METHOD}" == "pikvm" + Upload Image To PiKVM ${img_source} ${img_name} ${upload_type} Mount Image On PiKVM ${img_name} ELSE - Skip unsupported + # For setups with no real ability to mount USB Disk, we may decide whether we assume that certain USB Disk is prepared beforehand, or we skip the test. + Log To Console Mounting USB Disk Image at runtime is not supported on this platform. + IF ${required} + Log To Console + ... Image marked as required. Make sure that USB drive with image: ${img_source} is already prepared and connected to the DUT. + ELSE + Skip Image not marked as required, skipping test case. + END END + ELSE IF "${upload_type}" == "url" + Fail + ... "upload_type=url argument for Mount USB Disk Image is not implemented right now. + ... We prefer to store all test data in osfv-test-data repo instead of downloading them at runtime in tests." + ELSE + Fail "Unsupported upload_type argument for Mount USB Disk Image" END Check USB Stick Detection In Edk2 diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index 72d660de56..ad71da3cd7 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -57,6 +57,6 @@ Flash Protectli VP2420 Internal Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Flashrom From Cloud + Get Flashrom Send File To DUT ${FW_FILE} /tmp/dasharo.rom Flash Via Internal Programmer /tmp/dasharo.rom "bios" diff --git a/scripts/refactoring-state.sh b/scripts/refactoring-state.sh index a0d505cc94..0448db1d39 100755 --- a/scripts/refactoring-state.sh +++ b/scripts/refactoring-state.sh @@ -44,6 +44,14 @@ kwds_to_remove=( "Rte Relay" "Rte Relay Set" "Coldboot Via RTE Relay" +"Download To Host Cache" +"Download ISO And Mount As USB" +"Upload And Mount DTS Flash ISO" +"Prepare Required Files For Qemu" +"Get Coreboot Tools From Cloud" +"Get Cbmem From Cloud" +"Get Flashrom From Cloud" +"Get Cbfstool From Cloud" ) echo "Keywords that should not be used, but are still used:" @@ -52,3 +60,26 @@ find . -type f -name "*.robot" | while IFS= read -r file; do grep -i -n -H "$kwd" "$file" done done + +vars_to_remove=( +"PIKVM_IP" +"DL_CACHE_DIR" +) + +echo "Global variables that should not be used, but are still used:" +find . -type f -name "*.robot" | while IFS= read -r file; do + for var in "${vars_to_remove[@]}"; do + grep -n -H "$var" "$file" + done +done + +resources_to_remove=( +"dl-cache.robot" +) + +echo "Resources that should not be used, but are still used:" +find . -type f -name "*.robot" | while IFS= read -r file; do + for resource in "${resources_to_remove[@]}"; do + grep -n -H "$resource" "$file" + done +done diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index 975289ee4d..727a9deca3 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -99,7 +99,7 @@ BPS006.002 Internal flashing Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Flashrom From Cloud + Get Flashrom ${out_flashrom}= Execute Command In Terminal flashrom -p internal Should Contain ${out_flashrom} Found chipset diff --git a/variables.robot b/variables.robot index a6c5c29abd..b0bcd8b6c3 100644 --- a/variables.robot +++ b/variables.robot @@ -9,7 +9,7 @@ ${DEBIAN_STABLE_VER}= 4.14.y ${TEARDOWN}= no ${SNIPEIT}= yes -${DL_CACHE_DIR}= ${CURDIR}/dl-cache +${TEST_DATA_DIR}= ${CURDIR}/osfv-test-data ${RE_FRAME_START}= ^.*/-{3,}\\\\.*$ ${RE_FRAME_END}= ^.*\\\\-{3,}/.*$ From 7e08a4d76b081a050e366bbfdd1ab4411a568fac Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Mon, 20 Jan 2025 20:12:30 +0100 Subject: [PATCH 170/416] lib/esp-scanning-lib.robot: update .img name Signed-off-by: Maciej Pijanowski --- lib/esp-scanning-lib.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/esp-scanning-lib.robot b/lib/esp-scanning-lib.robot index a585478bc7..6eaf138d40 100644 --- a/lib/esp-scanning-lib.robot +++ b/lib/esp-scanning-lib.robot @@ -30,13 +30,13 @@ Prepare EFI Partition With System Files Power On IF "${MANUFACTURER}" == "QEMU" - Add HDD To Qemu img_name=${TEST_DATA_DIR}/esp-scanning/qemu-disk.img + Add HDD To Qemu img_name=${TEST_DATA_DIR}/esp-scanning/esp-scanning-disk.img ELSE Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Remove All Supported Systems From Efi - Send File To DUT ${TEST_DATA_DIR}/esp-scanning/qemu-disk.img /tmp/image.img + Send File To DUT ${TEST_DATA_DIR}/esp-scanning/esp-scanning-disk.img /tmp/image.img Execute Command In Terminal mkdir /mnt/disk_image Execute Command In Terminal losetup /dev/loop99 -P ./image.img Execute Command In Terminal mount /dev/loop99p1 /mnt/disk_image From f9a528f1f413f333d81b798a868e1037b472d715 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Wed, 12 Mar 2025 18:00:35 +0100 Subject: [PATCH 171/416] osfv-test-data: add submodule Signed-off-by: Maciej Pijanowski --- .gitmodules | 3 +++ osfv-test-data | 1 + 2 files changed, 4 insertions(+) create mode 160000 osfv-test-data diff --git a/.gitmodules b/.gitmodules index b22a56198c..c344bbd414 100644 --- a/.gitmodules +++ b/.gitmodules @@ -17,3 +17,6 @@ [submodule "dcu"] path = dcu url = https://github.com/Dasharo/dcu.git +[submodule "osfv-test-data"] + path = osfv-test-data + url = https://github.com/Dasharo/osfv-test-data.git diff --git a/osfv-test-data b/osfv-test-data new file mode 160000 index 0000000000..18d809f79a --- /dev/null +++ b/osfv-test-data @@ -0,0 +1 @@ +Subproject commit 18d809f79ad30c9d7e142c46ee6b92f0e0decc2e From b4ab16cf08e6f2e4997b663e24c9de5f0f5dfa73 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Wed, 12 Mar 2025 18:36:30 +0100 Subject: [PATCH 172/416] lib/esp-scanning-lib.robot: fix preparation commands Signed-off-by: Maciej Pijanowski --- keywords.robot | 35 +++++++++++++++++------------------ lib/esp-scanning-lib.robot | 2 +- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/keywords.robot b/keywords.robot index b075f6289c..4b7744eac7 100644 --- a/keywords.robot +++ b/keywords.robot @@ -1,22 +1,21 @@ *** Settings *** -Library Collections -Library OperatingSystem -Resource lib/bios/menus.robot -Resource lib/secure-boot-lib.robot -Resource lib/usb-hid-msc-lib.robot -Resource lib/dts-lib.robot -Resource lib/terminal.robot -Resource lib/esp-scanning-lib.robot -Resource lib/dmidecode-lib.robot -Resource lib/docks.robot -Resource lib/flash.robot -Resource lib/self-tests.robot -Resource lib/sleep-lib.robot -Resource lib/CPU-performance-lib.robot -Resource lib/framework.robot -Resource lib/me.robot -Resource lib/network.robot -Variables platform-configs/fan-curve-config.yaml +Library Collections +Library OperatingSystem +Resource lib/bios/menus.robot +Resource lib/secure-boot-lib.robot +Resource lib/usb-hid-msc-lib.robot +Resource lib/dts-lib.robot +Resource lib/terminal.robot +Resource lib/esp-scanning-lib.robot +Resource lib/dmidecode-lib.robot +Resource lib/docks.robot +Resource lib/flash.robot +Resource lib/self-tests.robot +Resource lib/sleep-lib.robot +Resource lib/CPU-performance-lib.robot +Resource lib/framework.robot +Resource lib/me.robot +Resource lib/network.robot *** Keywords *** diff --git a/lib/esp-scanning-lib.robot b/lib/esp-scanning-lib.robot index 6eaf138d40..fb5a015357 100644 --- a/lib/esp-scanning-lib.robot +++ b/lib/esp-scanning-lib.robot @@ -38,7 +38,7 @@ Prepare EFI Partition With System Files Remove All Supported Systems From Efi Send File To DUT ${TEST_DATA_DIR}/esp-scanning/esp-scanning-disk.img /tmp/image.img Execute Command In Terminal mkdir /mnt/disk_image - Execute Command In Terminal losetup /dev/loop99 -P ./image.img + Execute Command In Terminal losetup /dev/loop99 -P /tmp/image.img Execute Command In Terminal mount /dev/loop99p1 /mnt/disk_image Execute Command In Terminal ... rsync -a --ignore-existing --exclude /mnt/disk_image/EFI/Ubuntu /mnt/disk_image/EFI/Microsoft /mnt/disk_image/EFI/* /boot/efi/EFI/ From 20d17de7bbdf581d0ede0fcb57c10b1e7d1e513a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Tue, 11 Mar 2025 13:50:27 +0100 Subject: [PATCH 173/416] dasharo-stability/capsule-update.robot: fix cp errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- dasharo-stability/capsule-update.robot | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/dasharo-stability/capsule-update.robot b/dasharo-stability/capsule-update.robot index 0823cd9656..3736161a9e 100644 --- a/dasharo-stability/capsule-update.robot +++ b/dasharo-stability/capsule-update.robot @@ -424,12 +424,10 @@ Display Preparation Instructions Prepare For Logo Persistence Test Log To Console PREPARE: Logo Persistence Test - Run rm -rf dcu - Run cp ${FW_FILE} dcu/coreboot.rom IF ${CUSTOM_LOGO_SUPPORT} == ${TRUE} - Run cp ${TEST_DATA_DIR}/dcu/logo.bmp + Run cp ${TEST_DATA_DIR}/dcu/logo.bmp dcu/logo.bmp ${result}= Run Process bash -c cd ./dcu; ./dcuc logo ./coreboot.rom -l ./logo.bmp Log ${result.stdout} Log ${result.stderr} From b496181f60c00307c9299e5cd54b1108fd6abaf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Mon, 10 Mar 2025 15:25:28 +0100 Subject: [PATCH 174/416] lib/: remove remaining Get Cbmem From Cloud MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- lib/cbmem.robot | 2 +- lib/tpm.robot | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/cbmem.robot b/lib/cbmem.robot index 7c4b16a25b..0dc4276ad0 100644 --- a/lib/cbmem.robot +++ b/lib/cbmem.robot @@ -8,7 +8,7 @@ Resource ../keywords.robot Get Boot Time From Cbmem [Documentation] Calculates boot time based on cbmem timestamps # fix for LT1000 and protectli platforms (output without tabs) - Get Cbmem From Cloud + Get Cbmem ${out_cbmem}= Execute Command In Terminal cbmem -T Should Not Contain ... ${out_cbmem} diff --git a/lib/tpm.robot b/lib/tpm.robot index 9152dce7a6..f8b2f6d009 100644 --- a/lib/tpm.robot +++ b/lib/tpm.robot @@ -78,13 +78,13 @@ Validate Expected TPM Version Via Sysfs Validate Expected TPM Chip Via Cbmem Console Log [Documentation] Check that correct TPM chip is found while FW boots - Get Cbmem From Cloud + Get Cbmem ${tpm_chip_found}= Execute Command In Terminal cbmem -1 | grep -i "Found TPM" Should Contain ${tpm_chip_found} ${TPM_EXPECTED_CHIP} Validate Expected TPM Version Via Cbmem TPM Eventlog [Documentation] Check if appropriate log is created by FW - Get Cbmem From Cloud + Get Cbmem ${out}= Execute Command In Terminal cbmem -L IF '${TPM_SUPPORTED_VERSION}' == '1' Should Contain ${out} TCPA log From 2dc6b35f33e2ece42f5001df291d1dcc133a6a05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Mon, 10 Mar 2025 10:43:16 +0100 Subject: [PATCH 175/416] lib/terminal.robot: workaround for string truncation in UEFI shell MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- lib/terminal.robot | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/lib/terminal.robot b/lib/terminal.robot index 1ea6d2d882..1973aa2f0c 100644 --- a/lib/terminal.robot +++ b/lib/terminal.robot @@ -303,8 +303,10 @@ Execute Command In Terminal Execute UEFI Shell Command [Documentation] - ... Executes a command in UEFI Shell. Adds some delays to be more - ... reliable in the UEFI Shell. + ... Executes a command in UEFI Shell. For some reason, text longer than + ... 16 chars would repeatedly get truncated, regardless of delay + ... compensation. So, this keywords splits the input into chunks of max. + ... 15 characters. ... ... === Requirements === ... - The UEFI shell has to be entered first. @@ -324,14 +326,29 @@ Execute UEFI Shell Command ... passes. ... ... === Effects === - ... The ``${command}`` is written to the terminal and the keyword waits + ... The ``${command}`` is written to the terminal in chunks and the keyword waits ... until the execution ends or ``${timeout}`` passes. - [Arguments] ${command} ${timeout}=30s ${uefi_shell_input_latency}=10 + [Arguments] ${command} ${timeout}=30s ${uefi_shell_input_latency}=40 Set DUT Response Timeout ${timeout} ${length}= Get Length ${command} ${input_delay}= Evaluate ${length} * ${uefi_shell_input_latency} - Write Bare Into Terminal ${command} - Sleep ${input_delay}ms + + # Split command into chunks of max 15 characters + ${chunks}= Create List + ${index}= Convert To Integer 0 + WHILE ${index} < ${length} + ${end_index}= Evaluate ${index} + 15 + ${chunk}= Evaluate "${command}"[${index}:${end_index}] + Append To List ${chunks} ${chunk} + ${index}= Set Variable ${end_index} + END + + # Write each chunk separately + FOR ${chunk} IN @{chunks} + Write Bare Into Terminal ${chunk} + Sleep ${uefi_shell_input_latency}ms + END + Press Enter ${output}= Read From Terminal Until Prompt RETURN ${output} From 83a67f34fbca191e898bbfcf89b1e4a9b1c2c53c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 6 Mar 2025 17:17:27 +0100 Subject: [PATCH 176/416] lib/dts-lib.robot: fix DTS entry string MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- lib/dts-lib.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/dts-lib.robot b/lib/dts-lib.robot index 64204981e2..7159efaff6 100644 --- a/lib/dts-lib.robot +++ b/lib/dts-lib.robot @@ -27,8 +27,8 @@ Boot Dasharo Tools Suite Via IPXE Shell # 4) Try to boot via the link: Write Bare Into Terminal chain ${dts_chain_link}\n Read From Terminal Until ${dts_chain_link}... - Read From Terminal Until ok Set DUT Response Timeout 5m + Read From Terminal Until Enter an option: Boot Dasharo Tools Suite Via IPXE Menu [Documentation] Boots DTS via option available in Dasharo iPXE menu. @@ -44,7 +44,7 @@ Boot Dasharo Tools Suite Via IPXE Menu Enter Submenu From Snapshot ${ipxe_menu} Dasharo Tools Suite Set DUT Response Timeout 5m Read From Terminal Until .cpio.gz... - Read From Terminal Until ok + Read From Terminal Until Enter an option Boot Dasharo Tools Suite [Documentation] Keyword allows to boot Dasharo Tools Suite. Takes the From 070de62936cd7f92bd2fc51df72f74557828a4e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 6 Mar 2025 16:51:38 +0100 Subject: [PATCH 177/416] pikvm-rest-api: bump revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- pikvm-rest-api | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pikvm-rest-api b/pikvm-rest-api index 529d434c1a..1a1cc579a2 160000 --- a/pikvm-rest-api +++ b/pikvm-rest-api @@ -1 +1 @@ -Subproject commit 529d434c1ac884f3cc5fa2e1a451829e95a83a0d +Subproject commit 1a1cc579a286fe82aaa2eccea69f96223712664d From 41b387956bb9f115a385c85105648c5e170bf280 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Fri, 14 Mar 2025 12:22:42 +0100 Subject: [PATCH 178/416] tree-wide: rename remaining Get From Cloud kwds Signed-off-by: Maciej Pijanowski --- dasharo-security/smm-bios-write-protection.robot | 4 ++-- lib/dcu.robot | 2 +- lib/options/options-lib_dcu.robot | 2 +- util/basic-platform-setup.robot | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dasharo-security/smm-bios-write-protection.robot b/dasharo-security/smm-bios-write-protection.robot index de28716dbb..0932f654f4 100644 --- a/dasharo-security/smm-bios-write-protection.robot +++ b/dasharo-security/smm-bios-write-protection.robot @@ -47,7 +47,7 @@ SMM001.001 SMM BIOS write protection enabling (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Flashrom From Cloud + Get Flashrom ${out_flashrom}= Execute Command In Terminal flashrom -p internal Should Contain ${out_flashrom} SMM protection is enabled @@ -71,7 +71,7 @@ SMM002.001 SMM BIOS write protection disabling (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Flashrom From Cloud + Get Flashrom ${out_flashrom}= Execute Command In Terminal flashrom -p internal Should Not Contain ${out_flashrom} SMM protection is enabled Should Not Be Empty ${out_flashrom} diff --git a/lib/dcu.robot b/lib/dcu.robot index 0d7a3c231a..611eddeec4 100644 --- a/lib/dcu.robot +++ b/lib/dcu.robot @@ -52,7 +52,7 @@ DCU Logo Set In File DCU Variable Read SMMSTORE [Documentation] Read the UEFI SMMSTORE to work on the UEFI options in it [Arguments] ${out_file} - Get Flashrom From Cloud + Get Flashrom Execute Command In Terminal flashrom -p internal -r coreboot.rom --fmap -i FMAP -i SMMSTORE &> /dev/null Execute Command In Terminal chmod 666 coreboot.rom SSHLibrary.Get File coreboot.rom ${out_file} diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index a44becf976..7575c41b3d 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -127,7 +127,7 @@ Make Sure That Flash Locks Are Disabled Power On Login To Linux Switch To Root User - Get Flashrom From Cloud + Get Flashrom ${out_flashrom}= Execute Command In Terminal flashrom -p internal Should Not Contain ${out_flashrom} read-only diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index 727a9deca3..51452d85db 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -114,7 +114,7 @@ BPS007.001 RTE CMOS clear Login To Linux Switch To Root User # Test relies entirely on coreboot console to print the CMOS invalid message - Get Cbmem From Cloud + Get Cbmem ${out}= Execute Command In Terminal ... cbmem -1 | grep -i rtc From 2e7dfac8ba26c8a92c6213c205a51892a6c52bb7 Mon Sep 17 00:00:00 2001 From: Maciej Pijanowski Date: Fri, 14 Mar 2025 12:26:25 +0100 Subject: [PATCH 179/416] tree-wide: drop remaining pikvm_comm.robot references Signed-off-by: Maciej Pijanowski --- lib/bios/menus.robot | 1 - lib/terminal.robot | 1 - scripts/refactoring-state.sh | 1 + 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index fcd92877c1..9edc590e9d 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -6,7 +6,6 @@ Library String Library ./menus.py Resource ../terminal.robot Resource ../../keys.robot -Resource ../../pikvm-rest-api/pikvm_comm.robot Resource ../../keywords.robot diff --git a/lib/terminal.robot b/lib/terminal.robot index 1973aa2f0c..c1c265943b 100644 --- a/lib/terminal.robot +++ b/lib/terminal.robot @@ -5,7 +5,6 @@ Library Collections Library String Library Telnet Library SSHLibrary -Resource ../pikvm-rest-api/pikvm_comm.robot Resource bios/menus.robot diff --git a/scripts/refactoring-state.sh b/scripts/refactoring-state.sh index 0448db1d39..83c21cce6b 100755 --- a/scripts/refactoring-state.sh +++ b/scripts/refactoring-state.sh @@ -75,6 +75,7 @@ done resources_to_remove=( "dl-cache.robot" +"pikvm_comm.robot" ) echo "Resources that should not be used, but are still used:" From f7004958257fcd392111d16ec6a5d870c58caf9c Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Tue, 11 Feb 2025 17:24:03 +0100 Subject: [PATCH 180/416] dasharo-compatibility/efibootmgr.robot: Fix suite setup/teardown Login And Remove Test Boot Entry is getting stuck while waiting for prompt, due to missing OS selection keyword. Additionally, we can implement skipping in the setup/teardown keywords, to avoid repetition. Signed-off-by: Sebastian Czapla --- dasharo-compatibility/efibootmgr.robot | 28 +++++++++++++++----------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/dasharo-compatibility/efibootmgr.robot b/dasharo-compatibility/efibootmgr.robot index 4d86c2a364..2722737541 100644 --- a/dasharo-compatibility/efibootmgr.robot +++ b/dasharo-compatibility/efibootmgr.robot @@ -16,14 +16,8 @@ Resource ../keys.robot # - document which setup/teardown keywords to use and what are they doing # - go threough them and make sure they are doing what the name suggest (not # exactly the case right now) -Suite Setup Run Keywords -... Prepare Test Suite -... AND -... Login And Remove Test Boot Entry -Suite Teardown Run Keywords -... Login And Remove Test Boot Entry -... AND -... Log Out And Close Connection +Suite Setup Efibootmgr Suite Setup +Suite Teardown Efibootmgr Suite Teardown *** Variables *** @@ -33,7 +27,6 @@ ${TEST_BOOT_ENTRY_NAME}= dasharo-compatibility_efibootmgr-custom-boot-entry *** Test Cases *** EBM001.001 Network Boot enable [Documentation] Test if enabling network boot entry works. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} EBM0001.001 not supported Skip If not ${DASHARO_NETWORKING_MENU_SUPPORT} EBM001.001 not supported ${boot_menu}= Get UEFI Boot Manager Entries @@ -48,7 +41,6 @@ EBM001.001 Network Boot enable EBM002.001 Network Boot disable [Documentation] Test if disabling network boot entry works. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} EBM002.001 not supported Skip If not ${DASHARO_NETWORKING_MENU_SUPPORT} EBM002.001 not supported ${boot_menu}= Get UEFI Boot Manager Entries @@ -63,7 +55,6 @@ EBM002.001 Network Boot disable EBM003.001 Custom Boot Order Add [Documentation] Test if adding a custom boot entry works. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} EBM003.001 not supported Skip If not ${CUSTOM_BOOT_ORDER_SUPPORT} EBM003.001 not supported Login To Linux @@ -96,7 +87,6 @@ EBM003.001 Custom Boot Order Add EBM004.001 Custom Boot Order Remove [Documentation] Test if removing a custom boot entry works. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} EBM004.001 not supported Skip If not ${CUSTOM_BOOT_ORDER_SUPPORT} EBM004.001 not supported Login To Linux @@ -121,6 +111,7 @@ EBM004.001 Custom Boot Order Remove *** Keywords *** Login And Remove Test Boot Entry Power Cycle On + Boot System Or From Connected Disk ubuntu Login To Linux Switch To Root User Remove Test Boot Entry Return Bootorder @@ -137,3 +128,16 @@ Find Test Boot Entry Id ${id}= Set Variable ... $(efibootmgr | grep "${TEST_BOOT_ENTRY_NAME}" | cut -d" " -f1 | grep -Eo '[0-9A-F]{4}' | grep -Eo '[^0][0-9A-F]{0,3}|0$') RETURN ${id} + +Efibootmgr Suite Setup + [Documentation] Load platform config, and if this suite is supported + ... remove remaining boot entries. + Prepare Test Suite + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Efi Boot Manager requires Ubuntu + Login And Remove Test Boot Entry + +Efibootmgr Suite Teardown + [Documentation] If tests are supported, remove test boot entries + ... and then close connection to DUT + IF ${TESTS_IN_UBUNTU_SUPPORT} Login And Remove Test Boot Entry + Log Out And Close Connection From 01f0ac81b6fabeb6fce79965d707c822c122a35d Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Fri, 14 Mar 2025 13:45:09 +0100 Subject: [PATCH 181/416] dasharo-compatibility/efibootmgr.robot: Update test IDs with new env IDs Signed-off-by: Sebastian Czapla --- dasharo-compatibility/efibootmgr.robot | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dasharo-compatibility/efibootmgr.robot b/dasharo-compatibility/efibootmgr.robot index 2722737541..1761fb9d9b 100644 --- a/dasharo-compatibility/efibootmgr.robot +++ b/dasharo-compatibility/efibootmgr.robot @@ -25,7 +25,7 @@ ${TEST_BOOT_ENTRY_NAME}= dasharo-compatibility_efibootmgr-custom-boot-entry *** Test Cases *** -EBM001.001 Network Boot enable +EBM001.201 Network Boot enable [Documentation] Test if enabling network boot entry works. Skip If not ${DASHARO_NETWORKING_MENU_SUPPORT} EBM001.001 not supported @@ -39,7 +39,7 @@ EBM001.001 Network Boot enable ${boot_menu}= Get UEFI Boot Manager Entries Should Contain ${boot_menu} ${IPXE_BOOT_ENTRY} -EBM002.001 Network Boot disable +EBM002.201 Network Boot disable [Documentation] Test if disabling network boot entry works. Skip If not ${DASHARO_NETWORKING_MENU_SUPPORT} EBM002.001 not supported @@ -53,7 +53,7 @@ EBM002.001 Network Boot disable ${boot_menu}= Get UEFI Boot Manager Entries Should Not Contain ${boot_menu} ${IPXE_BOOT_ENTRY} -EBM003.001 Custom Boot Order Add +EBM003.201 Custom Boot Order Add [Documentation] Test if adding a custom boot entry works. Skip If not ${CUSTOM_BOOT_ORDER_SUPPORT} EBM003.001 not supported @@ -85,7 +85,7 @@ EBM003.001 Custom Boot Order Add ${out}= Execute Command In Terminal efibootmgr Should Contain ${out} ${TEST_BOOT_ENTRY_NAME} -EBM004.001 Custom Boot Order Remove +EBM004.201 Custom Boot Order Remove [Documentation] Test if removing a custom boot entry works. Skip If not ${CUSTOM_BOOT_ORDER_SUPPORT} EBM004.001 not supported @@ -111,7 +111,7 @@ EBM004.001 Custom Boot Order Remove *** Keywords *** Login And Remove Test Boot Entry Power Cycle On - Boot System Or From Connected Disk ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Remove Test Boot Entry Return Bootorder From e09c75d721bb7f218676fc2c03e27ff107e58380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Langowski?= <105967771+PLangowski@users.noreply.github.com> Date: Wed, 19 Mar 2025 09:49:45 +0100 Subject: [PATCH 182/416] Revert "lib/dts-lib.robot: fix DTS entry string" (#733) This reverts commit 64e2dd93277e155877c6eefb842d89a2ebc79aec. --- lib/dts-lib.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/dts-lib.robot b/lib/dts-lib.robot index 7159efaff6..64204981e2 100644 --- a/lib/dts-lib.robot +++ b/lib/dts-lib.robot @@ -27,8 +27,8 @@ Boot Dasharo Tools Suite Via IPXE Shell # 4) Try to boot via the link: Write Bare Into Terminal chain ${dts_chain_link}\n Read From Terminal Until ${dts_chain_link}... + Read From Terminal Until ok Set DUT Response Timeout 5m - Read From Terminal Until Enter an option: Boot Dasharo Tools Suite Via IPXE Menu [Documentation] Boots DTS via option available in Dasharo iPXE menu. @@ -44,7 +44,7 @@ Boot Dasharo Tools Suite Via IPXE Menu Enter Submenu From Snapshot ${ipxe_menu} Dasharo Tools Suite Set DUT Response Timeout 5m Read From Terminal Until .cpio.gz... - Read From Terminal Until Enter an option + Read From Terminal Until ok Boot Dasharo Tools Suite [Documentation] Keyword allows to boot Dasharo Tools Suite. Takes the From 55bca9a998396c03d64b9905e38a94d4dcd28788 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Thu, 20 Mar 2025 16:09:57 +0100 Subject: [PATCH 183/416] variables.robot: Sync IPs with SnipeIT and add missing VP4670 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- variables.robot | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/variables.robot b/variables.robot index b0bcd8b6c3..ef77a51d1c 100644 --- a/variables.robot +++ b/variables.robot @@ -93,10 +93,10 @@ ${OS_UBUNTU}= ubuntu # Immunefi -------------------------------------------------------------------- &{RTE28}= ip=192.168.10.70 ... platform=KGPE-D16-8MB -... platform_vendor=ASUS sonoff_ip=192.168.10.125 +... platform_vendor=ASUS sonoff_ip=192.168.10.159 &{RTE29}= ip=192.168.20.15 ... platform=KGPE-D16-16MB -... platform_vendor=ASUS sonoff_ip=192.168.10.144 +... platform_vendor=ASUS # FIXME: sonoff missing # 3mdeb Protectli ----------------------------------------------------- &{RTE30}= ip=192.168.4.190 ... platform=FW6_CML @@ -135,8 +135,8 @@ ${OS_UBUNTU}= ubuntu ... platform=protectli-vp4670 sonoff_ip=192.168.10.19 ... platform_vendor=protectli # 3mdeb Protectli vp4670_2 --------------------------------------------------- -&{RTE49}= ip=192.168.10.14 -... platform=protectli-vp6650 sonoff_ip=192.168.10.144 +&{RTE49}= ip=192.168.10.74 +... platform=protectli-vp4670 sonoff_ip=192.168.10.144 ... platform_vendor=protectli # * this RTE is currently repurposed for VP6650 # 3mdeb Protectli vp4650 ----------------------------------------------------- @@ -258,7 +258,7 @@ ${OS_UBUNTU}= ubuntu ... &{RTE31} &{RTE32} &{RTE33} &{RTE34} &{RTE35} ... &{RTE36} &{RTE37} &{RTE38} &{RTE39} &{RTE40} ... &{RTE41} &{RTE42} &{RTE43} &{RTE44} &{RTE45} -... &{RTE46} &{RTE47} &{RTE48} &{RTE50} +... &{RTE46} &{RTE47} &{RTE48} &{RTE49} &{RTE50} ... &{RTE51} &{RTE52} &{RTE53} &{RTE54} &{RTE55} ... &{RTE56} &{RTE57} &{RTE58} &{RTE59} &{RTE60} ... &{RTE61} &{RTE62} &{RTE63} &{RTE64} &{RTE65} @@ -440,6 +440,7 @@ ${OS_UBUNTU}= ubuntu @{CONFIG38}= &{RTE46} &{SSD08} @{CONFIG39}= &{RTE47} @{CONFIG40}= &{RTE48} +@{CONFIG41}= &{RTE49} @{CONFIG42}= &{RTE50} &{SSD08} @{CONFIG43}= &{RTE51} &{SSD10} @{CONFIG44}= &{RTE52} &{SSD10} @@ -462,7 +463,7 @@ ${OS_UBUNTU}= ubuntu ... @{CONFIG26} @{CONFIG27} @{CONFIG28} @{CONFIG29} ... @{CONFIG30} @{CONFIG31} @{CONFIG32} @{CONFIG33} ... @{CONFIG34} @{CONFIG35} @{CONFIG36} @{CONFIG37} -... @{CONFIG38} @{CONFIG39} @{CONFIG40} +... @{CONFIG38} @{CONFIG39} @{CONFIG40} @{CONFIG41} ... @{CONFIG42} @{CONFIG43} @{CONFIG44} @{CONFIG45} ... @{CONFIG46} @{CONFIG47} @{CONFIG48} @{CONFIG49} ... @{CONFIG50} @{CONFIG51} @{CONFIG52} @{CONFIG53} From 764f2dd3766760461e4fa6bffef20e41646a59cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Thu, 13 Mar 2025 18:28:48 +0100 Subject: [PATCH 184/416] util/basic-platform-setup.robot; Remove quotes from match strings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- util/basic-platform-setup.robot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index 51452d85db..34413b9f37 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -119,8 +119,8 @@ BPS007.001 RTE CMOS clear ... cbmem -1 | grep -i rtc Should Contain Any ${out} - ... "RTC: Clear requested" - ... "rtc_failed \= 0x1" + ... RTC: Clear requested + ... rtc_failed \= 0x1 ... ignore_case=True Execute Reboot Command @@ -137,8 +137,8 @@ BPS007.001 RTE CMOS clear Should Not Contain Any ... ${out} - ... "RTC: Clear requested" - ... "rtc_failed \= 0x1" + ... RTC: Clear requested + ... rtc_failed \= 0x1 ... ignore_case=True ... msg=CMOS is invalid after reboot. Either the CMOS battery is not connected or the connection is wrong. Check DUT setup. From 358634b9dff128e97e7fd18b7ad576f7b594cceb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Thu, 13 Mar 2025 18:29:21 +0100 Subject: [PATCH 185/416] requirements.txt: Bump OSFV to switch VP3210 from sonoff to relay MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 62ee2a1be0..88c86c4584 100644 --- a/requirements.txt +++ b/requirements.txt @@ -38,7 +38,7 @@ mdurl==0.1.2 nodeenv==1.8.0 numpy==2.2.3 oauth2client==4.1.3 -osfv @ git+https://github.com/Dasharo/osfv-scripts.git@8a565cad6214b426a0d01ebdcdb5a7df3d3aef01#subdirectory=osfv_cli +osfv @ git+https://github.com/Dasharo/osfv-scripts.git@06bf5d45b21bdec86486aba8aafd5664d470beff#subdirectory=osfv_cli packaging==24.2 pandas==2.2.3 paramiko==3.4.0 From d653d12e0058d79a651f44c1393508b10f06553e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Thu, 13 Mar 2025 18:29:43 +0100 Subject: [PATCH 186/416] variables.robot: Remove sonoff IP from VP3210 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- variables.robot | 1 - 1 file changed, 1 deletion(-) diff --git a/variables.robot b/variables.robot index ef77a51d1c..cfa219a91f 100644 --- a/variables.robot +++ b/variables.robot @@ -247,7 +247,6 @@ ${OS_UBUNTU}= ubuntu &{RTE69}= ip=192.168.10.211 ... platform=protectli-vp3210 ... platform_vendor=protectli -... sonoff_ip=192.168.10.195 @{RTE_LIST}= &{RTE05} ... &{RTE06} &{RTE07} &{RTE08} &{RTE09} &{RTE10} From 29ebd6990da1304dfb3acc8d40f018f183b8fc57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Thu, 13 Mar 2025 18:30:11 +0100 Subject: [PATCH 187/416] platform-configs/protectli-vp3210.robot: Add missing information MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- platform-configs/protectli-vp3210.robot | 42 +++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/platform-configs/protectli-vp3210.robot b/platform-configs/protectli-vp3210.robot index 3fb065b56e..edefd88a88 100644 --- a/platform-configs/protectli-vp3210.robot +++ b/platform-configs/protectli-vp3210.robot @@ -3,7 +3,43 @@ Resource include/protectli-vp32xx.robot *** Variables *** -${DMIDECODE_PRODUCT_NAME}= VP3210 +${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 -@{ETH_PORTS}= 64-62-66-23-90-47 -... 64-62-66-23-90-48 +${INITIAL_CPU_FREQUENCY}= 700 +${PLATFORM_CPU_SPEED}= 3.80 +${CPU_MIN_FREQUENCY}= 700 +${CPU_MAX_FREQUENCY}= 3400 +${PLATFORM_RAM_SPEED}= 4800 +${PLATFORM_RAM_SIZE}= 16384 + +${WIFI_CARD}= Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter +${WIFI_CARD_UBUNTU}= Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter +${BLUETOOTH_CARD_UBUNTU}= Qualcomm Atheros Communications AR3012 Bluetooth 4.0 + +${E_MMC_NAME}= BJTD4R +${CPU}= Intel(R) N100 + +${DMIDECODE_MANUFACTURER}= Protectli +${DMIDECODE_SERIAL_NUMBER}= 123456789 +${DMIDECODE_PRODUCT_NAME}= VP3210 +${DMIDECODE_FAMILY}= Vault Pro +${DMIDECODE_TYPE}= Desktop +${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.0-rc9 +${DMIDECODE_RELEASE_DATE}= 02/26/2025 +${DEF_THREADS_TOTAL}= 4 +${DEF_THREADS_PER_CORE}= 1 +${DEF_CORES_PER_SOCKET}= 4 +${DEF_SOCKETS}= 1 +${DEF_ONLINE_CPU}= 0-3 +${DEVICE_AUDIO1}= Alderlake-P HDMI +${DEVICE_AUDIO2}= ${EMPTY} +${DEVICE_AUDIO1_WIN}= High Definition Audio Controller + +${DEVICE_NVME_DISK}= N/A +${CLEVO_DISK}= N/A + +@{ETH_PORTS}= 64-62-66-23-90-47 +... 64-62-66-23-90-48 + +${TPM_SUPPORTED_VERSION}= 2 +${TPM_EXPECTED_CHIP}= SLB9670 From 3fb79e4bbcd19a7f15fe2db4c3b5ee1a000d88a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Fri, 14 Mar 2025 09:59:58 +0100 Subject: [PATCH 188/416] util/basic-platform-setup.robot: Check power LED when powering on/off MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski --- util/basic-platform-setup.robot | 37 ++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index 34413b9f37..769c5c114b 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -50,20 +50,21 @@ BPS003.001 RTE Power On ${result}= Wait For Serial Output Should Be True ${result} msg=Power On keyword failed - Rte Power Off + Power Off Ex Sleep 10s Read From Terminal ${result}= Wait For Serial Output timeout=10 Should Not Be True ${result} msg=Failed to power off DUT via power button - Rte Power On + Power On Ex ${result}= Wait For Serial Output Should Be True ${result} msg=Failed to power on DUT via power button BPS004.001 RTE Reset [Documentation] Verifies if reset button can reset the DUT. Power On - Wait For Serial Output + ${result}= Wait For Serial Output + Should Be True ${result} msg=Power On keyword failed Rte Reset Read From Terminal ${result}= Wait For Serial Output @@ -173,3 +174,33 @@ Wait For Serial Output IF ${result} == ${FALSE} RETURN ${TRUE} END RETURN ${FALSE} + +# TODO: incorporate LED checks into RTE OSFV lib + +Power Off Ex + Rte Power Off + IF '${CHECK_POWER_LED_SUPPORT}' == '${TRUE}' + FOR ${i} IN RANGE 20 + ${out}= Rte Check Power Led + IF '${out}' == 'low' RETURN + Sleep 0.5s + END + IF '${out}' != 'high' + FAIL Power LED didn't light up! Setup needs manual verification, + ... or Power State After Power Failure is set incorrectly. + END + END + +Power On Ex + Rte Power On + IF '${CHECK_POWER_LED_SUPPORT}' == '${TRUE}' + FOR ${i} IN RANGE 10 + ${out}= Rte Check Power Led + IF '${out}' == 'high' RETURN + Sleep 0.5s + END + IF '${out}' != 'high' + FAIL Power LED didn't light up! Setup needs manual verification, + ... or Power State After Power Failure is set incorrectly. + END + END From 98c16112e6e52f1217c7520539bb25954e88b41c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Fri, 14 Mar 2025 10:00:43 +0100 Subject: [PATCH 189/416] keywords.robot: Reduce the loop length to check POWER LED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Checking the power LED for 50 times in 0.5s intervals would result in a delay of 25s in the worst case. Byt hat time the serial output may be lost. The platform should power on almost immediately after issuing power on. Doing 10 iterations with 0.5s intervals should be sufficient. Signed-off-by: Michał Żygowski --- keywords.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keywords.robot b/keywords.robot index 4b7744eac7..bc254d31bf 100644 --- a/keywords.robot +++ b/keywords.robot @@ -670,7 +670,7 @@ Power Cycle On IF '${DEFAULT_POWER_STATE_AFTER_FAIL}' == 'Powered Off' Rte Power On IF '${CHECK_POWER_LED_SUPPORT}' == '${TRUE}' - FOR ${i} IN RANGE 50 + FOR ${i} IN RANGE 10 ${out}= Rte Check Power Led IF '${out}' == 'high' RETURN Sleep 0.5s From 957f3324cb04397c5d897e240d4517698bba8e86 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Thu, 20 Mar 2025 14:46:43 +0100 Subject: [PATCH 190/416] protectli-vp32xx.robot & protectli-vp32xx.robot - v0.9.0-rc10 fixes Platform configuration enhancements for Protectli VP3210. Signed-off-by: Mateusz Maciejewski --- platform-configs/include/protectli-vp32xx.robot | 8 +++++--- platform-configs/protectli-vp3210.robot | 12 +++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/platform-configs/include/protectli-vp32xx.robot b/platform-configs/include/protectli-vp32xx.robot index e5d45350d5..eed8e2d1da 100644 --- a/platform-configs/include/protectli-vp32xx.robot +++ b/platform-configs/include/protectli-vp32xx.robot @@ -4,8 +4,10 @@ Resource protectli-common.robot *** Variables *** -${FLASH_SIZE}= ${16*1024*1024} +${FLASH_SIZE}= ${16*1024*1024} -${MAX_CPU_TEMP}= 82 +${MAX_CPU_TEMP}= 82 +${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 +${ETHERNET_ID}= 8086:125c -${ETHERNET_ID}= 8086:125c +${SENSORS_CONFIG_FILE}= include/sensors/default-sensors-config.yaml diff --git a/platform-configs/protectli-vp3210.robot b/platform-configs/protectli-vp3210.robot index edefd88a88..c278f1507f 100644 --- a/platform-configs/protectli-vp3210.robot +++ b/platform-configs/protectli-vp3210.robot @@ -3,16 +3,14 @@ Resource include/protectli-vp32xx.robot *** Variables *** -${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 - ${INITIAL_CPU_FREQUENCY}= 700 -${PLATFORM_CPU_SPEED}= 3.80 +${PLATFORM_CPU_SPEED}= 0.80 ${CPU_MIN_FREQUENCY}= 700 ${CPU_MAX_FREQUENCY}= 3400 ${PLATFORM_RAM_SPEED}= 4800 ${PLATFORM_RAM_SIZE}= 16384 -${WIFI_CARD}= Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter +${WIFI_CARD}= Qualcomm Atheros QCA61x4A Wireless Network Adapter ${WIFI_CARD_UBUNTU}= Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter ${BLUETOOTH_CARD_UBUNTU}= Qualcomm Atheros Communications AR3012 Bluetooth 4.0 @@ -24,8 +22,8 @@ ${DMIDECODE_SERIAL_NUMBER}= 123456789 ${DMIDECODE_PRODUCT_NAME}= VP3210 ${DMIDECODE_FAMILY}= Vault Pro ${DMIDECODE_TYPE}= Desktop -${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.0-rc9 -${DMIDECODE_RELEASE_DATE}= 02/26/2025 +${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.0-rc10 +${DMIDECODE_RELEASE_DATE}= 03/14/2025 ${DEF_THREADS_TOTAL}= 4 ${DEF_THREADS_PER_CORE}= 1 ${DEF_CORES_PER_SOCKET}= 4 @@ -35,7 +33,7 @@ ${DEVICE_AUDIO1}= Alderlake-P HDMI ${DEVICE_AUDIO2}= ${EMPTY} ${DEVICE_AUDIO1_WIN}= High Definition Audio Controller -${DEVICE_NVME_DISK}= N/A +${DEVICE_NVME_DISK}= Non-Volatile memory controller ${CLEVO_DISK}= N/A @{ETH_PORTS}= 64-62-66-23-90-47 From fccc01377cbab846b50f35f5f6e7d5c0a54b1d18 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Thu, 20 Mar 2025 15:10:39 +0100 Subject: [PATCH 191/416] dasharo-security/verified-boot.robot: FW image path generation moved. FW image path generation moved from *** Variables *** section to Prepare Tools, Keys And Binaries keyword and executed from Suite Setup, but always after OS login, to meet ENV_ID_ convention. Signed-off-by: Mateusz Maciejewski --- dasharo-security/verified-boot.robot | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/dasharo-security/verified-boot.robot b/dasharo-security/verified-boot.robot index 32d4ce5e15..f5de4aa80f 100644 --- a/dasharo-security/verified-boot.robot +++ b/dasharo-security/verified-boot.robot @@ -11,7 +11,6 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -Resource ../os-config/ubuntu-credentials.robot # TODO: # - document which setup/teardown keywords to use and what are they doing @@ -33,19 +32,12 @@ Test Setup Run Keyword ... Power On -*** Variables *** -# The fw_file_original is the fw_file received as an input to the test suite -${FW_FILE_ORIGINAL}= /home/${UBUNTU_USERNAME}/test-firmware.rom -# # The fw_file_resigned is the fw_file resigned with newly generated keys (so -# # booting it should trigger vboot recovery events) -${FW_FILE_RESIGNED}= /home/${UBUNTU_USERNAME}/test-firmware_resigned.rom - - *** Test Cases *** VBO006.002 Check whether the verstage was run [Documentation] Check whether the Verified Boot is enabled and ... functional. Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux Switch To Root User Skip If not ${TESTS_IN_UBUNTU_SUPPORT} VBO006.002 not supported @@ -264,6 +256,13 @@ Prepare Tools, Keys And Binaries # TODO: store the disk boot entry in platform config, or figure out how # to handle UEFI boot entries in a reliable manner Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + + # The fw_file_original is the fw_file received as an input to the test suite + Set Suite Variable ${FW_FILE_ORIGINAL} /home/${DEVICE_OS_USERNAME}/test-firmware.rom + # The fw_file_resigned is the fw_file resigned with newly generated keys + # (so booting it should trigger vboot recovery events) + Set Suite Variable ${FW_FILE_RESIGNED} /home/${DEVICE_OS_USERNAME}/test-firmware_resigned.rom + Login To Linux Switch To Root User Get Coreboot Tools From 0401f929daed185fd49253d102a0f2c6cfa9b200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Fri, 21 Mar 2025 15:00:26 +0100 Subject: [PATCH 192/416] dasharo-compatibility/wifi-bluetooth-support.robot: Enable WiFi before scanning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes the problem where "netsh wlan show network" in Windows would return: The wireless local area network interface is powered down and doesn't support the requested operation. When the WiFi is disabled, networks cannot be scanned. Enable the WiFi first and then proceed with scanning. TEST=WLE002.002 passes on Protectli VP2430 Signed-off-by: Michał Żygowski --- dasharo-compatibility/wifi-bluetooth-support.robot | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dasharo-compatibility/wifi-bluetooth-support.robot b/dasharo-compatibility/wifi-bluetooth-support.robot index 239b96712f..8398384135 100644 --- a/dasharo-compatibility/wifi-bluetooth-support.robot +++ b/dasharo-compatibility/wifi-bluetooth-support.robot @@ -90,6 +90,9 @@ WLE002.002 Wi-Fi scanning (Windows) Power On Login To Windows Execute Command In Terminal Start-Service WlanSvc + # Ensure WiFi is enabled + Execute Command In Terminal + ... Set-NetAdapterAdvancedProperty -Name "Wi-Fi" -AllProperties -RegistryKeyword "SoftwareRadioOff" -RegistryValue "0" ${out}= Execute Command In Terminal netsh wlan show network Should Contain ${out} ${3_MDEB_WIFI_NETWORK} ${current_card}= From 0334f113425430112f6c7c94ccb0135556c3d8a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Fri, 21 Mar 2025 16:08:25 +0100 Subject: [PATCH 193/416] display-ports-and-lcd-support.robot: Remove Windows booting redundancy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "Login To Windows" keywrod already contained "Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11}", so the test called it twice, resulting in an error: "No match found for 'to boot directly' in 3 minutes." Remove the redundancy by leaving only the "Login To Windows" keyword. TEST=DSP003.002 passes on Protectli VP2430 Signed-off-by: Michał Żygowski --- dasharo-compatibility/display-ports-and-lcd-support.robot | 2 -- 1 file changed, 2 deletions(-) diff --git a/dasharo-compatibility/display-ports-and-lcd-support.robot b/dasharo-compatibility/display-ports-and-lcd-support.robot index fde56f23d2..65058f9d8e 100644 --- a/dasharo-compatibility/display-ports-and-lcd-support.robot +++ b/dasharo-compatibility/display-ports-and-lcd-support.robot @@ -59,7 +59,6 @@ DSP002.301 - External HDMI display in OS (Windows) Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP002.002 not supported Skip If not ${TESTS_IN_WINDOWS_SUPPORT} DSP002.002 not supported Power On - Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11} Login To Windows Check HDMI Windows @@ -92,7 +91,6 @@ DSP003.002 - External DP display in OS (Windows) Skip If not ${EXTERNAL_DISPLAY_PORT_SUPPORT} DSP003.002 not supported Skip If not ${TESTS_IN_WINDOWS_SUPPORT} DSP003.002 not supported Power On - Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11} Login To Windows Check DP Windows From 0f657df03f748b436127c6956edce4174b1d74f5 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Wed, 26 Mar 2025 14:16:37 +0100 Subject: [PATCH 194/416] platform-configs/include/novacustom-common.robot add: constant for testing ACPI driver Signed-off-by: Jakub Redmerski --- platform-configs/include/novacustom-common.robot | 1 + 1 file changed, 1 insertion(+) diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index 6ebfba4793..36ba6b0960 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -95,6 +95,7 @@ ${RESET_TO_DEFAULTS_SUPPORT}= ${FALSE} ${DEFAULT_POWER_STATE_AFTER_FAIL}= Powered Off ${DTS_FIRMWARE_FLASHING_SUPPORT}= ${TRUE} ${DTS_EC_FLASHING_SUPPORT}= ${TRUE} +${ACPI_DRIVER_SUPPORT}= ${TRUE} # Test module: dasharo-security ${TPM_SUPPORTED_VERSION}= 2 From 82a98d96c42f80aebb6903caab589f87ad21f44b Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Wed, 26 Mar 2025 14:17:04 +0100 Subject: [PATCH 195/416] dasharo-compatibility/acpi-driver.robot add: new test case Signed-off-by: Jakub Redmerski --- dasharo-compatibility/acpi-driver.robot | 59 +++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 dasharo-compatibility/acpi-driver.robot diff --git a/dasharo-compatibility/acpi-driver.robot b/dasharo-compatibility/acpi-driver.robot new file mode 100644 index 0000000000..ea0cdc845f --- /dev/null +++ b/dasharo-compatibility/acpi-driver.robot @@ -0,0 +1,59 @@ +*** Settings *** +Library Collections +Library OperatingSystem +Library Process +Library String +Library Telnet timeout=20 seconds connection_timeout=120 seconds +Library SSHLibrary timeout=90 seconds +Library RequestsLibrary +# TODO: maybe have a single file to include if we need to include the same +# stuff in all test cases +Resource ../variables.robot +Resource ../keywords.robot +Resource ../keys.robot + + +# TODO: +# - document which setup/teardown keywords to use and what are they doing +# - go threough them and make sure they are doing what the name suggest (not +# exactly the case right now) +Suite Setup Run Keywords +... Prepare Test Suite +... AND +... Skip If not ${ACPI_DRIVER_SUPPORT} ACPI driver tests not supported +... AND +... Import Variables ${CURDIR}/../platform-configs/${SENSORS_CONFIG_FILE} +Suite Teardown Run Keyword +... Log Out And Close Connection + +*** Variables *** +@{EXPECTED_OUTPUT}= dasharo_acpi-acpi-0 +... Adapter: ACPI interface +... CPU 0: +... GPU 0: +... CPU Package 0: +... GPU 0: + +*** Test Cases *** +ACP001.001 ACPI driver test (Ubuntu) + [Documentation] Tests if ACPI drivers can be recognised + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ACP001.001 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + ${out}= Execute Command In Terminal ls /home/ubuntu + # Should Contain ${out} + IF "dasharo-acpi-dkms_0.0.1-1_amd64.deb" not in """${out}""" + ${out}= Execute Command In Terminal + ... wget https://github.com/Dasharo/osfv-test-data/blob/master/dasharo-driver/dasharo-acpi-dkms_0.0.1-1_amd64.deb -P /home/ubuntu + ... timeout=60s + Should Contain ${out} saved + END + Detect Or Install Package dkms + Execute Command In Terminal apt install ./dasharo-acpi-dkms_*.deb + Execute Command In Terminal modprobe dasharo-acpi + Detect Or Install Package lm-sensors + ${out}= Execute Command In Terminal sensors + Log To Console \n\nOUT:\n${out} + Should Contain All ${out} @{EXPECTED_OUTPUT} From 0551aa1d3a9befda602c08b1c28ac51c2b36d062 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Wed, 26 Mar 2025 14:36:58 +0100 Subject: [PATCH 196/416] dasharo-compatibility/acpi-driver.robot update: change list of expected output, change test name Signed-off-by: Jakub Redmerski --- dasharo-compatibility/acpi-driver.robot | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/dasharo-compatibility/acpi-driver.robot b/dasharo-compatibility/acpi-driver.robot index ea0cdc845f..22887734a8 100644 --- a/dasharo-compatibility/acpi-driver.robot +++ b/dasharo-compatibility/acpi-driver.robot @@ -29,13 +29,9 @@ Suite Teardown Run Keyword *** Variables *** @{EXPECTED_OUTPUT}= dasharo_acpi-acpi-0 ... Adapter: ACPI interface -... CPU 0: -... GPU 0: -... CPU Package 0: -... GPU 0: *** Test Cases *** -ACP001.001 ACPI driver test (Ubuntu) +ACPI001.001 ACPI driver test (Ubuntu) [Documentation] Tests if ACPI drivers can be recognised Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ACP001.001 not supported Power On @@ -55,5 +51,4 @@ ACP001.001 ACPI driver test (Ubuntu) Execute Command In Terminal modprobe dasharo-acpi Detect Or Install Package lm-sensors ${out}= Execute Command In Terminal sensors - Log To Console \n\nOUT:\n${out} Should Contain All ${out} @{EXPECTED_OUTPUT} From cf5fc02b4eb82c66d040d03499092ff53f39bbfb Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Wed, 26 Mar 2025 15:58:46 +0100 Subject: [PATCH 197/416] dasharo-compatibility/acpi-driver.robot add: first version of test case on fedora Signed-off-by: Jakub Redmerski --- dasharo-compatibility/acpi-driver.robot | 29 ++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/dasharo-compatibility/acpi-driver.robot b/dasharo-compatibility/acpi-driver.robot index 22887734a8..f40deef307 100644 --- a/dasharo-compatibility/acpi-driver.robot +++ b/dasharo-compatibility/acpi-driver.robot @@ -12,7 +12,6 @@ Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot - # TODO: # - document which setup/teardown keywords to use and what are they doing # - go threough them and make sure they are doing what the name suggest (not @@ -26,9 +25,11 @@ Suite Setup Run Keywords Suite Teardown Run Keyword ... Log Out And Close Connection + *** Variables *** -@{EXPECTED_OUTPUT}= dasharo_acpi-acpi-0 -... Adapter: ACPI interface +@{EXPECTED_OUTPUT}= dasharo_acpi-acpi-0 +... Adapter: ACPI interface + *** Test Cases *** ACPI001.001 ACPI driver test (Ubuntu) @@ -52,3 +53,25 @@ ACPI001.001 ACPI driver test (Ubuntu) Detect Or Install Package lm-sensors ${out}= Execute Command In Terminal sensors Should Contain All ${out} @{EXPECTED_OUTPUT} + +ACPI001.002 ACPI driver test (Fedora) + [Documentation] Tests if ACPI drivers can be recognised + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ACP001.002 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + ${out}= Execute Command In Terminal ls /home/fedora + # Should Contain ${out} + IF "dasharo-acpi-dkms_0.0.1-1_amd64.deb" not in """${out}""" + ${out}= Execute Command In Terminal + ... wget https://github.com/Dasharo/osfv-test-data/blob/master/dasharo-driver/dasharo-acpi-dkms-0.0.1-1.x86_64.rpm -P /home/linux + ... timeout=60s + Should Contain ${out} saved + END + Execute Command In Terminal sudo dnf install dkms -y + Execute Command In Terminal sudo dnf install ./dasharo-acpi-dkms_*.rpm + Execute Command In Terminal modprobe dasharo-acpi + Execute Command In Terminal sudo dnf install lm-sensors -y + ${out}= Execute Command In Terminal sensors + Should Contain All ${out} @{EXPECTED_OUTPUT} From d17b3bda679d2e953fbeaf98b029402e4a146e16 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Wed, 26 Mar 2025 16:04:37 +0100 Subject: [PATCH 198/416] dasharo-compatibility/acpi-driver.robot update: change download paths Signed-off-by: Jakub Redmerski --- dasharo-compatibility/acpi-driver.robot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dasharo-compatibility/acpi-driver.robot b/dasharo-compatibility/acpi-driver.robot index f40deef307..f3cb6f3c64 100644 --- a/dasharo-compatibility/acpi-driver.robot +++ b/dasharo-compatibility/acpi-driver.robot @@ -48,7 +48,7 @@ ACPI001.001 ACPI driver test (Ubuntu) Should Contain ${out} saved END Detect Or Install Package dkms - Execute Command In Terminal apt install ./dasharo-acpi-dkms_*.deb + Execute Command In Terminal apt install /home/ubuntu/dasharo-acpi-dkms_*.deb Execute Command In Terminal modprobe dasharo-acpi Detect Or Install Package lm-sensors ${out}= Execute Command In Terminal sensors @@ -63,14 +63,14 @@ ACPI001.002 ACPI driver test (Fedora) Switch To Root User ${out}= Execute Command In Terminal ls /home/fedora # Should Contain ${out} - IF "dasharo-acpi-dkms_0.0.1-1_amd64.deb" not in """${out}""" + IF "dasharo-acpi-dkms_0.0.1-1.x86_64.rpm" not in """${out}""" ${out}= Execute Command In Terminal - ... wget https://github.com/Dasharo/osfv-test-data/blob/master/dasharo-driver/dasharo-acpi-dkms-0.0.1-1.x86_64.rpm -P /home/linux + ... wget https://github.com/Dasharo/osfv-test-data/blob/master/dasharo-driver/dasharo-acpi-dkms_0.0.1-1.x86_64.rpm -P /home/linux ... timeout=60s Should Contain ${out} saved END Execute Command In Terminal sudo dnf install dkms -y - Execute Command In Terminal sudo dnf install ./dasharo-acpi-dkms_*.rpm + Execute Command In Terminal sudo dnf install /home/linux/dasharo-acpi-dkms_*.rpm Execute Command In Terminal modprobe dasharo-acpi Execute Command In Terminal sudo dnf install lm-sensors -y ${out}= Execute Command In Terminal sensors From 92555b2c4c3cff2660765149ee2af97c3205af5e Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Thu, 27 Mar 2025 17:23:29 +0100 Subject: [PATCH 199/416] dasharo-compatibility/acpi-driver.robot update: furter changes in tests, both tests are working Signed-off-by: Jakub Redmerski --- dasharo-compatibility/acpi-driver.robot | 49 ++++++++++++++++--------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/dasharo-compatibility/acpi-driver.robot b/dasharo-compatibility/acpi-driver.robot index f3cb6f3c64..8dcb79a96b 100644 --- a/dasharo-compatibility/acpi-driver.robot +++ b/dasharo-compatibility/acpi-driver.robot @@ -27,51 +27,64 @@ Suite Teardown Run Keyword *** Variables *** -@{EXPECTED_OUTPUT}= dasharo_acpi-acpi-0 +@{EXPECTED_OUTPUT}= +... dasharo_acpi-acpi-0 ... Adapter: ACPI interface +@{SUCCESS_OUTPUT}= +... Complete! +... already installed +... 0 newly installed +... Upgrading: 0, Installing: 0, Removing: 0 *** Test Cases *** ACPI001.001 ACPI driver test (Ubuntu) [Documentation] Tests if ACPI drivers can be recognised Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ACP001.001 not supported - Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - ${out}= Execute Command In Terminal ls /home/ubuntu - # Should Contain ${out} - IF "dasharo-acpi-dkms_0.0.1-1_amd64.deb" not in """${out}""" + ${out}= Execute Command In Terminal dpkg -s dasharo-acpi-dkms + IF "Status: install ok installed" not in """${out}""" ${out}= Execute Command In Terminal - ... wget https://github.com/Dasharo/osfv-test-data/blob/master/dasharo-driver/dasharo-acpi-dkms_0.0.1-1_amd64.deb -P /home/ubuntu + ... wget https://github.com/Dasharo/osfv-test-data/raw/refs/heads/master/dasharo-driver/dasharo-acpi-dkms_0.0.1-1_amd64.deb -P /home/ubuntu ... timeout=60s Should Contain ${out} saved + ${out}= Execute Command In Terminal apt install /home/ubuntu/dasharo-acpi-dkms_*.deb -y + ... timeout=60s + Should Contain Any ${out} @{SUCCESS_OUTPUT} END Detect Or Install Package dkms - Execute Command In Terminal apt install /home/ubuntu/dasharo-acpi-dkms_*.deb - Execute Command In Terminal modprobe dasharo-acpi + ${out}= Execute Command In Terminal modprobe dasharo-acpi + Should Be Empty ${out} Detect Or Install Package lm-sensors ${out}= Execute Command In Terminal sensors Should Contain All ${out} @{EXPECTED_OUTPUT} ACPI001.002 ACPI driver test (Fedora) [Documentation] Tests if ACPI drivers can be recognised - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ACP001.002 not supported - Power On + # Skip If not ${TEST_IN_FE} or ACP001.002 not supported Boot System Or From Connected Disk ${ENV_ID_FEDORA} Login To Linux Switch To Root User - ${out}= Execute Command In Terminal ls /home/fedora + ${out}= Execute Command In Terminal rpm -q dasharo-acpi-dkms # Should Contain ${out} - IF "dasharo-acpi-dkms_0.0.1-1.x86_64.rpm" not in """${out}""" + IF "dasharo-acpi-dkms-0.0.1-1.x86_64" not in """${out}""" ${out}= Execute Command In Terminal - ... wget https://github.com/Dasharo/osfv-test-data/blob/master/dasharo-driver/dasharo-acpi-dkms_0.0.1-1.x86_64.rpm -P /home/linux + ... wget https://github.com/Dasharo/osfv-test-data/raw/refs/heads/master/dasharo-driver/dasharo-acpi-dkms_0.0.1-1.x86_64.rpm -P /home/linux ... timeout=60s - Should Contain ${out} saved + Should Contain ${out} Errors: 0 + ${out}= Execute Command In Terminal sudo dnf install /home/linux/dasharo-acpi-dkms_*.rpm -y + ... timeout=60s + Should Contain Any ${out} @{SUCCESS_OUTPUT} END - Execute Command In Terminal sudo dnf install dkms -y - Execute Command In Terminal sudo dnf install /home/linux/dasharo-acpi-dkms_*.rpm - Execute Command In Terminal modprobe dasharo-acpi - Execute Command In Terminal sudo dnf install lm-sensors -y + ${out}= Execute Command In Terminal sudo dnf install dkms -y + ... timeout=60s + Should Contain Any ${out} @{SUCCESS_OUTPUT} + ${out}= Execute Command In Terminal modprobe dasharo-acpi + Should Be Empty ${out} + ${out}= Execute Command In Terminal sudo dnf install lm_sensors -y + ... timeout=60s + Should Contain Any ${out} @{SUCCESS_OUTPUT} ${out}= Execute Command In Terminal sensors Should Contain All ${out} @{EXPECTED_OUTPUT} From ce6895a23775cc298cd2e38b1c0c9ad73fa08827 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Thu, 6 Mar 2025 20:05:33 +0100 Subject: [PATCH 200/416] platform-configs/novacustom-v540tu.robot: add reference for novacustom v540tu Signed-off-by: Wiktor Mowinski --- platform-configs/novacustom-v540tu.robot | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/platform-configs/novacustom-v540tu.robot b/platform-configs/novacustom-v540tu.robot index 355e74fa57..699f5806bb 100644 --- a/platform-configs/novacustom-v540tu.robot +++ b/platform-configs/novacustom-v540tu.robot @@ -18,7 +18,34 @@ ${CPU_MIN_FREQUENCY}= 300 ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${FALSE} ${TESTED_LINUX_DISTROS}= ${ENV_ID_FEDORA} ${ENV_ID_UBUNTU} +# Benchmark reference data to nvidia model +# performance +${ZIP_MULTI_COMPRESSION}= 63476 # MIPS +${ZIP_MULTI_DECOMPRESSION}= 39336 # MIPS +${CRAY_5_K_RENDER}= 654.5 # sec +${CRAY_4_K_RENDER}= 356.9 # sec +${CRAY_1080_P_RENDER}= 90.8 # sec +${COREMARK_SINGLE}= 400079.5 # iterations/s + +# disk i-o +${UBU_SEQ_READ_QUEUED}= 4677 # MB/s +${UBU_SEQ_WRITE_QUEUED}= 1878.5 # MB/s +${UBU_SEQ_READ_NONQUE}= 2232.5 # MB/s +${UBU_SEQ_WRITE_NONQUE}= 1884.7 # MB/s +${UBU_RAND_READ_QUEUED}= 823 # MB/s +${UBU_RAND_WRITE_QUEUED}= 917.3 # MB/s +${UBU_RAND_READ_NONQUE}= 68.6 # MB/s +${UBU_RAND_WRITE_NONQUE}= 272.1 # MB/s + +${WIN_SEQ_READ_QUEUED}= 7119.5 # MB/s +${WIN_SEQ_WRITE_QUEUED}= 6511.4 # MB/s +${WIN_SEQ_READ_NONQUE}= 5001.2 # MB/s +${WIN_SEQ_WRITE_NONQUE}= 5475.5 # MB/s +${WIN_RAND_READ_QUEUED}= 886.5 # MB/s +${WIN_RAND_WRITE_QUEUED}= 461.3 # MB/s +${WIN_RAND_READ_NONQUE}= 82.8 # MB/s +${WIN_RAND_WRITE_NONQUE}= 239.6 # MB/s *** Keywords *** Power On From 5f17f0617a90b3956e47e4aa7ee2fa0148977ed0 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Wed, 19 Mar 2025 14:01:32 +0100 Subject: [PATCH 201/416] platform-configs/: add info Signed-off-by: Wiktor Mowinski --- platform-configs/novacustom-v540tu.robot | 1 + 1 file changed, 1 insertion(+) diff --git a/platform-configs/novacustom-v540tu.robot b/platform-configs/novacustom-v540tu.robot index 699f5806bb..3f6b0e12a1 100644 --- a/platform-configs/novacustom-v540tu.robot +++ b/platform-configs/novacustom-v540tu.robot @@ -47,6 +47,7 @@ ${WIN_RAND_WRITE_QUEUED}= 461.3 # MB/s ${WIN_RAND_READ_NONQUE}= 82.8 # MB/s ${WIN_RAND_WRITE_NONQUE}= 239.6 # MB/s + *** Keywords *** Power On Novacustom-common.Power On From d209f419622b9b3580432dd1c7fd5fc80af434a9 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Thu, 20 Mar 2025 21:18:24 +0100 Subject: [PATCH 202/416] platform-configs: add for all platforms Signed-off-by: Wiktor Mowinski --- platform-configs/include/novacustom-mtl.robot | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/platform-configs/include/novacustom-mtl.robot b/platform-configs/include/novacustom-mtl.robot index 47027a19fd..b5d2d327c0 100644 --- a/platform-configs/include/novacustom-mtl.robot +++ b/platform-configs/include/novacustom-mtl.robot @@ -41,3 +41,32 @@ ${L3_CACHE_SUPPORT}= ${TRUE} # Only S0ix is available on MTL ${DASHARO_POWER_MGMT_MENU_SUPPORT}= ${FALSE} + +# Benchmark reference data to nvidia model + +# performance +${ZIP_MULTI_COMPRESSION}= 63476 # MIPS +${ZIP_MULTI_DECOMPRESSION}= 39336 # MIPS +${CRAY_5_K_RENDER}= 654.5 # sec +${CRAY_4_K_RENDER}= 356.9 # sec +${CRAY_1080_P_RENDER}= 90.8 # sec +${COREMARK_SINGLE}= 400079.5 # iterations/s + +# disk i-o +${UBU_SEQ_READ_QUEUED}= 4677 # MB/s +${UBU_SEQ_WRITE_QUEUED}= 1878.5 # MB/s +${UBU_SEQ_READ_NONQUE}= 2232.5 # MB/s +${UBU_SEQ_WRITE_NONQUE}= 1884.7 # MB/s +${UBU_RAND_READ_QUEUED}= 823 # MB/s +${UBU_RAND_WRITE_QUEUED}= 917.3 # MB/s +${UBU_RAND_READ_NONQUE}= 68.6 # MB/s +${UBU_RAND_WRITE_NONQUE}= 272.1 # MB/s + +${WIN_SEQ_READ_QUEUED}= 7119.5 # MB/s +${WIN_SEQ_WRITE_QUEUED}= 6511.4 # MB/s +${WIN_SEQ_READ_NONQUE}= 5001.2 # MB/s +${WIN_SEQ_WRITE_NONQUE}= 5475.5 # MB/s +${WIN_RAND_READ_QUEUED}= 886.5 # MB/s +${WIN_RAND_WRITE_QUEUED}= 461.3 # MB/s +${WIN_RAND_READ_NONQUE}= 82.8 # MB/s +${WIN_RAND_WRITE_NONQUE}= 239.6 # MB/s From b2cb4c8ebebbc986cb4388c45cacf3ad8c93b353 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Wed, 26 Mar 2025 15:55:16 +0100 Subject: [PATCH 203/416] refence update in configs Signed-off-by: Wiktor Mowinski --- platform-configs/novacustom-v540tnd.robot | 31 +++++++++++++++++++++++ platform-configs/novacustom-v560tnd.robot | 31 +++++++++++++++++++++++ platform-configs/novacustom-v560tne.robot | 27 ++++++++++++++++++++ 3 files changed, 89 insertions(+) diff --git a/platform-configs/novacustom-v540tnd.robot b/platform-configs/novacustom-v540tnd.robot index 3c563abb1b..1e0d821813 100644 --- a/platform-configs/novacustom-v540tnd.robot +++ b/platform-configs/novacustom-v540tnd.robot @@ -38,3 +38,34 @@ ${VERIFIED_BOOT_SUPPORT}= ${TRUE} ${TPM_SUPPORTED_VERSION}= 2 ${TPM_EXPECTED_CHIP}= SLB9672 + +${LAPTOP_PLATFORM}= ${TRUE} +${BATTERY_PRESENT}= ${TRUE} +${DISK_IO_PERFORMANCE_TESTS}= ${TRUE} + +# performance +${ZIP_MULTI_COMPRESSION}= 63476 # MIPS +${ZIP_MULTI_DECOMPRESSION}= 39336 # MIPS +${CRAY_5_K_RENDER}= 654.5 # sec +${CRAY_4_K_RENDER}= 356.9 # sec +${CRAY_1080_P_RENDER}= 90.8 # sec +${COREMARK_SINGLE}= 400079.5 # iterations/s + +# disk i-o +${UBU_SEQ_READ_QUEUED}= 4677 # MB/s +${UBU_SEQ_WRITE_QUEUED}= 1878.5 # MB/s +${UBU_SEQ_READ_NONQUE}= 2232.5 # MB/s +${UBU_SEQ_WRITE_NONQUE}= 1884.7 # MB/s +${UBU_RAND_READ_QUEUED}= 823 # MB/s +${UBU_RAND_WRITE_QUEUED}= 917.3 # MB/s +${UBU_RAND_READ_NONQUE}= 68.6 # MB/s +${UBU_RAND_WRITE_NONQUE}= 272.1 # MB/s + +${WIN_SEQ_READ_QUEUED}= 7119.5 # MB/s +${WIN_SEQ_WRITE_QUEUED}= 6511.4 # MB/s +${WIN_SEQ_READ_NONQUE}= 5001.2 # MB/s +${WIN_SEQ_WRITE_NONQUE}= 5475.5 # MB/s +${WIN_RAND_READ_QUEUED}= 886.5 # MB/s +${WIN_RAND_WRITE_QUEUED}= 461.3 # MB/s +${WIN_RAND_READ_NONQUE}= 82.8 # MB/s +${WIN_RAND_WRITE_NONQUE}= 239.6 # MB/s diff --git a/platform-configs/novacustom-v560tnd.robot b/platform-configs/novacustom-v560tnd.robot index ca2e010bdd..c77bfc6cdc 100644 --- a/platform-configs/novacustom-v560tnd.robot +++ b/platform-configs/novacustom-v560tnd.robot @@ -22,3 +22,34 @@ ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} # on which OS is first in the bo ${USB_DETECTION_ITERATIONS_NUMBER}= 3 ${BOOT_FROM_USB_ITERATIONS_NUMBER}= 3 ${WIFI_CARD}= Intel(R) Wi-Fi 6E AX211 160MHz + +${LAPTOP_PLATFORM}= ${TRUE} +${BATTERY_PRESENT}= ${TRUE} +${DISK_IO_PERFORMANCE_TESTS}= ${TRUE} + +# performance +${ZIP_MULTI_COMPRESSION}= 79729 # MIPS +${ZIP_MULTI_DECOMPRESSION}= 52410 # MIPS +${CRAY_5_K_RENDER}= 585.333 # sec +${CRAY_4_K_RENDER}= 326.895 # sec +${CRAY_1080_P_RENDER}= 80.547 # sec +${COREMARK_SINGLE}= 407451.446 # iterations/s + +# disk i-o +${UBU_SEQ_READ_QUEUED}= 5953.5 # MB/s +${UBU_SEQ_WRITE_QUEUED}= 5728.6 # MB/s +${UBU_SEQ_READ_NONQUE}= 4357.4 # MB/s +${UBU_SEQ_WRITE_NONQUE}= 4293.5 # MB/s +${UBU_RAND_READ_QUEUED}= 5944.8 # MB/s +${UBU_RAND_WRITE_QUEUED}= 5634.1 # MB/s +${UBU_RAND_READ_NONQUE}= 3653.9 # MB/s +${UBU_RAND_WRITE_NONQUE}= 4083.7 # MB/s + +${WIN_SEQ_READ_QUEUED}= ${EMPTY} # MB/s +${WIN_SEQ_WRITE_QUEUED}= ${EMPTY} # MB/s +${WIN_SEQ_READ_NONQUE}= ${EMPTY} # MB/s +${WIN_SEQ_WRITE_NONQUE}= ${EMPTY} # MB/s +${WIN_RAND_READ_QUEUED}= ${EMPTY} # MB/s +${WIN_RAND_WRITE_QUEUED}= ${EMPTY} # MB/s +${WIN_RAND_READ_NONQUE}= ${EMPTY} # MB/s +${WIN_RAND_WRITE_NONQUE}= ${EMPTY} # MB/s diff --git a/platform-configs/novacustom-v560tne.robot b/platform-configs/novacustom-v560tne.robot index ca2e010bdd..e258c0e22e 100644 --- a/platform-configs/novacustom-v560tne.robot +++ b/platform-configs/novacustom-v560tne.robot @@ -22,3 +22,30 @@ ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} # on which OS is first in the bo ${USB_DETECTION_ITERATIONS_NUMBER}= 3 ${BOOT_FROM_USB_ITERATIONS_NUMBER}= 3 ${WIFI_CARD}= Intel(R) Wi-Fi 6E AX211 160MHz + +# performance +${ZIP_MULTI_COMPRESSION}= 79729 # MIPS +${ZIP_MULTI_DECOMPRESSION}= 52410 # MIPS +${CRAY_5_K_RENDER}= 585.333 # sec +${CRAY_4_K_RENDER}= 326.895 # sec +${CRAY_1080_P_RENDER}= 80.547 # sec +${COREMARK_SINGLE}= 407451.446 # iterations/s + +# disk i-o +${UBU_SEQ_READ_QUEUED}= 5953.5 # MB/s +${UBU_SEQ_WRITE_QUEUED}= 5728.6 # MB/s +${UBU_SEQ_READ_NONQUE}= 4357.4 # MB/s +${UBU_SEQ_WRITE_NONQUE}= 4293.5 # MB/s +${UBU_RAND_READ_QUEUED}= 5944.8 # MB/s +${UBU_RAND_WRITE_QUEUED}= 5634.1 # MB/s +${UBU_RAND_READ_NONQUE}= 3653.9 # MB/s +${UBU_RAND_WRITE_NONQUE}= 4083.7 # MB/s + +${WIN_SEQ_READ_QUEUED}= ${EMPTY} # MB/s +${WIN_SEQ_WRITE_QUEUED}= ${EMPTY} # MB/s +${WIN_SEQ_READ_NONQUE}= ${EMPTY} # MB/s +${WIN_SEQ_WRITE_NONQUE}= ${EMPTY} # MB/s +${WIN_RAND_READ_QUEUED}= ${EMPTY} # MB/s +${WIN_RAND_WRITE_QUEUED}= ${EMPTY} # MB/s +${WIN_RAND_READ_NONQUE}= ${EMPTY} # MB/s +${WIN_RAND_WRITE_NONQUE}= ${EMPTY} # MB/s From 4a8c0eafe769b8617e64e8a07924d71104f4bbfc Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Wed, 26 Mar 2025 16:09:25 +0100 Subject: [PATCH 204/416] platform-configs/include/novacustom-mtl.robot: move data higher Signed-off-by: Wiktor Mowinski --- platform-configs/include/novacustom-mtl.robot | 29 ------------------- 1 file changed, 29 deletions(-) diff --git a/platform-configs/include/novacustom-mtl.robot b/platform-configs/include/novacustom-mtl.robot index b5d2d327c0..47027a19fd 100644 --- a/platform-configs/include/novacustom-mtl.robot +++ b/platform-configs/include/novacustom-mtl.robot @@ -41,32 +41,3 @@ ${L3_CACHE_SUPPORT}= ${TRUE} # Only S0ix is available on MTL ${DASHARO_POWER_MGMT_MENU_SUPPORT}= ${FALSE} - -# Benchmark reference data to nvidia model - -# performance -${ZIP_MULTI_COMPRESSION}= 63476 # MIPS -${ZIP_MULTI_DECOMPRESSION}= 39336 # MIPS -${CRAY_5_K_RENDER}= 654.5 # sec -${CRAY_4_K_RENDER}= 356.9 # sec -${CRAY_1080_P_RENDER}= 90.8 # sec -${COREMARK_SINGLE}= 400079.5 # iterations/s - -# disk i-o -${UBU_SEQ_READ_QUEUED}= 4677 # MB/s -${UBU_SEQ_WRITE_QUEUED}= 1878.5 # MB/s -${UBU_SEQ_READ_NONQUE}= 2232.5 # MB/s -${UBU_SEQ_WRITE_NONQUE}= 1884.7 # MB/s -${UBU_RAND_READ_QUEUED}= 823 # MB/s -${UBU_RAND_WRITE_QUEUED}= 917.3 # MB/s -${UBU_RAND_READ_NONQUE}= 68.6 # MB/s -${UBU_RAND_WRITE_NONQUE}= 272.1 # MB/s - -${WIN_SEQ_READ_QUEUED}= 7119.5 # MB/s -${WIN_SEQ_WRITE_QUEUED}= 6511.4 # MB/s -${WIN_SEQ_READ_NONQUE}= 5001.2 # MB/s -${WIN_SEQ_WRITE_NONQUE}= 5475.5 # MB/s -${WIN_RAND_READ_QUEUED}= 886.5 # MB/s -${WIN_RAND_WRITE_QUEUED}= 461.3 # MB/s -${WIN_RAND_READ_NONQUE}= 82.8 # MB/s -${WIN_RAND_WRITE_NONQUE}= 239.6 # MB/s From 25643a02dfff5f12797e9a74b3a47027c1229c17 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Thu, 27 Mar 2025 16:49:09 +0100 Subject: [PATCH 205/416] platform-configs/novacustom-v560tu.robot: update Signed-off-by: Wiktor Mowinski --- platform-configs/novacustom-v560tu.robot | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/platform-configs/novacustom-v560tu.robot b/platform-configs/novacustom-v560tu.robot index a1b5d8de2a..5b830fa417 100644 --- a/platform-configs/novacustom-v560tu.robot +++ b/platform-configs/novacustom-v560tu.robot @@ -28,3 +28,30 @@ ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} ${USB_STACK_SUPPORT}= ${TRUE} ${CLEVO_BATTERY_CAPACITY}= 4602000 + +# performance +${ZIP_MULTI_COMPRESSION}= 15923 # MIPS +${ZIP_MULTI_DECOMPRESSION}= 12245 # MIPS +${CRAY_5_K_RENDER}= ${EMPTY} # sec +${CRAY_4_K_RENDER}= ${EMPTY} # sec +${CRAY_1080_P_RENDER}= ${EMPTY} # sec +${COREMARK_SINGLE}= ${EMPTY} # iterations/s + +# disk i-o +${UBU_SEQ_READ_QUEUED}= 5953.5 # MB/s +${UBU_SEQ_WRITE_QUEUED}= 5728.6 # MB/s +${UBU_SEQ_READ_NONQUE}= 4357.4 # MB/s +${UBU_SEQ_WRITE_NONQUE}= 4293.5 # MB/s +${UBU_RAND_READ_QUEUED}= 5944.8 # MB/s +${UBU_RAND_WRITE_QUEUED}= 5634.1 # MB/s +${UBU_RAND_READ_NONQUE}= 3653.9 # MB/s +${UBU_RAND_WRITE_NONQUE}= 4083.7 # MB/s + +${WIN_SEQ_READ_QUEUED}= ${EMPTY} # MB/s +${WIN_SEQ_WRITE_QUEUED}= ${EMPTY} # MB/s +${WIN_SEQ_READ_NONQUE}= ${EMPTY} # MB/s +${WIN_SEQ_WRITE_NONQUE}= ${EMPTY} # MB/s +${WIN_RAND_READ_QUEUED}= ${EMPTY} # MB/s +${WIN_RAND_WRITE_QUEUED}= ${EMPTY} # MB/s +${WIN_RAND_READ_NONQUE}= ${EMPTY} # MB/s +${WIN_RAND_WRITE_NONQUE}= ${EMPTY} # MB/s From 1fe8733975b77e7a7b94dfdf9576d2d894ae6706 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Fri, 28 Mar 2025 10:15:21 +0100 Subject: [PATCH 206/416] more data Signed-off-by: Wiktor Mowinski --- platform-configs/novacustom-v560tu.robot | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/platform-configs/novacustom-v560tu.robot b/platform-configs/novacustom-v560tu.robot index 5b830fa417..a5b0367f4b 100644 --- a/platform-configs/novacustom-v560tu.robot +++ b/platform-configs/novacustom-v560tu.robot @@ -29,13 +29,13 @@ ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} ${USB_STACK_SUPPORT}= ${TRUE} ${CLEVO_BATTERY_CAPACITY}= 4602000 -# performance +# performance referencefrom processor ultra 5 125h ${ZIP_MULTI_COMPRESSION}= 15923 # MIPS ${ZIP_MULTI_DECOMPRESSION}= 12245 # MIPS -${CRAY_5_K_RENDER}= ${EMPTY} # sec -${CRAY_4_K_RENDER}= ${EMPTY} # sec -${CRAY_1080_P_RENDER}= ${EMPTY} # sec -${COREMARK_SINGLE}= ${EMPTY} # iterations/s +${CRAY_5_K_RENDER}= 2210.755 # sec +${CRAY_4_K_RENDER}= 1349.461 # sec +${CRAY_1080_P_RENDER}= 308.289 # sec +${COREMARK_SINGLE}= 92891.774 # iterations/s # disk i-o ${UBU_SEQ_READ_QUEUED}= 5953.5 # MB/s From 51f723bd355f13928fc617125f7185bacd007d33 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Fri, 28 Mar 2025 10:33:33 +0100 Subject: [PATCH 207/416] platform-configs/:comment Signed-off-by: Wiktor Mowinski --- platform-configs/novacustom-v560tu.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-configs/novacustom-v560tu.robot b/platform-configs/novacustom-v560tu.robot index a5b0367f4b..296f0146a7 100644 --- a/platform-configs/novacustom-v560tu.robot +++ b/platform-configs/novacustom-v560tu.robot @@ -29,7 +29,7 @@ ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} ${USB_STACK_SUPPORT}= ${TRUE} ${CLEVO_BATTERY_CAPACITY}= 4602000 -# performance referencefrom processor ultra 5 125h +# performance reference for processor ultra 5 125h ${ZIP_MULTI_COMPRESSION}= 15923 # MIPS ${ZIP_MULTI_DECOMPRESSION}= 12245 # MIPS ${CRAY_5_K_RENDER}= 2210.755 # sec From 16368fb00d5c0bb72edd2e49ef30d68a56b3710d Mon Sep 17 00:00:00 2001 From: Pawel Langowski Date: Fri, 21 Mar 2025 10:13:46 +0100 Subject: [PATCH 208/416] dts/dts-e2e.robot: Use new DPP credentials Signed-off-by: Pawel Langowski --- docs/dts-tests.md | 9 ++++----- dts/dts-e2e.robot | 9 +++------ 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/docs/dts-tests.md b/docs/dts-tests.md index 3af527b57b..271a369246 100644 --- a/docs/dts-tests.md +++ b/docs/dts-tests.md @@ -32,17 +32,16 @@ Control variables: * `dts_ipxe_link`: useful if you are testing DTS which is not released yet. Just put here a link to your script which will load your DTS. By default DTS is being booted from `dl.3mdeb.com`; -* `dpp_logs_key`, `dpp_download_key`, `dpp_password`: for DPP credentials, if - tests need them. +* `dpp_email`, `dpp_password`: for DPP credentials, if tests need them. Launching example: ```bash -robot -b command_log.txt -v snipeit:no -L TRACE -v config:qemu -v rte_ip:127.0.0.1 -v boot_dts_from_ipxe_shell:True -v dts_ipxe_link:http://192.168.0.102:8080/ipxe -v dpp_logs_key:'LOGS_KEY' -v dpp_download_key:'DOWNLOAD_KEY' -v dpp_password:'PASSWORD' -t "E2E006.002*" dts/dts-e2e.robot +robot -b command_log.txt -v snipeit:no -L TRACE -v config:qemu -v rte_ip:127.0.0.1 -v boot_dts_from_ipxe_shell:True -v dts_ipxe_link:http://192.168.0.102:8080/ipxe -v dpp_email:'EMAIL' -v dpp_password:'PASSWORD' -t "E2E006.002*" dts/dts-e2e.robot ``` -> Note: replace `LOGS_KEY`, `DOWNLOAD_KEY` and `PASSWORD` with appropriate -> credentials if required. `http://192.168.0.102:8080/ipxe` with your DTS iPXE +> Note: replace `EMAIL` and `PASSWORD` with appropriate credentials if required. +> `http://192.168.0.102:8080/ipxe` with your DTS iPXE > script link. ## Unit tests diff --git a/dts/dts-e2e.robot b/dts/dts-e2e.robot index 626bf76089..6c79e0f024 100644 --- a/dts/dts-e2e.robot +++ b/dts/dts-e2e.robot @@ -1081,12 +1081,9 @@ Provide DPP Credentials ${out}= Read From Terminal Until ${DTS_CHECKPOINT} Write Bare Into Terminal ${DTS_CREDENTIALS_OPT} - # Enter logs key: - Variable Should Exist ${DPP_LOGS_KEY} - Write Into Terminal ${DPP_LOGS_KEY} - # Enter download key: - Variable Should Exist ${DPP_DOWNLOAD_KEY} - Write Into Terminal ${DPP_DOWNLOAD_KEY} + # Enter email: + Variable Should Exist ${DPP_EMAIL} + Write Into Terminal ${DPP_EMAIL} # Enter password: Variable Should Exist ${DPP_PASSWORD} Write Into Terminal ${DPP_PASSWORD} From 68399e41df7e0f87598561197fb1cad87003daf1 Mon Sep 17 00:00:00 2001 From: Pawel Langowski Date: Fri, 28 Mar 2025 10:05:07 +0100 Subject: [PATCH 209/416] dts/dts-e2e.robot: Allow declining Heads transition When trying to deploy coreboot + UEFI, if Heads fw is available, DTS will ask the user if they would like to switch to Heads. The user has to decline in order to install UEFI. Signed-off-by: Pawel Langowski --- dts/dts-e2e.robot | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/dts/dts-e2e.robot b/dts/dts-e2e.robot index 6c79e0f024..67b2d02f83 100644 --- a/dts/dts-e2e.robot +++ b/dts/dts-e2e.robot @@ -514,7 +514,7 @@ E2E003.009 MSI PRO Z690-A DDR-4 update (Coreboot + UEFI -> Coreboot + UEFI) - DP Provide DPP Credentials # 4) Start update: - Go Through Update + Go Through Update Decline Heads # 5) The final step is rebooting: Wait For Checkpoint Rebooting @@ -540,7 +540,7 @@ E2E003.010 MSI PRO Z690-A update (Coreboot + UEFI -> Coreboot + UEFI) - DPP vers Provide DPP Credentials # 4) Start update: - Go Through Update + Go Through Update Decline Heads # 5) The final step is rebooting: Wait For Checkpoint Rebooting @@ -1159,6 +1159,19 @@ Go Through Update Wait For Checkpoint And Write ${DTS_SPECIFICATION_WARN} Y Wait For Checkpoint And Write ${DTS_DEPLOY_WARN} Y +Go Through Update Decline Heads + [Documentation] This KW goes through standard Dasharo update workflow + ... choosing all needed menu options and answering all questions. It + ... declines switching to Heads firmware. + Set DUT Response Timeout 120s + # 1) Select initial deployment: + Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DEPLOY_OPT} + + # 2) Check out all warnings: + Wait For Checkpoint And Write ${DTS_HEADS_SWITCH_QUESTION} N + Wait For Checkpoint And Write ${DTS_SPECIFICATION_WARN} Y + Wait For Checkpoint And Write ${DTS_DEPLOY_WARN} Y + Go Through Heads Transition [Documentation] This KW goes through transition to Dasharo Heads choosing ... all needed menu options and answering all questions. From 7d571b731ddbb1b027153841352314bc84a49c02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wiktor=20M=C3=B3wi=C5=84ski?= Date: Wed, 2 Apr 2025 15:15:37 +0200 Subject: [PATCH 210/416] dGPU tests (#743) * dasharo-performance/graphics-configuration.robot: test gpu modes Signed-off-by: Wiktor Mowinski --- .../graphics-configuration.robot | 124 ++++++++++++++++++ lib/performance/common.robot | 31 +++++ platform-configs/include/default.robot | 1 + platform-configs/novacustom-v540tnd.robot | 1 + platform-configs/novacustom-v540tu.robot | 2 + platform-configs/novacustom-v560tnd.robot | 5 + platform-configs/novacustom-v560tne.robot | 1 + 7 files changed, 165 insertions(+) create mode 100644 dasharo-performance/graphics-configuration.robot create mode 100644 lib/performance/common.robot diff --git a/dasharo-performance/graphics-configuration.robot b/dasharo-performance/graphics-configuration.robot new file mode 100644 index 0000000000..e21989d3f6 --- /dev/null +++ b/dasharo-performance/graphics-configuration.robot @@ -0,0 +1,124 @@ +*** Settings *** +Library Telnet timeout=20 seconds connection_timeout=120 seconds +Library SSHLibrary timeout=90 seconds +Resource ../keywords.robot +Resource ../lib/performance/common.robot + +Suite Setup Prepare Test Suite +Suite Teardown Log Out And Close Connection + + +*** Test Cases *** +DGPU001.001 Hybrid Graphics modes: NVIDIA Optimus + [Documentation] Verifies that the internal display is connected to the integrated GPU (iGPU) while both iGPU and dGPU are active in Ubuntu. + + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If not ${NVIDIA_GRAPHICS_CARD_SUPPORT} + Set UEFI Option DGPUState NVIDIA Optimus + Power Cycle Into Ubuntu + Switch To Root User + + ${dgpu_card} ${igpu_card}= Get GPU Cards + + ${igpu_display}= Execute Command In Terminal ls /sys/class/drm/${igpu_card}-eDP* 2>/dev/null + ${dgpu_display}= Execute Command In Terminal ls /sys/class/drm/${dgpu_card}-eDP* 2>/dev/null + + IF '${igpu_display}' + ${igpu_display_status}= Execute Command In Terminal cat /sys/class/drm/${igpu_card}-eDP*/enabled + # sometimes if the directory deos not exist it repeats back the typed command + # i. e. cat /sys/class/drm/${igpu_card}-eDP*/enabled with enabled at the end, resulting in a false positive + Should Not Contain ${igpu_display_status} cat msg= "iGPU is not driving the internal display." + Should Contain ${igpu_display_status} enabled msg= "iGPU is not driving the internal display." + ELSE + Fail msg= "No internal display found for iGPU." + END + + IF '${dgpu_display}' + ${dgpu_display_status}= Execute Command In Terminal cat /sys/class/drm/${dgpu_card}-eDP*/enabled + Should Not Contain ${dgpu_display_status} cat msg= "dGPU is not driving the internal display." + Should Contain + ... ${dgpu_display_status} + ... disabled + ... msg= "dGPU is incorrectly driving the internal display." + ELSE + Log To Console "No internal display found for dGPU." + END + + # also including the original logic to be extra sure + ${dgpu_status}= Execute Command In Terminal lspci | grep -i nvidia + Should Contain ${dgpu_status} VGA msg= "dGPU is not detected." + + ${igpu_status}= Execute Command In Terminal lspci | grep -i 'intel' + Should Contain ${igpu_status} VGA msg= "iGPU is not detected." + + Log To Console Internal display is connected to iGPU, and both iGPU and dGPU are active. + +DGPU002.001 Hybrid Graphics modes: dGPU Only + [Documentation] Verifies that the internal display is connected to the discrete GPU (dGPU) while the integrated GPU (iGPU) is still active. + + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If not ${NVIDIA_GRAPHICS_CARD_SUPPORT} + Skip If not ${DGPU_ONLY_SUPPORT} + Set UEFI Option DGPUState dGPU Only + Power Cycle Into Ubuntu + Switch To Root User + + ${dgpu_card} ${igpu_card}= Get GPU Cards + + ${dgpu_display}= Execute Command In Terminal ls /sys/class/drm/${dgpu_card}-eDP* 2>/dev/null + ${igpu_display}= Execute Command In Terminal ls /sys/class/drm/${igpu_card}-eDP* 2>/dev/null + + IF '${dgpu_display}' + ${dgpu_status}= Execute Command In Terminal cat /sys/class/drm/${dgpu_card}-eDP*/enabled + Should Not Contain ${dgpu_status} cat msg= "iGPU is not driving the internal display." + Should Contain ${dgpu_status} enabled msg= "dGPU is not driving the internal display." + ELSE + Fail msg= "No internal display found for dGPU." + END + + IF '${igpu_display}' + ${igpu_status}= Execute Command In Terminal cat /sys/class/drm/${igpu_card}-eDP*/enabled + Should Not Contain ${igpu_status} cat msg= "iGPU is not driving the internal display." + Should Contain ${igpu_status} disabled msg= "iGPU is still driving the internal display." + ELSE + Log To Console "No internal display found for iGPU. Skipping check." + END + + Log To Console Internal display is connected to dGPU + +DGPU003.001 Hybrid Graphics modes: iGPU Only + [Documentation] Verifies that only the discrete GPU (dGPU) is turned off and the integrated GPU (iGPU) is active. + + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If not ${NVIDIA_GRAPHICS_CARD_SUPPORT} + Set UEFI Option DGPUState iGPU Only + Power Cycle Into Ubuntu + Switch To Root User + ${gpu_status}= Execute Command In Terminal lspci | grep -i nvidia + Should Not Contain ${gpu_status} VGA msg= "dGPU is still active." + + ${igpu_status}= Execute Command In Terminal lspci | grep -i 'intel' + Should Contain ${igpu_status} VGA msg= "iGPU is not detected." + + Log To Console Only iGPU is active, and dGPU is turned off. + + +*** Keywords *** +Get GPU Cards + ${gpu_cards_raw}= Execute Command In Terminal + ... ls -d /sys/class/drm/card[0-9]*/device/vendor | awk -F'/' '{print $(NF-2)}' + ${gpu_cards}= Split String ${gpu_cards_raw} + ${dgpu_card}= Set Variable nocard + ${igpu_card}= Set Variable nocard + + FOR ${card} IN @{gpu_cards} + ${vendor}= Execute Command In Terminal cat /sys/class/drm/${card}/device/vendor + ${vendor}= Strip String ${vendor} + IF '${vendor}' == '0x10de' + ${dgpu_card}= Set Variable ${card} + ELSE IF '${vendor}' == '0x8086' + ${igpu_card}= Set Variable ${card} + END + END + + RETURN ${dgpu_card} ${igpu_card} diff --git a/lib/performance/common.robot b/lib/performance/common.robot new file mode 100644 index 0000000000..84b21c4452 --- /dev/null +++ b/lib/performance/common.robot @@ -0,0 +1,31 @@ +*** Settings *** +Documentation lib/performance/common + +Library Collections +Library OperatingSystem +Library Process +Library String +Library RequestsLibrary +Library SSHLibrary +Resource ../../variables.robot +Resource ../../keywords.robot +Resource ../../keys.robot +# IMPORTANT: This must be commented out for production +# This is here only to make LSP happy during development. +# Resource ../../platform-configs/include/default.robot + + +*** Variables *** +${PTS_LATEST_URL}= +... https://github.com/phoronix-test-suite/phoronix-test-suite/archive/refs/tags/v10.8.4.zip +${PTS_DOWNLOAD_PATH}= C:\pts\pts.zip +${PTS_EXTRACT_PATH}= C:\pts-extracted\ +${PERF_REPORT_DIR_LINUX}= ~/testing/reports/ +${PERF_REPORT_DIR_WINDOWS}= C:\testing\reports\ + + +*** Keywords *** +Power Cycle Into Ubuntu + Power On + Boot System Or From Connected Disk 201 + Login To Linux diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 3761e82684..ec5e62a031 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -199,6 +199,7 @@ ${PLATFORM_STABILITY_CHECKING}= ${FALSE} ${CUSTOM_FAN_CURVE_SILENT_MODE_SUPPORT}= ${FALSE} ${CUSTOM_FAN_CURVE_PERFORMANCE_MODE_SUPPORT}= ${FALSE} ${CUSTOM_FAN_CURVE_OFF_MODE_SUPPORT}= ${FALSE} +${DGPU_ONLY_SUPPORT}= ${FALSE} # Variables used in lib/sensors to determine platform-specific methods of # measuring temperatures, fans etc. ${SENSORS_CONFIG_FILE}= include/sensors/default-sensors-config.yaml diff --git a/platform-configs/novacustom-v540tnd.robot b/platform-configs/novacustom-v540tnd.robot index 1e0d821813..247a766de5 100644 --- a/platform-configs/novacustom-v540tnd.robot +++ b/platform-configs/novacustom-v540tnd.robot @@ -16,6 +16,7 @@ ${CPU_MIN_FREQUENCY}= 200 ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${TRUE} +${DGPU_ONLY_SUPPORT}= ${TRUE} ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} # change windows/ubuntu support depending ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} # on which OS is first in the boot order diff --git a/platform-configs/novacustom-v540tu.robot b/platform-configs/novacustom-v540tu.robot index 3f6b0e12a1..3e60de18d2 100644 --- a/platform-configs/novacustom-v540tu.robot +++ b/platform-configs/novacustom-v540tu.robot @@ -15,6 +15,8 @@ ${EXTERNAL_HEADSET}= USB PnP Audio Device ${CPU_MAX_FREQUENCY}= 4800 ${CPU_MIN_FREQUENCY}= 300 +${OPTIONS_LIB}= options-lib_dcu +${POWER_CTRL}= none ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${FALSE} ${TESTED_LINUX_DISTROS}= ${ENV_ID_FEDORA} ${ENV_ID_UBUNTU} diff --git a/platform-configs/novacustom-v560tnd.robot b/platform-configs/novacustom-v560tnd.robot index c77bfc6cdc..1ef31dba8a 100644 --- a/platform-configs/novacustom-v560tnd.robot +++ b/platform-configs/novacustom-v560tnd.robot @@ -23,6 +23,11 @@ ${USB_DETECTION_ITERATIONS_NUMBER}= 3 ${BOOT_FROM_USB_ITERATIONS_NUMBER}= 3 ${WIFI_CARD}= Intel(R) Wi-Fi 6E AX211 160MHz +${OPTIONS_LIB}= options-lib_dcu +${POWER_CTRL}= none + +${DGPU_ONLY_SUPPORT}= ${TRUE} + ${LAPTOP_PLATFORM}= ${TRUE} ${BATTERY_PRESENT}= ${TRUE} ${DISK_IO_PERFORMANCE_TESTS}= ${TRUE} diff --git a/platform-configs/novacustom-v560tne.robot b/platform-configs/novacustom-v560tne.robot index e258c0e22e..e783e9371a 100644 --- a/platform-configs/novacustom-v560tne.robot +++ b/platform-configs/novacustom-v560tne.robot @@ -22,6 +22,7 @@ ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} # on which OS is first in the bo ${USB_DETECTION_ITERATIONS_NUMBER}= 3 ${BOOT_FROM_USB_ITERATIONS_NUMBER}= 3 ${WIFI_CARD}= Intel(R) Wi-Fi 6E AX211 160MHz +${DGPU_ONLY_SUPPORT}= ${TRUE} # performance ${ZIP_MULTI_COMPRESSION}= 79729 # MIPS From f066d3568bb5a2ba23fa0f1627185c0f07a1b643 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Thu, 20 Mar 2025 10:40:53 +0100 Subject: [PATCH 211/416] README.md: Initializing environment section updated Stage 1: --recursive --remote switches added to be sure, that osfv-test-data submodule will be initialized correctly. Signed-off-by: Mateusz Maciejewski --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e0f0ba5cf2..c03e2e2ce0 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,7 @@ The osfv uses the ```bash git clone https://github.com/Dasharo/open-source-firmware-validation cd open-source-firmware-validation -git submodule update --init --checkout +git submodule update --init --checkout --recursive --remote python3 -m virtualenv venv source venv/bin/activate ``` From bebe4f2d0c0827a18141a766123e6f3201bc7d37 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Thu, 20 Mar 2025 10:44:55 +0100 Subject: [PATCH 212/416] README.md: Initializing environment section updated Stage 2 (optional): checking out develop branch before submodules initialization is required, but this part is just a proposal. Signed-off-by: Mateusz Maciejewski --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c03e2e2ce0..b7bc2d3970 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,7 @@ The osfv uses the ```bash 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 From d264a8e712a2ecf6b60c5a997591010c903d13d1 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Thu, 13 Mar 2025 17:20:16 +0100 Subject: [PATCH 213/416] dasharo-security/secure-boot.robot - UEFI Shell-less SBO tests Test cases SBO003.001, SBO004.001, SBO005.001, SBO007.001, SBO008.001 working without UEFI Shell dependency (100% setup menu based execution). USB stick image labeled BAD_INFLUE is now required, containing new hello_dasharo.efi test program, to enable serial port message capture. Works with Telnet + physical USB stick and with PiKVM + image mount. Signed-off-by: Mateusz Maciejewski --- dasharo-security/secure-boot.robot | 65 ++++++++++++++------------ lib/secure-boot-lib.robot | 19 +++++++- platform-configs/include/default.robot | 4 ++ 3 files changed, 57 insertions(+), 31 deletions(-) diff --git a/dasharo-security/secure-boot.robot b/dasharo-security/secure-boot.robot index d77dee4cfe..2f55df8d79 100644 --- a/dasharo-security/secure-boot.robot +++ b/dasharo-security/secure-boot.robot @@ -25,7 +25,7 @@ Suite Setup Run Keywords ... AND ... Skip If not ${SECURE_BOOT_SUPPORT} Secure Boot is not supported ... AND -... Mount USB Disk Image ${TEST_DATA_DIR}/secure-boot/sb_test_data.img +... Run Keyword If "${DUT_CONNECTION_METHOD}" != "Telnet" Mount USB Disk Image ${TEST_DATA_DIR}/secure-boot/sb_test_data.img file TRUE ... AND ... Restore Secure Boot Defaults Suite Teardown Run Keywords @@ -128,11 +128,11 @@ SBO002.002 UEFI Secure Boot (Windows) # keywords and menu layout changes. # -SBO003.001 Attempt to boot file with the correct key from Shell (firmware) - [Documentation] This test verifies that Secure Boot allows booting - ... a signed file with a correct key. - Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} SBO003.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SBO003.001 not supported +SBO003.001 Attempt to boot file with the correct key from Boot Maintenance Manager (firmware) + [Documentation] This test verifies that Secure Boot allows booting a + ... signed file with a correct key. + Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} SBO004.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SBO004.001 not supported Power On ${sb_menu}= Enter Secure Boot Menu And Return Construction Enable Secure Boot ${sb_menu} @@ -142,17 +142,18 @@ SBO003.001 Attempt to boot file with the correct key from Shell (firmware) ${sb_menu}= Get Secure Boot Menu Construction ${advanced_menu}= Enter Advanced Secure Boot Keys Management And Return Construction ${sb_menu} Enter Enroll DB Signature Using File In DB Options ${advanced_menu} - Enter Volume In File Explorer SB_TEST - Select File In File Explorer good_keys_DB.cer + Enter Volume In File Explorer BAD_INFLUE + Select File In File Explorer cert_good.der # Save Changes And Reset # Changes to Secure Boot menu take action immediately, so we can just reset Tianocore Reset System - Enter UEFI Shell - ${out}= Execute File In UEFI Shell good_keys_hello.efi - Should Contain ${out} Hello, world! + Enter Boot From File + Enter Volume In File Explorer BAD_INFLUE + Execute File In File Explorer hello-dasharo-signed-good.efi + Read From Terminal Until ${HELLO_EFI_STRING} -SBO004.001 Attempt to boot file without the key from Shell (firmware) +SBO004.001 Attempt to boot file without the key from Boot Maintenance Manager (firmware) [Documentation] This test verifies that Secure Boot blocks booting a file ... without a key. Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} SBO004.001 not supported @@ -164,11 +165,13 @@ SBO004.001 Attempt to boot file without the key from Shell (firmware) # Save Changes And Reset # Changes to Secure Boot menu takes action immediately, so we can just reset Tianocore Reset System - Enter UEFI Shell - ${out}= Execute File In UEFI Shell not_signed_hello.efi - Should Contain ${out} Access Denied -SBO005.001 Attempt to boot file with the wrong-signed key from Shell (firmware) + Enter Boot From File + Enter Volume In File Explorer BAD_INFLUE + Execute File In File Explorer hello-dasharo.efi + Read From Terminal Until ${SB_ERROR_STRING} + +SBO005.001 Attempt to boot file with the wrong-signed key from Boot Maintenance Manager (firmware) [Documentation] This test verifies that Secure Boot disallows booting ... a signed file with a wrong-signed key. Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} SBO005.001 not supported @@ -180,9 +183,11 @@ SBO005.001 Attempt to boot file with the wrong-signed key from Shell (firmware) # Save Changes And Reset # Changes to Secure Boot menu takes action immediately, so we can just reset Tianocore Reset System - Enter UEFI Shell - ${out}= Execute File In UEFI Shell bad_keys_hello.efi - Should Contain ${out} Access Denied + + Enter Boot From File + Enter Volume In File Explorer BAD_INFLUE + Execute File In File Explorer hello-dasharo-signed-bad.efi + Read From Terminal Until ${SB_ERROR_STRING} SBO006.001 Reset Secure Boot Keys option availability (firmware) [Documentation] This test verifies that the Reset Secure Boot Keys @@ -215,15 +220,16 @@ SBO007.001 Attempt to boot the file after restoring keys to default (firmware) ${sb_menu}= Get Secure Boot Menu Construction ${advanced_menu}= Enter Advanced Secure Boot Keys Management And Return Construction ${sb_menu} Enter Enroll DB Signature Using File In DB Options ${advanced_menu} - Enter Volume In File Explorer SB_TEST - Select File In File Explorer good_keys_DB.cer + Enter Volume In File Explorer BAD_INFLUE + Select File In File Explorer cert_good.der # Save Changes And Reset # Changes to Secure Boot menu take action immediately, so we can just reset Tianocore Reset System - Enter UEFI Shell - ${out}= Execute File In UEFI Shell good_keys_hello.efi - Should Contain ${out} Hello, world! + Enter Boot From File + Enter Volume In File Explorer BAD_INFLUE + Execute File In File Explorer hello-dasharo-signed-good.efi + Read From Terminal Until ${HELLO_EFI_STRING} Power On ${sb_menu}= Enter Secure Boot Menu And Return Construction @@ -233,9 +239,10 @@ SBO007.001 Attempt to boot the file after restoring keys to default (firmware) # Changes to Secure Boot menu take action immediately, so we can just reset Tianocore Reset System - Enter UEFI Shell - ${out}= Execute File In UEFI Shell good_keys_hello.efi - Should Contain ${out} Access Denied + Enter Boot From File + Enter Volume In File Explorer BAD_INFLUE + Execute File In File Explorer hello-dasharo-signed-good.efi + Read From Terminal Until ${SB_ERROR_STRING} SBO008.001 Attempt to enroll the key in the incorrect format (firmware) [Documentation] This test verifies that it is impossible to load @@ -251,8 +258,8 @@ SBO008.001 Attempt to enroll the key in the incorrect format (firmware) ${sb_menu}= Get Secure Boot Menu Construction ${advanced_menu}= Enter Advanced Secure Boot Keys Management And Return Construction ${sb_menu} Enter Enroll DB Signature Using File In DB Options ${advanced_menu} - Enter Volume In File Explorer SB_TEST - Select File In File Explorer bad_format_DB.txt + Enter Volume In File Explorer BAD_INFLUE + Select File In File Explorer cert_fake.der Read From Terminal Until ERROR: Unsupported file type! diff --git a/lib/secure-boot-lib.robot b/lib/secure-boot-lib.robot index 1099bb4d35..c33f008a12 100644 --- a/lib/secure-boot-lib.robot +++ b/lib/secure-boot-lib.robot @@ -205,8 +205,17 @@ Enter Volume In File Explorer Press Key N Times 1 ${ENTER} END -Select File In File Explorer - [Documentation] Select the given file +Enter Boot From File + [Documentation] Navigates from Tianocore Setup Menu + ... to Boot Maintenance Manager and to Boot From File + ${setup_menu}= Enter Setup Menu Tianocore And Return Construction + ${boot_maintenance_mgr_menu}= Enter Submenu From Snapshot And Return Construction + ... ${setup_menu} + ... Boot Maintenance Manager + Enter Submenu From Snapshot ${boot_maintenance_mgr_menu} Boot From File + +Execute File In File Explorer + [Documentation] Execute the given file (with ENTER key) [Arguments] ${target_file} # 1. Select desired file ${files}= Get Submenu Construction @@ -214,6 +223,12 @@ Select File In File Explorer ${index}= Get Index Of Matching Option In Menu ${files} ${target_file} # FIXME: We must add 1 due to empty selecatble space in File Manager Press Key N Times And Enter ${index}+1 ${ARROW_DOWN} + +Select File In File Explorer + [Documentation] Select the given file + [Arguments] ${target_file} + # 1. Select desired file + Execute File In File Explorer ${target_file} # 2. Save Changes ${enroll_sig_menu}= Get Submenu Construction # Unselectable filename appears between options after file was selected diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index ec5e62a031..3142ec9f7a 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -31,6 +31,10 @@ ${SNIPEIT}= yes ${SEABIOS_BOOT_DEVICE}= ${EMPTY} ${CHECK_POWER_LED_SUPPORT}= ${TRUE} +# Hello, world! +${HELLO_EFI_STRING}= UEFI Hello, Dasharo Universe! +${SB_ERROR_STRING}= The image signature is invalid or missing! + # See: https://github.com/Dasharo/dasharo-issues/issues/614 ${LAPTOP_EC_SERIAL_WORKAROUND}= ${FALSE} From a6ba1153ffe11e043454adf3f4835ec25c4ba3c8 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Fri, 28 Mar 2025 11:58:37 +0100 Subject: [PATCH 214/416] secure-boot.robot Set Secure Boot State To Disabled tagged as private Tag robot:private added to the local keyword. Signed-off-by: Mateusz Maciejewski --- dasharo-security/secure-boot.robot | 1 + 1 file changed, 1 insertion(+) diff --git a/dasharo-security/secure-boot.robot b/dasharo-security/secure-boot.robot index 2f55df8d79..354a2d13fb 100644 --- a/dasharo-security/secure-boot.robot +++ b/dasharo-security/secure-boot.robot @@ -265,6 +265,7 @@ SBO008.001 Attempt to enroll the key in the incorrect format (firmware) *** Keywords *** Set Secure Boot State To Disabled + [Tags] robot:private Power On ${sb_menu}= Enter Secure Boot Menu And Return Construction Disable Secure Boot ${sb_menu} From 176b9777be76ec80b7d25fd00a7dddec8e4c65c0 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Fri, 28 Mar 2025 12:26:56 +0100 Subject: [PATCH 215/416] secure-boot.robot: DUT-via-Telnet condition removed from image mount lib/usb-hid-msc-lib.robot: added PiKVM & QEMU check in Mount USB Disk Image keyword. Signed-off-by: Mateusz Maciejewski --- dasharo-security/secure-boot.robot | 2 +- lib/usb-hid-msc-lib.robot | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/dasharo-security/secure-boot.robot b/dasharo-security/secure-boot.robot index 354a2d13fb..c8bd6235c0 100644 --- a/dasharo-security/secure-boot.robot +++ b/dasharo-security/secure-boot.robot @@ -25,7 +25,7 @@ Suite Setup Run Keywords ... AND ... Skip If not ${SECURE_BOOT_SUPPORT} Secure Boot is not supported ... AND -... Run Keyword If "${DUT_CONNECTION_METHOD}" != "Telnet" Mount USB Disk Image ${TEST_DATA_DIR}/secure-boot/sb_test_data.img file TRUE +... Mount USB Disk Image ${TEST_DATA_DIR}/secure-boot/sb_test_data.img file TRUE ... AND ... Restore Secure Boot Defaults Suite Teardown Run Keywords diff --git a/lib/usb-hid-msc-lib.robot b/lib/usb-hid-msc-lib.robot index cbfece307d..3bbeae1c8e 100644 --- a/lib/usb-hid-msc-lib.robot +++ b/lib/usb-hid-msc-lib.robot @@ -23,6 +23,12 @@ Mount USB Disk Image [Documentation] Mounts USB disk image - either from URL or from local file. [Arguments] ${img_source} ${upload_type}=file ${required}=${TRUE} + # FXIME: Currently works only for QEMU and PiKVM. Remove when support for + # other methods is added. + IF "${MANUFACTURER}" != "QEMU" or "${DUT_CONNECTION_METHOD}" != "pikvm" + RETURN + END + # TODO:: Move to interface approach, not IF/ELSE tree IF "${upload_type}" == "file" ${img_dir} ${img_name}= Split Path ${img_source} From 5c4207782da844e3a237068fc90bd8a59602873c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Mar 2025 19:22:40 +0100 Subject: [PATCH 216/416] os-config/ansible: Add ansible-playbook config files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- os-config/ansible/linux-packages-playbook.yaml | 18 ++++++++++++++++++ os-config/ansible/vars/201-packages.yaml | 7 +++++++ os-config/ansible/vars/202-packages.yaml | 7 +++++++ 3 files changed, 32 insertions(+) create mode 100644 os-config/ansible/linux-packages-playbook.yaml create mode 100644 os-config/ansible/vars/201-packages.yaml create mode 100644 os-config/ansible/vars/202-packages.yaml diff --git a/os-config/ansible/linux-packages-playbook.yaml b/os-config/ansible/linux-packages-playbook.yaml new file mode 100644 index 0000000000..2794e72c18 --- /dev/null +++ b/os-config/ansible/linux-packages-playbook.yaml @@ -0,0 +1,18 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +- name: Create a file named "tmp" in the home directory with `Hello World` + hosts: host + become: true + tasks: + - name: Load package names + ansible.builtin.include_vars: "{{os_id}}-packages.yaml" + + - name: Install packages + ansible.builtin.package: + name: + - "{{package_lm_sensors}}" + - "{{package_flashrom}}" + - "{{package_libpci_dev}}" + state: present diff --git a/os-config/ansible/vars/201-packages.yaml b/os-config/ansible/vars/201-packages.yaml new file mode 100644 index 0000000000..0319f295c0 --- /dev/null +++ b/os-config/ansible/vars/201-packages.yaml @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +package_lm_sensors: lm-sensors +package_flashrom: flashrom +package_libpci_dev: libpci-dev diff --git a/os-config/ansible/vars/202-packages.yaml b/os-config/ansible/vars/202-packages.yaml new file mode 100644 index 0000000000..fe9ba08767 --- /dev/null +++ b/os-config/ansible/vars/202-packages.yaml @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +package_lm_sensors: lm-sensors +package_flashrom: flashrom +package_libpci_dev: pciutils-devel From 2c8f7f4ac270aae10efc55c8bf52907c5b3407b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Mar 2025 19:25:56 +0100 Subject: [PATCH 217/416] platform-configs/include/default.robot: Add use-ansible variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- platform-configs/include/default.robot | 4 +++- platform-configs/novacustom-ns50mu.robot | 2 +- platform-configs/novacustom-v540tu.robot | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 3142ec9f7a..47f23dca51 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -280,10 +280,12 @@ ${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 5 ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}= NetworkBoot ${ETH_PORTS}= ${EMPTY} -${TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} +@{TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} ${DEFAULT_BOOT_OS_ID}= ${ENV_ID_UBUNTU} ${BOOTED_OS_ID}= ${DEFAULT_BOOT_OS_ID} +${USE_ANSIBLE}= ${TRUE} + *** Keywords *** Power On Default diff --git a/platform-configs/novacustom-ns50mu.robot b/platform-configs/novacustom-ns50mu.robot index 81adf190c0..b05ed30ee7 100644 --- a/platform-configs/novacustom-ns50mu.robot +++ b/platform-configs/novacustom-ns50mu.robot @@ -30,4 +30,4 @@ ${FW_NO_EC_SYNC_VERSION}= v1.5.1 ${EC_NO_SYNC_VERSION}= 2023-10-31_f148431 ${POWER_CTRL}= none -${TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} +@{TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} diff --git a/platform-configs/novacustom-v540tu.robot b/platform-configs/novacustom-v540tu.robot index 3e60de18d2..8cda42b29b 100644 --- a/platform-configs/novacustom-v540tu.robot +++ b/platform-configs/novacustom-v540tu.robot @@ -19,7 +19,7 @@ ${OPTIONS_LIB}= options-lib_dcu ${POWER_CTRL}= none ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${FALSE} -${TESTED_LINUX_DISTROS}= ${ENV_ID_FEDORA} ${ENV_ID_UBUNTU} +@{TESTED_LINUX_DISTROS}= ${ENV_ID_FEDORA} ${ENV_ID_UBUNTU} # Benchmark reference data to nvidia model # performance From 034d0f1c95f6ad5f355c7c7192c0ad07648999a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 24 Mar 2025 19:26:37 +0100 Subject: [PATCH 218/416] util/basic-platform-setup: Add Run Ansible Playbooks kwd MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The kwd uses the configs at os-config/ansible to install packages required for the regression Signed-off-by: Filip Gołaś --- util/basic-platform-setup.robot | 43 ++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index 769c5c114b..3647f33494 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -18,8 +18,10 @@ Resource ../keys-and-keywords/ubuntu-keywords.robot # - document which setup/teardown keywords to use and what are they doing # - go threough them and make sure they are doing what the name suggest (not # exactly the case right now) -Suite Setup Run Keyword +Suite Setup Run Keywords ... Prepare Test Suite +... AND +... Run Ansible Playbooks Suite Teardown Run Keyword ... Log Out And Close Connection @@ -203,4 +205,43 @@ Power On Ex FAIL Power LED didn't light up! Setup needs manual verification, ... or Power State After Power Failure is set incorrectly. END +Run Ansible Playbooks + [Documentation] Runs all supported Ansible plabooks from os-config/ansible + ... according to ${TESTED_LINUX_DISTROS} + Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" + IF not ${USE_ANSIBLE} + Log To Console USE_ANSIBLE is set to ${USE_ANSIBLE}, skipping ansible setup. + RETURN + END + + FOR ${distro_id} IN @{TESTED_LINUX_DISTROS} + Log To Console "Ansible setup for ENV_ID ${distro_id}" + Power On + Boot System Or From Connected Disk ${distro_id} + # ansible will fail no matter the timeouts if host is unreachable + # (not booted yet) + Login To Linux + + # Create temporary inventory file for given platform and OS + ${inventory_file}= Catenate [host] \n + ... ${DEVICE_IP} ansible_user=${DEVICE_OS_USERNAME} + ... ansible_ssh_pass=${DEVICE_OS_PASSWORD} ansible_sudo_pass=${DEVICE_OS_PASSWORD} + ... ansible_ssh_common_args='-o StrictHostKeyChecking=no' + ${tmp_file_rand}= Generate Random String length=16 + ${tmp_inventory_filename}= Set Variable ansible_inventory_${tmp_file_rand}.yaml + Create File ${tmp_inventory_filename} ${inventory_file} + + # Prepare and run ansible-playbook command + ${ansible_cmd}= Catenate ansible-playbook + ... os-config/ansible/linux-packages-playbook.yaml + ... -i ${tmp_inventory_filename} + ... --extra-vars "os_id=${BOOTED_OS_ID}" + ... --timeout 300 + ${rc} ${out}= Run And Return Rc And Output ${ansible_cmd} + Log To Console ${out} + + # Cleanup + Remove File ${tmp_inventory_filename} + + Should Be Equal As Integers ${rc} 0 END From e8dec055e9c4d6abc03df88c222017462316bd14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 26 Mar 2025 09:48:27 +0100 Subject: [PATCH 219/416] Boot System Or...: Add fedora name mapping, like for ubuntu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/bios/menus.robot | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index 9edc590e9d..50a35c42cb 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -1186,6 +1186,9 @@ Boot System Or From Connected Disk # robocop: disable=too-long-keyword IF "${system_name}" == "ubuntu" ${system_name}= Set Variable Ubuntu END + IF "${system_name}" == "fedora" + ${system_name}= Set Variable Fedora + END IF "${system_name}" == "trenchboot" and "${MANUFACTURER}" == "QEMU" ${system_name}= Set Variable QEMU HARDDISK END From 883b96808613460a5528ff3fc856d6273e6f21eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 26 Mar 2025 09:49:37 +0100 Subject: [PATCH 220/416] 202-packages.yaml: Fix lm-sensors package name on fedora MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- os-config/ansible/vars/202-packages.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/os-config/ansible/vars/202-packages.yaml b/os-config/ansible/vars/202-packages.yaml index fe9ba08767..6c554a4e3d 100644 --- a/os-config/ansible/vars/202-packages.yaml +++ b/os-config/ansible/vars/202-packages.yaml @@ -2,6 +2,6 @@ # # SPDX-License-Identifier: Apache-2.0 -package_lm_sensors: lm-sensors +package_lm_sensors: lm_sensors package_flashrom: flashrom package_libpci_dev: pciutils-devel From b4084c520abdc99afbb7a80cf0fb059f8a709067 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 26 Mar 2025 09:50:24 +0100 Subject: [PATCH 221/416] basic-platform-setup: Ansible config: Dont save known hosts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SSH will sometimes not allow connecting to the same IP and port despite NoStrictKeyChecking. Not saving the known hosts is a better workaround Signed-off-by: Filip Gołaś --- util/basic-platform-setup.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index 3647f33494..bd8b5661f1 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -226,7 +226,7 @@ Run Ansible Playbooks ${inventory_file}= Catenate [host] \n ... ${DEVICE_IP} ansible_user=${DEVICE_OS_USERNAME} ... ansible_ssh_pass=${DEVICE_OS_PASSWORD} ansible_sudo_pass=${DEVICE_OS_PASSWORD} - ... ansible_ssh_common_args='-o StrictHostKeyChecking=no' + ... ansible_ssh_common_args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' ${tmp_file_rand}= Generate Random String length=16 ${tmp_inventory_filename}= Set Variable ansible_inventory_${tmp_file_rand}.yaml Create File ${tmp_inventory_filename} ${inventory_file} From 6fcff40ebf337e591d9c0a1d25ddb8b40037f7ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 26 Mar 2025 09:58:09 +0100 Subject: [PATCH 222/416] scripts/ci/qemu-run.sh: Allow attaching a second hard drive MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- scripts/ci/qemu-run.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/scripts/ci/qemu-run.sh b/scripts/ci/qemu-run.sh index 74b2c80066..4cff6223f3 100755 --- a/scripts/ci/qemu-run.sh +++ b/scripts/ci/qemu-run.sh @@ -24,7 +24,7 @@ fi HDD_PATH=${HDD_PATH:-qemu-data/hdd.qcow2} PULSE_SERVER=${PULSE_SERVER:-unix:/run/user/$(id -u)/pulse/native} -INSTALLER_PATH="qemu-data/ubuntu.iso" +INSTALLER_PATH="qemu-data/installer.iso" TPM_DIR="/tmp/osfv/tpm" TPM_SOCK="${TPM_DIR}/sock" @@ -59,11 +59,13 @@ This is the QEMU wrapper script for the Dasharo Open Source Firmware Validation. Environmental variables: DIR working directory, defaults to current working directory + HDD2_PATH optional path of the second hard drive to connect to the machine if + ACTION "os" is used. Relative to DIR Example usage: ./$(basename $0) vnc firmware ./$(basename $0) graphic os_install - DIR=/my/work/dir ./$(basename $0) graphic os + DIR=/my/work/dir HDD2_PATH=qemu-data/hdd2.qcow ./$(basename $0) graphic os EOF exit 0 @@ -155,6 +157,13 @@ QEMU_PARAMS_OS="-device ich9-intel-hda \ -netdev user,id=vmnic,hostfwd=tcp::5222-:22 \ -drive file=${HDD_PATH},if=ide" +if [[ -f ${HDD2_PATH} ]]; then + QEMU_PARAMS_OS+=" \ + -drive file=${HDD2_PATH},if=ide" + + echo "Using ${HDD2_PATH} as the second drive" +fi + QEMU_PARAMS_INSTALLER="-cdrom ${INSTALLER_PATH}" cd "$DIR" || exit From 064f30ffecb89801e52d8e7637943db585fe56af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 26 Mar 2025 10:03:09 +0100 Subject: [PATCH 223/416] docs/qemu.md: Add instructions on connecting to the machine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- docs/qemu.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/qemu.md b/docs/qemu.md index c964ee520c..ebad0cf69a 100644 --- a/docs/qemu.md +++ b/docs/qemu.md @@ -66,3 +66,20 @@ robot -b command_log.txt -v snipeit:no -L TRACE -v config:qemu -v rte_ip:127.0.0 > Note: You do not have to reserve QEMU via `snipeit` therefore `-v snipeit:no` > is being used. Use QEMU config `-v config:qemu`, and, as a RTE IP, use > `127.0.0.1`. Test suite `dts/dts-tests.robot` is shown here as an example. + +## Connecting to the machine + +The machine's serial port is available over Telnet on `127.0.0.1:1234`. +You can connect to the serial port using telnet: + +```bash +telnet 127.0.0.1 1234 +``` + +The network connection to the machine is available on `127.0.0.1:5222` +For example, you can connect to the machine via SSH, if the booted OS +supports it: + +```bash +ssh 127.0.0.1 -p 5222 +``` From e20c73cb5240aff9b5f9d518e681eb31f1acd455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 26 Mar 2025 17:27:45 +0100 Subject: [PATCH 224/416] os-config/ansible/vars: Add all packages required in osfv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit except for acpi_call on fedora, which is not in fedora repositories, has to be installed manually Signed-off-by: Filip Gołaś --- os-config/ansible/vars/201-packages.yaml | 15 +++++++++++++++ os-config/ansible/vars/202-packages.yaml | 15 +++++++++++++++ util/basic-platform-setup.robot | 2 +- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/os-config/ansible/vars/201-packages.yaml b/os-config/ansible/vars/201-packages.yaml index 0319f295c0..26c8657c34 100644 --- a/os-config/ansible/vars/201-packages.yaml +++ b/os-config/ansible/vars/201-packages.yaml @@ -4,4 +4,19 @@ package_lm_sensors: lm-sensors package_flashrom: flashrom +package_pciutils: pciutils package_libpci_dev: libpci-dev +package_alsa_utils: alsa-utils +package_cpuid: cpuid +package_dmidecode: dmidecode +package_acpi_call: acpi-call +package_libinput_tools: libinput-tools +package_iperf3: iperf3 +package_fwts: fwts +package_util_linux: util-linux +package_smartmontools: smartmontools +package_ffmeg: ffmpeg +package_usbutils: usbutils +package_tpm2_tools: tpm2-tools +package_ethtool: ethtool +package_stress_ng: stress-ng diff --git a/os-config/ansible/vars/202-packages.yaml b/os-config/ansible/vars/202-packages.yaml index 6c554a4e3d..aa6211a2a4 100644 --- a/os-config/ansible/vars/202-packages.yaml +++ b/os-config/ansible/vars/202-packages.yaml @@ -4,4 +4,19 @@ package_lm_sensors: lm_sensors package_flashrom: flashrom +package_pciutils: pciutils package_libpci_dev: pciutils-devel +package_alsa_utils: alsa-utils +package_cpuid: cpuid +package_dmidecode: dmidecode +package_acpi_call: bash # TODO, not available in dnf? +package_libinput_tools: libinput-utils +package_iperf3: iperf3 +package_fwts: fwts +package_util_linux: util-linux +package_smartmontools: smartmontools +package_ffmeg: ffmpeg +package_usbutils: usbutils +package_tpm2_tools: tpm2-tools +package_ethtool: ethtool +package_stress_ng: stress-ng diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index bd8b5661f1..aed8f8f2dd 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -235,7 +235,7 @@ Run Ansible Playbooks ${ansible_cmd}= Catenate ansible-playbook ... os-config/ansible/linux-packages-playbook.yaml ... -i ${tmp_inventory_filename} - ... --extra-vars "os_id=${BOOTED_OS_ID}" + ... --extra-vars "os_id=${distro_id}" ... --timeout 300 ${rc} ${out}= Run And Return Rc And Output ${ansible_cmd} Log To Console ${out} From e1f7bc08bd26cc31e64c29d5ee9e75e391f4e00e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 26 Mar 2025 17:29:36 +0100 Subject: [PATCH 225/416] os-config/ansible/os-specific-tasks: Add files for os specific tasks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit that will only be run on the os with the ID in the name of the file Signed-off-by: Filip Gołaś --- os-config/ansible/os-specific-tasks/201.yaml | 3 +++ os-config/ansible/os-specific-tasks/202.yaml | 14 ++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 os-config/ansible/os-specific-tasks/201.yaml create mode 100644 os-config/ansible/os-specific-tasks/202.yaml diff --git a/os-config/ansible/os-specific-tasks/201.yaml b/os-config/ansible/os-specific-tasks/201.yaml new file mode 100644 index 0000000000..7dce9a28b4 --- /dev/null +++ b/os-config/ansible/os-specific-tasks/201.yaml @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 diff --git a/os-config/ansible/os-specific-tasks/202.yaml b/os-config/ansible/os-specific-tasks/202.yaml new file mode 100644 index 0000000000..2914c2c878 --- /dev/null +++ b/os-config/ansible/os-specific-tasks/202.yaml @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: 2024 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +- name: "Download acpi_call rpm package" + ansible.builtin.get_url: + url: https://github.com/MiMillieuh/acpi_call-fedora/releases/download/1.2.2-1/acpi_call-1.2.2-1.x86_64.rpm + dest: /tmp/acpi_call.rpm + +- name: "Install acpi_call rpm package" + ansible.builtin.dnf: + name: /tmp/acpi_call.rpm + state: present + disable_gpg_check: true From de9e5d265951501b8852e26ff17e3523f96bb81a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 26 Mar 2025 17:30:23 +0100 Subject: [PATCH 226/416] linux-packages-playbook: Add installing all osfv required packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- os-config/ansible/linux-packages-playbook.yaml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/os-config/ansible/linux-packages-playbook.yaml b/os-config/ansible/linux-packages-playbook.yaml index 2794e72c18..7358b92c6d 100644 --- a/os-config/ansible/linux-packages-playbook.yaml +++ b/os-config/ansible/linux-packages-playbook.yaml @@ -2,7 +2,7 @@ # # SPDX-License-Identifier: Apache-2.0 -- name: Create a file named "tmp" in the home directory with `Hello World` +- name: Configure all installed OSes hosts: host become: true tasks: @@ -15,4 +15,18 @@ - "{{package_lm_sensors}}" - "{{package_flashrom}}" - "{{package_libpci_dev}}" + - "{{package_alsa_utils}}" + - "{{package_cpuid}}" + - "{{package_dmidecode}}" + - "{{package_acpi_call}}" + - "{{package_libinput_tools}}" + - "{{package_iperf3}}" + - "{{package_fwts}}" + - "{{package_util_linux}}" + - "{{package_smartmontools}}" + - "{{package_ffmeg}}" + - "{{package_usbutils}}" + - "{{package_tpm2_tools}}" state: present + - name: Include OS specific tasks + ansible.builtin.include_tasks: "os-specific-tasks/{{ os_id }}.yaml" From a64cc3212af2992c58af5acf05086364bd0a931c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Mar 2025 17:27:29 +0100 Subject: [PATCH 227/416] keywords.robot: Remove Detect Or Install Package usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- keywords.robot | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/keywords.robot b/keywords.robot index bc254d31bf..ce96501dca 100644 --- a/keywords.robot +++ b/keywords.robot @@ -886,7 +886,7 @@ Discharge The Battery Until Target Level In Linux [Documentation] Keyword stresses the CPU to discharge the battery until ... the target charge level is reached. [Arguments] ${target} - Detect Or Install Package stress-ng + WHILE True ${out}= Execute Command In Terminal cat /sys/class/power_supply/BAT0/capacity IF ${out} <= ${target} BREAK @@ -1349,11 +1349,7 @@ Clone Git Repository ELSE ${repo_path}= Extract Repository Name From URL ${repo_url} END - ${is_git_installed}= Check If Package Is Installed git - IF ${is_git_installed} != True - ${out_install}= Execute Command In Terminal apt install -y git - Should Not Contain ${out_install} Failed - END + Execute Command In Terminal rm -rf ${repo_path} ${out_clone}= Execute Command In Terminal git clone ${repo_url} ${location} Should Contain ${out_clone} Receiving objects: 100% From e99de5e4e20ef6184237ec7c8298fd140b73e324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Mar 2025 17:27:58 +0100 Subject: [PATCH 228/416] dasharo-compat: Remove Detect Or Install Package usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../apu-configuration-menu.robot | 4 +-- dasharo-compatibility/audio-subsystem.robot | 2 +- dasharo-compatibility/cpu-cores-count.robot | 24 ++++++++--------- dasharo-compatibility/dmidecode.robot | 2 +- dasharo-compatibility/ec-and-super-IO.robot | 27 ++++++++++--------- dasharo-compatibility/network-speed.robot | 2 -- dasharo-compatibility/nvidia.robot | 5 ++-- .../platform-hibernation-and-resume.robot | 3 +-- .../platform-suspend-and-resume.robot | 2 +- dasharo-compatibility/sata-detect.robot | 1 - dasharo-compatibility/usb-camera.robot | 6 ++--- .../usb-hid-and-msc-support.robot | 2 +- .../usb-type-c-semiauto.robot | 2 -- .../wifi-bluetooth-support.robot | 6 ++--- 14 files changed, 40 insertions(+), 48 deletions(-) diff --git a/dasharo-compatibility/apu-configuration-menu.robot b/dasharo-compatibility/apu-configuration-menu.robot index 543b8270b7..ee6365b5e1 100644 --- a/dasharo-compatibility/apu-configuration-menu.robot +++ b/dasharo-compatibility/apu-configuration-menu.robot @@ -134,7 +134,7 @@ APU006.001 Check whether disabling "Enable PCIe power management features" disab Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package pciutils + ${aspm_check}= Execute Command In Terminal ... echo -n `lspci -s 00:02 -vv | grep "ASPM Disabled" | wc -l` Should Be True 3 <= ${aspm_check} <= 5 @@ -148,7 +148,7 @@ APU006.002 Check whether enabling "Enable PCIe power management features" enable Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package pciutils + ${aspm_check}= Execute Command In Terminal ... echo -n `lspci -s 00:02 -vv | grep "ASPM L1 Enabled" | wc -l` Should Be True 3 <= ${aspm_check} <= 5 diff --git a/dasharo-compatibility/audio-subsystem.robot b/dasharo-compatibility/audio-subsystem.robot index 54650f222e..601d922c1b 100644 --- a/dasharo-compatibility/audio-subsystem.robot +++ b/dasharo-compatibility/audio-subsystem.robot @@ -32,7 +32,7 @@ AUD001.001 Audio subsystem detection (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package alsa-utils + ${out}= Execute Linux Command cat /sys/class/sound/card0/hwC0D*/chip_name Should Not Be Empty ... ${DEVICE_AUDIO1} diff --git a/dasharo-compatibility/cpu-cores-count.robot b/dasharo-compatibility/cpu-cores-count.robot index dae2b87815..99dad87c1b 100644 --- a/dasharo-compatibility/cpu-cores-count.robot +++ b/dasharo-compatibility/cpu-cores-count.robot @@ -37,7 +37,7 @@ CCC001.001 Check core count with HT disabled (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package util-linux + ${out}= Get Threads Per Core Should Contain ${out} 1 @@ -48,7 +48,7 @@ CCC002.001 Check core count with HT enabled Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package util-linux + ${out}= Get Threads Per Core Should Contain ${out} ${DEF_THREADS_PER_CORE} @@ -62,7 +62,7 @@ CCC003.001 Check core count (HT Enabled, P: All, E: 0) (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package cpuid + ${p_cores}= Get P Cores Count ${e_cores}= Get E Cores Count ${expected_p_cores}= Evaluate ${DEF_THREADS_PER_CORE} * ${CPU_P_CORES_MAX} @@ -79,7 +79,7 @@ CCC004.001 Check core count (HT Enabled, P: All, E: All) (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package cpuid + ${p_cores}= Get P Cores Count ${e_cores}= Get E Cores Count ${expected_p_cores}= Evaluate ${DEF_THREADS_PER_CORE} * ${CPU_P_CORES_MAX} @@ -97,7 +97,7 @@ CCC005.001 Check core count (HT Disabled, P: All, E: 0) (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package cpuid + ${p_cores}= Get P Cores Count ${e_cores}= Get E Cores Count Should Be Equal As Integers ${p_cores} ${CPU_P_CORES_MAX} @@ -114,7 +114,7 @@ CCC006.001 Check core count (HT Disabled, P: All, E: 0) (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package cpuid + ${p_cores}= Get P Cores Count ${e_cores}= Get E Cores Count Should Be Equal As Integers ${p_cores} ${CPU_P_CORES_MAX} @@ -130,7 +130,7 @@ CCC007.001 Check core count (HT Enabled, P: 1, E: A) (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package cpuid + ${p_cores}= Get P Cores Count ${e_cores}= Get E Cores Count ${expected_p_cores}= Evaluate ${DEF_THREADS_PER_CORE} * 1 @@ -148,7 +148,7 @@ CCC008.001 Check core count (HT Disabled, P: 1, E: A) (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package cpuid + ${p_cores}= Get P Cores Count ${e_cores}= Get E Cores Count Should Be Equal As Integers ${p_cores} 1 @@ -166,7 +166,7 @@ CCC009.001 Check core count (HT Enabled, P: 1, E: 1) (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package cpuid + ${p_cores}= Get P Cores Count ${e_cores}= Get E Cores Count ${expected_p_cores}= Evaluate ${DEF_THREADS_PER_CORE} * 1 @@ -185,7 +185,7 @@ CCC010.001 Check core count (HT Disabled, P: 1, E: 1) (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package cpuid + ${p_cores}= Get P Cores Count ${e_cores}= Get E Cores Count Should Be Equal As Integers ${p_cores} 1 @@ -202,7 +202,7 @@ CCC011.001 Check core count (HT Enabled, P: A, E: 1) (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package cpuid + ${p_cores}= Get P Cores Count ${e_cores}= Get E Cores Count ${expected_p_cores}= Evaluate ${DEF_THREADS_PER_CORE} * ${CPU_P_CORES_MAX} @@ -220,7 +220,7 @@ CCC012.001 Check core count (HT Disabled, P: A, E: 1) (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package cpuid + ${p_cores}= Get P Cores Count ${e_cores}= Get E Cores Count ${expected_p_cores}= Evaluate ${CPU_P_CORES_MAX} diff --git a/dasharo-compatibility/dmidecode.robot b/dasharo-compatibility/dmidecode.robot index 79c653875f..3321c26786 100644 --- a/dasharo-compatibility/dmidecode.robot +++ b/dasharo-compatibility/dmidecode.robot @@ -91,7 +91,7 @@ Get SMBIOS Values Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package dmidecode + ${out}= Execute Linux Command dmidecode -t bios Set Suite Variable $DMI_BIOS ${out} ${out}= Execute Linux Command dmidecode -t system diff --git a/dasharo-compatibility/ec-and-super-IO.robot b/dasharo-compatibility/ec-and-super-IO.robot index 0ad922685e..89c2d75746 100644 --- a/dasharo-compatibility/ec-and-super-IO.robot +++ b/dasharo-compatibility/ec-and-super-IO.robot @@ -32,7 +32,7 @@ ECR001.001 Battery monitoring - charge level in OS (Ubuntu) Power On Login To Linux Switch To Root User - Detect Or Install Package acpi-call + Turn On ACPI CALL Module In Linux Check Charge Level In Linux Exit From Root User @@ -52,7 +52,7 @@ ECR002.001 Battery monitoring - charging state in OS (Ubuntu) Power On Login To Linux Switch To Root User - Detect Or Install Package acpi-call + Turn On ACPI CALL Module In Linux Check Charging State In Linux Exit From Root User @@ -74,8 +74,7 @@ ECR003.001 Touchpad in OS - (Ubuntu) Power On Login To Linux Switch To Root User - Detect Or Install Package libinput-tools - Detect Or Install Package acpi-call + Turn On ACPI CALL Module In Linux Device Detection In Linux Touchpad Exit From Root User @@ -135,7 +134,7 @@ ECR014.001 Keyboard (function key: brightness down) in OS (Ubuntu) Power On Login To Linux Switch To Root User - Detect Or Install Package acpi-call + Turn On ACPI CALL Module In Linux ${max_brightness}= Get Maximum Brightness In Linux Set Brightness In Linux ${max_brightness} @@ -153,7 +152,7 @@ ECR015.001 Keyboard (function key: brightness up) in OS (Ubuntu) Power On Login To Linux Switch To Root User - Detect Or Install Package acpi-call + Turn On ACPI CALL Module In Linux Set Brightness In Linux 0 ${brightness1}= Get Current Brightness In Linux @@ -172,16 +171,16 @@ ECR016.001 Keyboard (function key: camera on/off) in OS (Ubuntu) Power On Login To Linux Switch To Root User - Detect Or Install Package acpi-call + Turn On ACPI CALL Module In Linux ${out}= List Devices In Linux usb - Should Contain ${out} Camera + Should Contain Any ${out} Camera BisonCam Toggle Camera In Linux ${out}= List Devices In Linux usb - Should Not Contain ${out} Camera + Should Not Contain Any ${out} Camera BisonCam Toggle Camera In Linux ${out}= List Devices In Linux usb - Should Contain ${out} Camera + Should Contain Any ${out} Camera BisonCam Exit From Root User ECR017.001 Keyboard (function key: flight mode) in OS (Ubuntu) @@ -193,7 +192,7 @@ ECR017.001 Keyboard (function key: flight mode) in OS (Ubuntu) Power On Login To Linux Switch To Root User - Detect Or Install Package acpi-call + Turn On ACPI CALL Module In Linux ${wifi_status}= Get WiFi Block Status ${bt_status}= Get Bluetooth Block Status @@ -217,7 +216,7 @@ ECR017.001 Keyboard (function key: flight mode) in OS (Ubuntu) # Power On # Login to Linux # Switch to root user -# Detect or Install Package acpi-call +# # Turn On ACPI_CALL module in Linux # Enter sleep mode in Linux # Wake from sleep mode in Linux @@ -230,7 +229,7 @@ ECR019.001 Buttons (button: power) in OS (Ubuntu) Power On Login To Linux Switch To Root User - Detect Or Install Package acpi-call + Turn On ACPI CALL Module In Linux Device Detection In Linux Power Exit From Root User @@ -238,6 +237,7 @@ ECR019.001 Buttons (button: power) in OS (Ubuntu) ECR020.001 Charging until 98% level in OS (Ubuntu) [Documentation] Check whether the DUT stops charging the battery when the ... 98% threshold is reached. + Skip If '${POWER_CTRL}' != 'sonoff' ECR020.001 not supported IF not ${EC_AND_SUPER_IO_SUPPORT} SKIP ECR020.001 not supported IF not ${TESTS_IN_UBUNTU_SUPPORT} SKIP ECR020.001 not supported Power On @@ -251,6 +251,7 @@ ECR020.001 Charging until 98% level in OS (Ubuntu) ECR021.001 Not charging between 95% and 98% in OS (Ubuntu) [Documentation] Check whether the DUT does not charge the battery when ... the charge level is between 95% and 98%. + Skip If '${POWER_CTRL}' != 'sonoff' ECR021.001 not supported IF not ${EC_AND_SUPER_IO_SUPPORT} SKIP ECR021.001 not supported IF not ${TESTS_IN_UBUNTU_SUPPORT} SKIP ECR021.001 not supported Power On diff --git a/dasharo-compatibility/network-speed.robot b/dasharo-compatibility/network-speed.robot index 7174144f6e..a3c1905003 100644 --- a/dasharo-compatibility/network-speed.robot +++ b/dasharo-compatibility/network-speed.robot @@ -30,7 +30,6 @@ ETHPERF001.001 Check Performance of 2.5G Wired Network Interface (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package iperf3 ${eth_1}= Get From List ${ETH_PERF_PAIR_2_G} 0 ${eth_2}= Get From List ${ETH_PERF_PAIR_2_G} 1 @@ -44,7 +43,6 @@ ETHPERF002.001 Check Performance of 10G Wired Network Interface (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package iperf3 ${eth_1}= Get From List ${ETH_PERF_PAIR_10_G} 0 ${eth_2}= Get From List ${ETH_PERF_PAIR_10_G} 1 diff --git a/dasharo-compatibility/nvidia.robot b/dasharo-compatibility/nvidia.robot index 35e1478f2c..5de15a0f21 100644 --- a/dasharo-compatibility/nvidia.robot +++ b/dasharo-compatibility/nvidia.robot @@ -32,7 +32,7 @@ NVI001.001 NVIDIA Graphics detect (Ubuntu) Power On Login To Linux Switch To Root User - Detect Or Install Package pciutils + ${out}= Execute Linux Command lspci | grep -i nvidia | cat Should Contain Any ${out} 3D controller: NVIDIA Corporation VGA compatible controller: NVIDIA Corporation Exit From Root User @@ -53,7 +53,6 @@ NVI002.001 NVIDIA Graphics power management (Ubuntu) Power On Login To Linux Switch To Root User - Detect Or Install Package mesa-utils - Detect Or Install Package pciutils + Check NVIDIA Power Management In Linux Exit From Root User diff --git a/dasharo-compatibility/platform-hibernation-and-resume.robot b/dasharo-compatibility/platform-hibernation-and-resume.robot index 61eff4bf1a..2edfdd292d 100644 --- a/dasharo-compatibility/platform-hibernation-and-resume.robot +++ b/dasharo-compatibility/platform-hibernation-and-resume.robot @@ -40,8 +40,7 @@ HIB001.001 Cyclic platform hibernation and resume (Ubuntu) Boot Operating System ubuntu Login To Linux Switch To Root User - Detect Or Install Package util-linux - Detect Or Install FWTS + FOR ${index} IN RANGE 0 ${HIBERNATION_ITERATIONS_NUMBER} ${is_hibernation_performed_correctly}= Perform Hibernation Test Using FWTS IF not ${is_hibernation_performed_correctly} diff --git a/dasharo-compatibility/platform-suspend-and-resume.robot b/dasharo-compatibility/platform-suspend-and-resume.robot index c4e97b31f0..572fe118bd 100644 --- a/dasharo-compatibility/platform-suspend-and-resume.robot +++ b/dasharo-compatibility/platform-suspend-and-resume.robot @@ -54,7 +54,7 @@ Cyclic Platform Suspend And Resume (Ubuntu) Login To Linux Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User - Detect Or Install FWTS + FOR ${index} IN RANGE 0 ${SUSPEND_ITERATIONS_NUMBER} ${is_suspend_performed_correctly}= Perform Suspend Test Using FWTS IF not ${is_suspend_performed_correctly} diff --git a/dasharo-compatibility/sata-detect.robot b/dasharo-compatibility/sata-detect.robot index dcf87e93e2..8e47c9361b 100644 --- a/dasharo-compatibility/sata-detect.robot +++ b/dasharo-compatibility/sata-detect.robot @@ -31,7 +31,6 @@ SAT001.002 SATA support in OS (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package smartmontools ${lsblk_out}= Execute Command In Terminal lsblk -d -o NAME -n @{disks}= Split String ${lsblk_out} \n diff --git a/dasharo-compatibility/usb-camera.robot b/dasharo-compatibility/usb-camera.robot index f02c340eb4..856e7dd4e1 100644 --- a/dasharo-compatibility/usb-camera.robot +++ b/dasharo-compatibility/usb-camera.robot @@ -33,8 +33,7 @@ CAM001.001 Integrated webcam (Ubuntu) Power On Login To Linux Switch To Root User - Detect Or Install Package ffmpeg - Detect Or Install Package libinput-tools + Device Detection In Linux Camera ${out0}= Execute Linux Command ffprobe /dev/video0 Should Contain ${out0} Input #0, video4linux2,v4l2, from '/dev/video0': @@ -61,8 +60,7 @@ CAM002.001 Integrated IR Camera (Ubuntu) Power On Login To Linux Switch To Root User - Detect Or Install Package ffmpeg - Detect Or Install Package libinput-tools + Device Detection In Linux Camera ${out0}= Execute Linux Command ffprobe /dev/video2 Should Contain diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index cccb2633e2..4ad1cf27bc 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -42,7 +42,7 @@ USB001.002 USB devices detected by OS (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package usbutils + ${out}= Execute Command In Terminal lsusb -v | grep bInterfaceClass IF ${HAS_KEYBOARD} Should Contain ${out} Human Interface Device IF ${HAS_USB_STORAGE} Should Contain ${out} Mass Storage diff --git a/dasharo-compatibility/usb-type-c-semiauto.robot b/dasharo-compatibility/usb-type-c-semiauto.robot index 5577e711bf..7fd8008bd7 100644 --- a/dasharo-compatibility/usb-type-c-semiauto.robot +++ b/dasharo-compatibility/usb-type-c-semiauto.robot @@ -383,7 +383,6 @@ Docking Station Detection After Suspend (Ubuntu) Login To Linux Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User - Detect Or Install FWTS Detect Docking Station In Linux ${docking_station_model} Set Global Variable ${FAILED_DETECTION} 0 FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_SUSPEND_ITERATIONS} @@ -533,7 +532,6 @@ Docking Station Detection After Suspend Then Hotplug (Ubuntu) Login To Linux Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User - Detect Or Install FWTS Run Keyword And Expect Error * does not contain * Detect Docking Station In Linux ${docking_station_model} Set Global Variable ${FAILED_DETECTION} 0 Perform Suspend Test Using FWTS diff --git a/dasharo-compatibility/wifi-bluetooth-support.robot b/dasharo-compatibility/wifi-bluetooth-support.robot index 8398384135..14b7bf1cad 100644 --- a/dasharo-compatibility/wifi-bluetooth-support.robot +++ b/dasharo-compatibility/wifi-bluetooth-support.robot @@ -38,7 +38,7 @@ WLE001.001 Wireless card detection (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package pciutils + ${out}= Execute Command In Terminal lspci | grep "Network controller:" Should Match ${out} *${WIFI_CARD_UBUNTU}* Log To Console The test passed for the ${WIFI_CARD_UBUNTU} wireless card @@ -74,7 +74,7 @@ WLE002.001 Wi-Fi scanning (Ubuntu) Login To Linux Switch To Root User Scan For Wi-Fi In Linux - Detect Or Install Package pciutils + ${current_card}= Execute Command In Terminal lspci | grep "Network controller: | awk -F": " '{print $2}" Exit From Root User Log To Console The test passed for the ${current_card} wireless card @@ -113,7 +113,7 @@ WLE003.001 Bluetooth scanning (Ubuntu) Login To Linux Switch To Root User Scan For Bluetooth In Linux - Detect Or Install Package pciutils + ${current_card}= Execute Command In Terminal lspci | grep "Network controller: | awk -F": " '{print $2}" Exit From Root User Log To Console The test passed for the ${current_card} wireless card From b654e0e21a1c66bfc6ef0ebbef91464e7d8b7120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Mar 2025 17:29:56 +0100 Subject: [PATCH 229/416] dasharo-stab: Remove Detect Or Install Package usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-stability/m2-wifi.robot | 10 +++++----- dasharo-stability/tpm-detect-heads.robot | 2 +- dasharo-stability/tpm-detect.robot | 4 ++-- dasharo-stability/usb-type-a-devices-detection.robot | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/dasharo-stability/m2-wifi.robot b/dasharo-stability/m2-wifi.robot index 0ee61d9cc3..8e642abbb7 100644 --- a/dasharo-stability/m2-wifi.robot +++ b/dasharo-stability/m2-wifi.robot @@ -33,7 +33,7 @@ Suite Teardown Run Keyword # ${out}= Execute Command In Terminal lspci | grep "Network controller:" # Should Match ${out} *${wifi_card_ubuntu}* # Scan for Wi-Fi in Linux -# Detect or install FWTS + # FOR ${INDEX} IN RANGE 0 ${stability_detection_reboot_iterations} # Power Cycle On # Boot operating system ubuntu @@ -57,7 +57,7 @@ SMW002.001 Wi-fi connection after warm boot (Ubuntu) ${out}= Execute Command In Terminal lspci | grep "Network controller:" Should Match ${out} *${WIFI_CARD_UBUNTU}* Scan For Wi-Fi In Linux - Detect Or Install FWTS + FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} Perform Warmboot Using Rtcwake Boot Operating System ubuntu @@ -81,7 +81,7 @@ SMW003.001 Wi-fi connection after reboot (Ubuntu) ${out}= Execute Command In Terminal lspci | grep "Network controller:" Should Match ${out} *${WIFI_CARD_UBUNTU}* Scan For Wi-Fi In Linux - Detect Or Install FWTS + FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} Execute Reboot Command Boot Operating System ubuntu @@ -127,11 +127,11 @@ Wi-fi Connection After Suspension (Ubuntu) Login To Linux Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User - Detect Or Install Package pciutils + ${out}= Execute Command In Terminal lspci | grep "Network controller:" Should Match ${out} *${WIFI_CARD_UBUNTU}* Scan For Wi-Fi In Linux - Detect Or Install FWTS + FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} Perform Suspend Test Using FWTS ${out}= Execute Command In Terminal lspci | grep "Network controller:" diff --git a/dasharo-stability/tpm-detect-heads.robot b/dasharo-stability/tpm-detect-heads.robot index 9ae9663115..2fb0ee8ca4 100644 --- a/dasharo-stability/tpm-detect-heads.robot +++ b/dasharo-stability/tpm-detect-heads.robot @@ -107,7 +107,7 @@ TPM001.002 TPM Support (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package tpm2-tools + ${out}= Execute Linux Command tpm2_pcrread Should Contain ${out} sha1: Should Contain ${out} sha256: diff --git a/dasharo-stability/tpm-detect.robot b/dasharo-stability/tpm-detect.robot index d4e523f9e0..1366f590ed 100644 --- a/dasharo-stability/tpm-detect.robot +++ b/dasharo-stability/tpm-detect.robot @@ -28,7 +28,7 @@ TPD003.001 Detect TPM after platform reboot (Ubuntu) Switch To Root User ${out}= List Devices In Linux pci Should Contain ${out} ${DEVICE_NVME_DISK} - Detect Or Install Package tpm2-tools + FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} Execute Reboot Command Boot System Or From Connected Disk ${ENV_ID_UBUNTU} @@ -51,7 +51,7 @@ TPD004.001 Detect TPM after platform suspend (Ubuntu) Switch To Root User ${out}= List Devices In Linux pci Should Contain ${out} ${DEVICE_NVME_DISK} - Detect Or Install Package tpm2-tools + FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} Perform Suspend Test Using FWTS ${out}= Execute Command In Terminal tpm2_pcrread diff --git a/dasharo-stability/usb-type-a-devices-detection.robot b/dasharo-stability/usb-type-a-devices-detection.robot index 7fb9b83242..5caf540529 100644 --- a/dasharo-stability/usb-type-a-devices-detection.robot +++ b/dasharo-stability/usb-type-a-devices-detection.robot @@ -58,7 +58,7 @@ SUD002.001 USB devices detection after warm boot (Ubuntu) Switch To Root User ${out}= List Devices In Linux usb Should Contain ${out} ${USB_DEVICE} - Detect Or Install FWTS + FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_WARMBOOT_ITERATIONS} Perform Warmboot Using Rtcwake Boot System Or From Connected Disk ${ENV_ID_UBUNTU} From ce1b78278a5ffc128b3dd015c394662b90472554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Mar 2025 17:30:38 +0100 Subject: [PATCH 230/416] dasharo-sec: Remove Detect Or Install Package usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-security/camera-switch.robot | 4 ++-- dasharo-security/measured-boot.robot | 2 +- dasharo-security/tpm2-commands.robot | 2 +- dasharo-security/wifi-bluetooth-switch.robot | 6 ++---- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/dasharo-security/camera-switch.robot b/dasharo-security/camera-switch.robot index aa02a8ccb4..bfadac73b6 100644 --- a/dasharo-security/camera-switch.robot +++ b/dasharo-security/camera-switch.robot @@ -33,7 +33,7 @@ CHS001.001 Check camera enablement Set UEFI Option EnableCamera ${TRUE} Login To Linux Switch To Root User - Detect Or Install Package usbutils + ${webcam}= Check The Presence Of Webcam Should Be True ${webcam} @@ -43,7 +43,7 @@ CHS002.001 Check camera disablement Set UEFI Option EnableCamera ${FALSE} Login To Linux Switch To Root User - Detect Or Install Package usbutils + ${webcam}= Check The Presence Of Webcam Should Not Be True ${webcam} diff --git a/dasharo-security/measured-boot.robot b/dasharo-security/measured-boot.robot index 875707f34a..1fce33d39b 100644 --- a/dasharo-security/measured-boot.robot +++ b/dasharo-security/measured-boot.robot @@ -305,6 +305,6 @@ Measured Boot Suite Setup Power On Boot Ubuntu And Login To Root Verify Presence Of TPM Via Sysfs - Detect Or Install Package tpm2-tools + # Disable service that adds dbx certificates which could interfere with tests Execute Command In Terminal systemctl disable secureboot-db.service diff --git a/dasharo-security/tpm2-commands.robot b/dasharo-security/tpm2-commands.robot index 4f8b7efe86..3113c4ce3f 100644 --- a/dasharo-security/tpm2-commands.robot +++ b/dasharo-security/tpm2-commands.robot @@ -270,7 +270,7 @@ TPM2 Suite Setup Login To Linux Switch To Root User Verify Presence Of TPM Via Sysfs - Detect Or Install Package tpm2-tools + ${passed}= Run Keyword And Return Status ... Check If SHA1 And SHA256 Banks Are Enabled IF not ${passed} diff --git a/dasharo-security/wifi-bluetooth-switch.robot b/dasharo-security/wifi-bluetooth-switch.robot index 657df77fc3..df56a8ea67 100644 --- a/dasharo-security/wifi-bluetooth-switch.robot +++ b/dasharo-security/wifi-bluetooth-switch.robot @@ -31,8 +31,7 @@ WBS001.001 Wifi and Bluetooth card power switch disabled (Ubuntu) Set UEFI Option EnableWifiBt ${FALSE} Login To Linux Switch To Root User - Detect Or Install Package pciutils - Detect Or Install Package usbutils + ${wifi}= Check The Presence Of WiFi Card Should Not Be True ${wifi} ${bt}= Check The Presence Of Bluetooth Card @@ -46,8 +45,7 @@ WBS002.001 Wifi and Bluetooth card power switch enabled (Ubuntu) Set UEFI Option EnableWifiBt ${TRUE} Login To Linux Switch To Root User - Detect Or Install Package pciutils - Detect Or Install Package usbutils + ${wifi}= Check The Presence Of WiFi Card Should Be True ${wifi} ${bt}= Check The Presence Of Bluetooth Card From b7b4fe1920788732a0924270f523b865fbfc54ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Mar 2025 17:31:25 +0100 Subject: [PATCH 231/416] dasharo-perf: Remove Detect Or Install Package usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/cpu-temperature.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dasharo-performance/cpu-temperature.robot b/dasharo-performance/cpu-temperature.robot index c8ae714652..cf17a7ee58 100644 --- a/dasharo-performance/cpu-temperature.robot +++ b/dasharo-performance/cpu-temperature.robot @@ -121,7 +121,7 @@ CPU Temperature Without Load (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package lm-sensors + Execute Command In Terminal sensors-detect --auto ${timer}= Convert To Integer 0 @{temperature_list}= Create List @@ -163,7 +163,7 @@ CPU Temperature After Stress Test (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Detect Or Install Package lm-sensors + Execute Command In Terminal sensors-detect --auto Stress Test ${TEMPERATURE_TEST_DURATION}s ${timer}= Convert To Integer 0 From 5714fa2cf83ea0f888f3c33557775194d6a00cab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Mar 2025 17:32:00 +0100 Subject: [PATCH 232/416] lib: Remove Detect Or Install Package usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/CPU-performance-lib.robot | 2 +- lib/sensors/sensors.robot | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/CPU-performance-lib.robot b/lib/CPU-performance-lib.robot index c3c5caa609..46f3e02202 100644 --- a/lib/CPU-performance-lib.robot +++ b/lib/CPU-performance-lib.robot @@ -89,7 +89,7 @@ Check CPU Frequency In Windows Stress Test [Documentation] Proceed with the stress test. [Arguments] ${time}=60s ${workers}=$(nproc) ${load_percent}=100 ${start_delay_seconds}=0 - Detect Or Install Package stress-ng + ${cmd}= Catenate $( ... pkill stress-ng; ... sleep ${start_delay_seconds}; diff --git a/lib/sensors/sensors.robot b/lib/sensors/sensors.robot index 149d105518..69d3e9cdce 100644 --- a/lib/sensors/sensors.robot +++ b/lib/sensors/sensors.robot @@ -36,7 +36,6 @@ Prepare Sensors END IF ${lm_sensors_used} == ${TRUE} - Detect Or Install Package lm-sensors Execute Command In Terminal sudo sensors-detect --auto END From 09951d7b6f123c477e24565a8d7810f35ca7cdf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Mar 2025 17:32:48 +0100 Subject: [PATCH 233/416] platform-configs: Remove Detect Or Install Package usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- platform-configs/include/novacustom-common.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index 36ba6b0960..ccd3f680d0 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -150,7 +150,7 @@ Configure Wake In Linux [Documentation] Keyword prepares platform for wake by platform specific ... wake method. # Enable wake by magic packet - Detect Or Install Package ethtool + Execute Linux Command ethtool -s ${WOL_INTERFACE} wol g Wake Up From cc7a1ea8ecc270f882dfac611186ff954209336d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Mar 2025 17:34:05 +0100 Subject: [PATCH 234/416] basic-platform-setup: Move Ansible setup to separate test case MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- util/basic-platform-setup.robot | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index aed8f8f2dd..dcf7d31281 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -18,10 +18,8 @@ Resource ../keys-and-keywords/ubuntu-keywords.robot # - document which setup/teardown keywords to use and what are they doing # - go threough them and make sure they are doing what the name suggest (not # exactly the case right now) -Suite Setup Run Keywords +Suite Setup Run Keyword ... Prepare Test Suite -... AND -... Run Ansible Playbooks Suite Teardown Run Keyword ... Log Out And Close Connection @@ -145,6 +143,11 @@ BPS007.001 RTE CMOS clear ... ignore_case=True ... msg=CMOS is invalid after reboot. Either the CMOS battery is not connected or the connection is wrong. Check DUT setup. +BPS008.001 Test dependencies + [Documentation] Ensure that all the dependencies for the tests are + ... installed on all supported OSes + Run Ansible Playbooks + *** Keywords *** Check If Empty From f6eb2649ca42c8aef838df927b823b6724c5b5a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Mar 2025 17:34:24 +0100 Subject: [PATCH 235/416] basic-platform-setup: Add skips for when the tests are not supported MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- util/basic-platform-setup.robot | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index dcf7d31281..734e2fd841 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -27,12 +27,16 @@ Suite Teardown Run Keyword *** Test Cases *** BPS001.001 Power Control - PSU ON and serial output [Documentation] Verifies if PSU can be turned ON and if the serial output can be read. + Skip If '${INITIAL_DUT_CONNECTION_METHOD}' == 'SSH' + Skip If '${POWER_CTRL}' == 'none' Power On ${result}= Wait For Serial Output Should Be True ${result} msg=Power On keyword failed BPS002.001 Power control - PSU OFF [Documentation] Verifies if PSU can be turned OFF + Skip If '${INITIAL_DUT_CONNECTION_METHOD}' == 'SSH' + Skip If '${POWER_CTRL}' == 'none' Power On ${result}= Wait For Serial Output Should Be True ${result} msg=Power On keyword failed @@ -46,6 +50,8 @@ BPS003.001 RTE Power On [Documentation] Verifies if Power Button can turn DUT ON/OFF. # TODO: do we have platforms in the lab that might not use # power/reset buttons? If so, we do not have flag for it. + Skip If '${INITIAL_DUT_CONNECTION_METHOD}' == 'SSH' + Skip If '${POWER_CTRL}' == 'none' Power On ${result}= Wait For Serial Output Should Be True ${result} msg=Power On keyword failed @@ -62,6 +68,8 @@ BPS003.001 RTE Power On BPS004.001 RTE Reset [Documentation] Verifies if reset button can reset the DUT. + Skip If '${INITIAL_DUT_CONNECTION_METHOD}' == 'SSH' + Skip If '${POWER_CTRL}' == 'none' Power On ${result}= Wait For Serial Output Should Be True ${result} msg=Power On keyword failed @@ -72,6 +80,7 @@ BPS004.001 RTE Reset BPS005.001 Boot to OS - Ubuntu [Documentation] This test verifies if platform can be booted to Ubunto and if correct credentials are set. + Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux @@ -86,16 +95,19 @@ BPS005.001 Boot to OS - Ubuntu BPS005.002 Boot to OS - Windows [Documentation] This test verifies if platform can be booted to Windows, if SSH server is enabled and if correct credentials are set. + Skip If not "${TESTS_IN_WINDOWS_SUPPORT}" Power On Login To Windows BPS006.001 External flashing [Documentation] This test verifies if the flash die can be detected. + Skip If '${FLASHING_METHOD}' != 'external' ${rc}= Rte Flash Probe Should Be Equal As Integers ${rc} 0 BPS006.002 Internal flashing [Documentation] This test verifies if flashrom can detect the die. + Skip If '${FLASHING_METHOD}' == 'none' Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux @@ -106,6 +118,7 @@ BPS006.002 Internal flashing BPS007.001 RTE CMOS clear [Documentation] This test verifies if CMOS clear works with the platform setup. + Skip If '${POWER_CTRL}' == 'none' # CMOS should be cleared when platform is cut off from power Rte Psu Off Rte Clear Cmos @@ -211,7 +224,7 @@ Power On Ex Run Ansible Playbooks [Documentation] Runs all supported Ansible plabooks from os-config/ansible ... according to ${TESTED_LINUX_DISTROS} - Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" + IF not ${USE_ANSIBLE} Log To Console USE_ANSIBLE is set to ${USE_ANSIBLE}, skipping ansible setup. RETURN From df803d6916c5c9fb4a7283a5322547069bea9871 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Mar 2025 17:43:56 +0100 Subject: [PATCH 236/416] basic-platform-setup: Remove downloading flashrom, reorder tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- util/basic-platform-setup.robot | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index 734e2fd841..3fbf3694dc 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -99,24 +99,28 @@ BPS005.002 Boot to OS - Windows Power On Login To Windows -BPS006.001 External flashing +BPS006.001 Ensure test dependencies + [Documentation] Ensure that all the dependencies for the tests are + ... installed on all supported OSes + Run Ansible Playbooks + +BPS007.001 External flashing [Documentation] This test verifies if the flash die can be detected. Skip If '${FLASHING_METHOD}' != 'external' ${rc}= Rte Flash Probe Should Be Equal As Integers ${rc} 0 -BPS006.002 Internal flashing +BPS007.002 Internal flashing [Documentation] This test verifies if flashrom can detect the die. Skip If '${FLASHING_METHOD}' == 'none' Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Flashrom ${out_flashrom}= Execute Command In Terminal flashrom -p internal Should Contain ${out_flashrom} Found chipset -BPS007.001 RTE CMOS clear +BPS008.001 RTE CMOS clear [Documentation] This test verifies if CMOS clear works with the platform setup. Skip If '${POWER_CTRL}' == 'none' # CMOS should be cleared when platform is cut off from power @@ -156,11 +160,6 @@ BPS007.001 RTE CMOS clear ... ignore_case=True ... msg=CMOS is invalid after reboot. Either the CMOS battery is not connected or the connection is wrong. Check DUT setup. -BPS008.001 Test dependencies - [Documentation] Ensure that all the dependencies for the tests are - ... installed on all supported OSes - Run Ansible Playbooks - *** Keywords *** Check If Empty From a08913c7f89031907d649aaee9c489cf15070958 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Mar 2025 18:16:43 +0100 Subject: [PATCH 237/416] scripts/regression.sh: Add automatic basic-platform-setup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Can be controlled using NO_SETUP environment variable Signed-off-by: Filip Gołaś --- scripts/regression.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/regression.sh b/scripts/regression.sh index 6a0765294a..271a83727f 100755 --- a/scripts/regression.sh +++ b/scripts/regression.sh @@ -18,6 +18,10 @@ fi check_test_station_variables +if [ -z "$NO_SETUP" ]; then + execute_robot "util/basic-platform-setup.robot" "${@}" +fi + execute_robot "dasharo-compatibility" "${@}" execute_robot "dasharo-security" "${@}" execute_robot "dasharo-performance" "${@}" From 6afa504dbf3a75d6291f5d2eb71f8c89c855a45d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Mar 2025 18:22:25 +0100 Subject: [PATCH 238/416] README.md: Describe the basic-platform-setup test suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index b7bc2d3970..5e229abb29 100644 --- a/README.md +++ b/README.md @@ -286,6 +286,17 @@ Example: running only minimal regression tests with given test ID and reduced ve 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. + ## Useful refactoring tools * [sherlock](https://github.com/MarketSquare/robotframework-sherlock) From 1f7f9ad558419bfd9c5626f603fb43d8dc666e71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 27 Mar 2025 18:31:30 +0100 Subject: [PATCH 239/416] robotidy after rebasing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit develop was not treated with a linter Signed-off-by: Filip Gołaś --- platform-configs/include/default.robot | 2 +- platform-configs/rpi-3b.robot | 2 +- util/basic-platform-setup.robot | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 47f23dca51..d419171c85 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -178,7 +178,7 @@ ${DCU_SERIAL_SUPPORT}= ${FALSE} ${ROMHOLE_SUPPORT}= ${FALSE} # Test module: dasharo-security -${TPM_SUPPORTED_VERSION}= ${None} +${TPM_SUPPORTED_VERSION}= ${NONE} ${TPM_EXPECTED_CHIP}= FILL_WITH_CORRECT_VALUE_BEFORE_TESTING ${VERIFIED_BOOT_SUPPORT}= ${FALSE} ${VERIFIED_BOOT_POPUP_SUPPORT}= ${FALSE} diff --git a/platform-configs/rpi-3b.robot b/platform-configs/rpi-3b.robot index 61ffa69c17..7ab6362c80 100644 --- a/platform-configs/rpi-3b.robot +++ b/platform-configs/rpi-3b.robot @@ -117,7 +117,7 @@ ${DEFAULT_POWER_STATE_AFTER_FAIL}= Powered Off ${ESP_SCANNING_SUPPORT}= ${FALSE} # Test module: dasharo-security -${TPM_SUPPORTED_VERSION}= ${None} +${TPM_SUPPORTED_VERSION}= ${NONE} ${VERIFIED_BOOT_SUPPORT}= ${FALSE} ${VERIFIED_BOOT_POPUP_SUPPORT}= ${FALSE} ${MEASURED_BOOT_SUPPORT}= ${FALSE} diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index 3fbf3694dc..44132d175f 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -220,6 +220,8 @@ Power On Ex FAIL Power LED didn't light up! Setup needs manual verification, ... or Power State After Power Failure is set incorrectly. END + END + Run Ansible Playbooks [Documentation] Runs all supported Ansible plabooks from os-config/ansible ... according to ${TESTED_LINUX_DISTROS} From 64d8ee62858a25623d6f9571b465a17ecbc91eb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 14:33:01 +0100 Subject: [PATCH 240/416] linux-packages-playbook: Add installing cb tools from osfv submodule MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- os-config/ansible/linux-packages-playbook.yaml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/os-config/ansible/linux-packages-playbook.yaml b/os-config/ansible/linux-packages-playbook.yaml index 7358b92c6d..9845312aed 100644 --- a/os-config/ansible/linux-packages-playbook.yaml +++ b/os-config/ansible/linux-packages-playbook.yaml @@ -2,13 +2,12 @@ # # SPDX-License-Identifier: Apache-2.0 -- name: Configure all installed OSes +- name: Common tasks hosts: host become: true tasks: - name: Load package names ansible.builtin.include_vars: "{{os_id}}-packages.yaml" - - name: Install packages ansible.builtin.package: name: @@ -28,5 +27,19 @@ - "{{package_usbutils}}" - "{{package_tpm2_tools}}" state: present + - name: Install coreboot tools files + ansible.builtin.copy: + src: "{{ item.src }}" + dest: /usr/bin/ + mode: 755 + loop: + - src: "./../../osfv-test-data/coreboot-tools/flashrom" + - src: "./../../osfv-test-data/coreboot-tools/cbmem" + - src: "./../../osfv-test-data/coreboot-tools/cbfstool" + +- name: OS specific tasks + hosts: host + become: true + tasks: - name: Include OS specific tasks ansible.builtin.include_tasks: "os-specific-tasks/{{ os_id }}.yaml" From d597cd270251bc7ac2d33cd237301d43bedba7a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 14:37:20 +0100 Subject: [PATCH 241/416] Remove manually installing coreboot tools from all files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/firmware-bulding-locally.robot | 1 - dasharo-security/bios-lock.robot | 3 +-- dasharo-security/early-boot-dma-protection.robot | 2 -- dasharo-security/smm-bios-write-protection.robot | 3 +-- dasharo-security/tpm-support.robot | 2 -- dasharo-security/verified-boot.robot | 1 - lib/cbmem.robot | 1 - lib/dcu.robot | 2 +- lib/options/options-lib_dcu.robot | 1 - lib/tpm.robot | 2 -- platform-configs/novacustom-v540tu.robot | 3 ++- platform-configs/protectli-vp2420.robot | 1 - util/basic-platform-setup.robot | 1 - 13 files changed, 5 insertions(+), 18 deletions(-) diff --git a/dasharo-compatibility/firmware-bulding-locally.robot b/dasharo-compatibility/firmware-bulding-locally.robot index 01a0e3cd46..2d39504070 100644 --- a/dasharo-compatibility/firmware-bulding-locally.robot +++ b/dasharo-compatibility/firmware-bulding-locally.robot @@ -43,7 +43,6 @@ FLB002.001 Flash locally built firmware (Ubuntu) Power On Login To Linux Switch To Root User - Get Flashrom Write Into Terminal flashrom -p internal -w ../coreboot/build/coreboot.rom --ifd -i bios ${flash_result}= Read From Terminal Until Prompt IF "Warning: Chip content is identical to the requested image." in """${flash_result}""" diff --git a/dasharo-security/bios-lock.robot b/dasharo-security/bios-lock.robot index 0362e24fb5..49cbf7a365 100644 --- a/dasharo-security/bios-lock.robot +++ b/dasharo-security/bios-lock.robot @@ -37,7 +37,7 @@ BLS001.001 BIOS lock support (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Flashrom + ${out_flashrom}= Execute Command In Terminal flashrom -p internal ${pr0}= Get Lines Matching Regexp ${out_flashrom} ^PR0: Warning: 0x.{8}-0x.{8} is read-only.$ Should Not Be Empty ${pr0} @@ -52,7 +52,6 @@ BLS002.001 BIOS lock support deactivation (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Flashrom ${out_flashrom}= Execute Command In Terminal flashrom -p internal ${pr0}= Get Lines Matching Regexp ${out_flashrom} ^PR0: Warning: 0x.{8}-0x.{8} is read-only.$ Should Be Empty ${pr0} diff --git a/dasharo-security/early-boot-dma-protection.robot b/dasharo-security/early-boot-dma-protection.robot index 4a35e4220a..de0fe32db5 100644 --- a/dasharo-security/early-boot-dma-protection.robot +++ b/dasharo-security/early-boot-dma-protection.robot @@ -42,7 +42,6 @@ EDP001.001 Enable early Boot DMA Protection support Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Cbmem ${cbmem_output}= Execute Command In Terminal cbmem -1 | grep --color=never DMA Should Contain ${cbmem_output} Successfully enabled VT-d PMR DMA protection @@ -61,6 +60,5 @@ EDP002.001 Disable early Boot DMA Protection support Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Cbmem ${cbmem_output}= Execute Command In Terminal cbmem -1 | grep --color=never DMA Should Not Contain ${cbmem_output} Successfully enabled VT-d PMR DMA protection diff --git a/dasharo-security/smm-bios-write-protection.robot b/dasharo-security/smm-bios-write-protection.robot index 0932f654f4..f79109fb9e 100644 --- a/dasharo-security/smm-bios-write-protection.robot +++ b/dasharo-security/smm-bios-write-protection.robot @@ -47,7 +47,7 @@ SMM001.001 SMM BIOS write protection enabling (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Flashrom + ${out_flashrom}= Execute Command In Terminal flashrom -p internal Should Contain ${out_flashrom} SMM protection is enabled @@ -71,7 +71,6 @@ SMM002.001 SMM BIOS write protection disabling (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Flashrom ${out_flashrom}= Execute Command In Terminal flashrom -p internal Should Not Contain ${out_flashrom} SMM protection is enabled Should Not Be Empty ${out_flashrom} diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index bf2fc03934..ac0a9bf0be 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -93,7 +93,6 @@ TPM003.001 Check TPM Physical Presence Interface (firmware) ... with cbmem within Ubuntu Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.001 not supported Prepare TPM Test On Ubuntu - Get Cbmem ${out}= Execute Command In Terminal cbmem -1 | grep PPI Should Contain ${out} PPI: Pending OS request Should Contain ${out} PPI: OS response @@ -136,5 +135,4 @@ Prepare TPM Test On Ubuntu Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Cbmem Verify Presence Of TPM Via Sysfs diff --git a/dasharo-security/verified-boot.robot b/dasharo-security/verified-boot.robot index f5de4aa80f..d00c011c35 100644 --- a/dasharo-security/verified-boot.robot +++ b/dasharo-security/verified-boot.robot @@ -265,7 +265,6 @@ Prepare Tools, Keys And Binaries Login To Linux Switch To Root User - Get Coreboot Tools Install Docker Packages Generate Verified Boot Keys Resign Existing Firmware Image With Generated Keys diff --git a/lib/cbmem.robot b/lib/cbmem.robot index 0dc4276ad0..1734a24ecf 100644 --- a/lib/cbmem.robot +++ b/lib/cbmem.robot @@ -8,7 +8,6 @@ Resource ../keywords.robot Get Boot Time From Cbmem [Documentation] Calculates boot time based on cbmem timestamps # fix for LT1000 and protectli platforms (output without tabs) - Get Cbmem ${out_cbmem}= Execute Command In Terminal cbmem -T Should Not Contain ... ${out_cbmem} diff --git a/lib/dcu.robot b/lib/dcu.robot index 611eddeec4..5229d0f63d 100644 --- a/lib/dcu.robot +++ b/lib/dcu.robot @@ -52,7 +52,7 @@ DCU Logo Set In File DCU Variable Read SMMSTORE [Documentation] Read the UEFI SMMSTORE to work on the UEFI options in it [Arguments] ${out_file} - Get Flashrom + Execute Command In Terminal flashrom -p internal -r coreboot.rom --fmap -i FMAP -i SMMSTORE &> /dev/null Execute Command In Terminal chmod 666 coreboot.rom SSHLibrary.Get File coreboot.rom ${out_file} diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index 7575c41b3d..63f72850ea 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -127,7 +127,6 @@ Make Sure That Flash Locks Are Disabled Power On Login To Linux Switch To Root User - Get Flashrom ${out_flashrom}= Execute Command In Terminal flashrom -p internal Should Not Contain ${out_flashrom} read-only diff --git a/lib/tpm.robot b/lib/tpm.robot index f8b2f6d009..7973b811ec 100644 --- a/lib/tpm.robot +++ b/lib/tpm.robot @@ -78,13 +78,11 @@ Validate Expected TPM Version Via Sysfs Validate Expected TPM Chip Via Cbmem Console Log [Documentation] Check that correct TPM chip is found while FW boots - Get Cbmem ${tpm_chip_found}= Execute Command In Terminal cbmem -1 | grep -i "Found TPM" Should Contain ${tpm_chip_found} ${TPM_EXPECTED_CHIP} Validate Expected TPM Version Via Cbmem TPM Eventlog [Documentation] Check if appropriate log is created by FW - Get Cbmem ${out}= Execute Command In Terminal cbmem -L IF '${TPM_SUPPORTED_VERSION}' == '1' Should Contain ${out} TCPA log diff --git a/platform-configs/novacustom-v540tu.robot b/platform-configs/novacustom-v540tu.robot index 8cda42b29b..b1564bd14b 100644 --- a/platform-configs/novacustom-v540tu.robot +++ b/platform-configs/novacustom-v540tu.robot @@ -19,7 +19,8 @@ ${OPTIONS_LIB}= options-lib_dcu ${POWER_CTRL}= none ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${FALSE} -@{TESTED_LINUX_DISTROS}= ${ENV_ID_FEDORA} ${ENV_ID_UBUNTU} +${DEFAULT_BOOT_OS_ID}= ${ENV_ID_UBUNTU} +@{TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} ${ENV_ID_FEDORA} # Benchmark reference data to nvidia model # performance diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index ad71da3cd7..b2835e168e 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -57,6 +57,5 @@ Flash Protectli VP2420 Internal Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Get Flashrom Send File To DUT ${FW_FILE} /tmp/dasharo.rom Flash Via Internal Programmer /tmp/dasharo.rom "bios" diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index 44132d175f..422ae664c0 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -132,7 +132,6 @@ BPS008.001 RTE CMOS clear Login To Linux Switch To Root User # Test relies entirely on coreboot console to print the CMOS invalid message - Get Cbmem ${out}= Execute Command In Terminal ... cbmem -1 | grep -i rtc From 9b1d26d4a6dd5e06f275db1ba7d3f573490c6992 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 14:41:41 +0100 Subject: [PATCH 242/416] Rename ENV_ID_WINDOWS_11 to ENV_ID_WINDOWS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- keywords.robot | 4 ++-- lib/options/options-lib_dcu.robot | 2 +- self-tests/dcu.robot | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keywords.robot b/keywords.robot index ce96501dca..8da5b6dcad 100644 --- a/keywords.robot +++ b/keywords.robot @@ -71,7 +71,7 @@ Login To Linux Via OBMC Login To Windows [Documentation] Universal login to Windows. - Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11} + Boot System Or From Connected Disk ${ENV_ID_WINDOWS} # TODO: We need a better way of switching between SSH and serial inside tests IF '${DUT_CONNECTION_METHOD}' == 'pikvm' Set Test Variable ${DUT_CONNECTION_METHOD} SSH @@ -178,7 +178,7 @@ Login To Windows Via SSH # power on - login procedure in single keyword, and use # Run Keyword Until Succeeds? Restore Initial DUT Connection Method - Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11} + Boot System Or From Connected Disk ${ENV_ID_WINDOWS} Set Test Variable ${DUT_CONNECTION_METHOD} SSH END END diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index 63f72850ea..32bf4d0174 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -132,7 +132,7 @@ Make Sure That Flash Locks Are Disabled Login To Windows Power On - Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11} + Boot System Or From Connected Disk ${ENV_ID_WINDOWS} Boot System Or From Connected Disk [Documentation] Keyword makes the DUT to reboot in chosen OS. There is a requirement for DUT to always reboot to Ubuntu. diff --git a/self-tests/dcu.robot b/self-tests/dcu.robot index 1c5e3710ea..e4cb3e7eed 100644 --- a/self-tests/dcu.robot +++ b/self-tests/dcu.robot @@ -29,7 +29,7 @@ Boot System Or From Connected Disk Power On - Dcu.Boot System Or From Connected Disk ${ENV_ID_WINDOWS_11} + Dcu.Boot System Or From Connected Disk ${ENV_ID_WINDOWS} Dcu.Login To Windows Via SSH ${DEVICE_OS_USERNAME} ${DEVICE_OS_PASSWORD} Power On From a45f74f4d7c0ede24a14c2dd6d8b86fba52259b7 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Wed, 2 Apr 2025 17:35:54 +0200 Subject: [PATCH 243/416] usb-always-on.robot - semi-automatic USB Always On test suite Signed-off-by: Mateusz Maciejewski --- dasharo-compatibility/usb-always-on.robot | 163 ++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 dasharo-compatibility/usb-always-on.robot diff --git a/dasharo-compatibility/usb-always-on.robot b/dasharo-compatibility/usb-always-on.robot new file mode 100644 index 0000000000..7c59a93a91 --- /dev/null +++ b/dasharo-compatibility/usb-always-on.robot @@ -0,0 +1,163 @@ +*** Settings *** +Library Collections +Library Dialogs +Library OperatingSystem +Library Process +Library String +Resource ../variables.robot +Resource ../keywords.robot +Resource ../keys.robot + +Suite Setup Run Keyword +... Prepare Test Suite +# TODO: human-readable representation of setup menu key for all platforms + + +*** Variables *** +@{USB_PORTS_POWER_AND_CHARGING_OPTS}= While System is On Always On + + +*** Test Cases *** +USC001.001 "USB power and charging" option is present + [Documentation] This test aims to verify that "USB ports power and charging" + ... option is present in setup menu. + Execute Manual Step Power on DUT + Execute Manual Step + ... Wait for "${TIANOCORE_STRING}" string on the screen and press SETUP_MENU_KEY to enter setup menu + Execute Manual Step Enter Dasharo System Features submenu + Execute Manual Step Enter Power Management Options submenu + Execute Manual Step Note, if "USB ports power and charging" menu option is present + @{user_values}= Get Selections From User + ... Enter value submenu of "USB ports power and charging", mark existing values, but don't change anything + ... ${USB_PORTS_POWER_AND_CHARGING_OPTS}[0] + ... ${USB_PORTS_POWER_AND_CHARGING_OPTS}[1] + Lists Should Be Equal ${USB_PORTS_POWER_AND_CHARGING_OPTS} ${user_values} + Execute Manual Step Power off DUT + +USC002.001 Power IS delivered through always-on USB A ports + [Documentation] This test verifies, if setting "USB ports power and + ... charging" menu option to "Always On" keeps electrical power supply on + ... selected USB A ports, after DUT is power off + Execute Manual Step Power on DUT + Execute Manual Step + ... Wait for "${TIANOCORE_STRING}" string on the screen and press SETUP_MENU_KEY to enter setup menu + Execute Manual Step Enter Dasharo System Features submenu + Execute Manual Step Enter Power Management Options submenu + Execute Manual Step Set value of "USB ports power and charging" to "Always On" + Execute Manual Step Save setup configuration with F10 key, confirm with Y key + Execute Manual Step Power off DUT + Execute Manual Step Power on DUT (this is when setup change takes effect) + Execute Manual Step Wait until "${TIANOCORE_STRING}" appears on screen and power off DUT + ${power_meter_message}= Catenate Verify state of all USB A ports that + ... are marked in "Hardware configuration matrix" as "Always On USB" + ... using USB power meter. All verified ports should be able to supply + ... power meter itself and voltage should be close to 5.0V + Execute Manual Step ${power_meter_message} + Execute Manual Step Power off DUT + +USC003.001 Power IS delivered through always-on USB C ports + [Documentation] This test verifies, if setting "USB ports power and + ... charging" menu option to "Always On" keeps electrical power supply on + ... selected USB C ports, after DUT is power off + Execute Manual Step Power on DUT + Execute Manual Step + ... Wait for "${TIANOCORE_STRING}" string on the screen and press SETUP_MENU_KEY to enter setup menu + Execute Manual Step Enter Dasharo System Features submenu + Execute Manual Step Enter Power Management Options submenu + Execute Manual Step Set value of "USB ports power and charging" to "Always On" + Execute Manual Step Save setup configuration with F10 key, confirm with Y key + Execute Manual Step Power off DUT + Execute Manual Step Power on DUT (this is when setup change takes effect) + Execute Manual Step Wait until "${TIANOCORE_STRING}" appears on screen and power off DUT + ${power_meter_message}= Catenate Verify state of all USB C ports that + ... are marked in "Hardware configuration matrix" as "Always On USB" + ... using USB power meter. All verified ports should be able to supply + ... power meter itself and voltage should be close to 5.0V + Execute Manual Step ${power_meter_message} + Execute Manual Step Power off DUT + +USC004.001 Power IS NOT delivered through always-on USB A ports + [Documentation] This test verifies, if setting "USB ports power and + ... charging" menu option to "While System is On" is disabling electrical + ... power supply on selected USB A ports, after DUT is power off. + Execute Manual Step Power on DUT + Execute Manual Step + ... Wait for "${TIANOCORE_STRING}" string on the screen and press SETUP_MENU_KEY to enter setup menu + Execute Manual Step Enter Dasharo System Features submenu + Execute Manual Step Enter Power Management Options submenu + Execute Manual Step Set value of "USB ports power and charging" to "While System is On" + Execute Manual Step Save setup configuration with F10 key, confirm with Y key + Execute Manual Step Power off DUT + Execute Manual Step Power on DUT (this is when setup change takes effect) + Execute Manual Step Wait until "${TIANOCORE_STRING}" appears on screen and power off DUT + ${power_meter_message}= Catenate Verify state of all USB A ports that + ... are marked in "Hardware configuration matrix" as "Always On USB" + ... using USB power meter. All verified ports should not be able to + ... supply power meter itself and voltage should be close to 0.0V + Execute Manual Step ${power_meter_message} + Execute Manual Step Power off DUT + +USC005.001 Power IS NOT delivered through always-on USB C ports + [Documentation] This test verifies, if setting "USB ports power and + ... charging" menu option to "While System is On" is disabling electrical + ... power supply on selected USB C ports, after DUT is power off. + Execute Manual Step Power on DUT + Execute Manual Step + ... Wait for "${TIANOCORE_STRING}" string on the screen and press SETUP_MENU_KEY to enter setup menu + Execute Manual Step Enter Dasharo System Features submenu + Execute Manual Step Enter Power Management Options submenu + Execute Manual Step Set value of "USB ports power and charging" to "While System is On" + Execute Manual Step Save setup configuration with F10 key, confirm with Y key + Execute Manual Step Power off DUT + Execute Manual Step Power on DUT (this is when setup change takes effect) + Execute Manual Step Wait until "${TIANOCORE_STRING}" appears on screen and power off DUT + ${power_meter_message}= Catenate Verify state of all USB C ports that + ... are marked in "Hardware configuration matrix" as "Always On USB" + ... using USB power meter. All verified ports should not be able to + ... supply power meter itself and voltage should be close to 0.0V + Execute Manual Step ${power_meter_message} + Execute Manual Step Power off DUT + +USC006.001 Power IS NOT delivered through regular USB A ports + [Documentation] This test verifies, if setting "USB ports power and + ... charging" menu option to "Always On" is NOT enabling electrical power + ... supply to USB A ports that are NOT marked as "Always On USB", after + ... DUT is power off. + Execute Manual Step Power on DUT + Execute Manual Step + ... Wait for "${TIANOCORE_STRING}" string on the screen and press SETUP_MENU_KEY to enter setup menu + Execute Manual Step Enter Dasharo System Features submenu + Execute Manual Step Enter Power Management Options submenu + Execute Manual Step Set value of "USB ports power and charging" to "Always On" + Execute Manual Step Save setup configuration with F10 key, confirm with Y key + Execute Manual Step Power off DUT + Execute Manual Step Power on DUT (this is when setup change takes effect) + Execute Manual Step Wait until "${TIANOCORE_STRING}" appears on screen and power off DUT + ${power_meter_message}= Catenate Verify state of all USB A ports that + ... are NOT marked in "Hardware configuration matrix" as "Always On USB" + ... using USB power meter. All verified ports should not be able to + ... supply power meter itself and voltage should be close to 0.0V + Execute Manual Step ${power_meter_message} + Execute Manual Step Power off DUT + +USC007.001 Power IS NOT delivered through regular USB C ports + [Documentation] This test verifies, if setting "USB ports power and + ... charging" menu option to "Always On" is NOT enabling electrical power + ... supply to USB C ports that are NOT marked as "Always On USB", after + ... DUT is power off. + Execute Manual Step Power on DUT + Execute Manual Step + ... Wait for "${TIANOCORE_STRING}" string on the screen and press SETUP_MENU_KEY to enter setup menu + Execute Manual Step Enter Dasharo System Features submenu + Execute Manual Step Enter Power Management Options submenu + Execute Manual Step Set value of "USB ports power and charging" to "Always On" + Execute Manual Step Save setup configuration with F10 key, confirm with Y key + Execute Manual Step Power off DUT + Execute Manual Step Power on DUT (this is when setup change takes effect) + Execute Manual Step Wait until "${TIANOCORE_STRING}" appears on screen and power off DUT + ${power_meter_message}= Catenate Verify state of all USB C ports that + ... are NOT marked in "Hardware configuration matrix" as "Always On USB" + ... using USB power meter. All verified ports should not be able to + ... supply power meter itself and voltage should be close to 0.0V + Execute Manual Step ${power_meter_message} + Execute Manual Step Power off DUT From 12079ac2ef1342c19d774a9ee6583a05c8fa0b10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 15:31:35 +0100 Subject: [PATCH 244/416] dasharo-security/tpm-support: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-security/tpm-support.robot | 89 ++++++++++++++++++++---------- 1 file changed, 59 insertions(+), 30 deletions(-) diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index ac0a9bf0be..9bf641451e 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -29,25 +29,33 @@ Suite Teardown Run Keyword TPM001.001 TPM Support (firmware) [Documentation] This test aims to verify that the TPM is initialized, ... detected and logged correctly by FW via cbmem, directly in Ubuntu - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM001.001 not supported - Prepare TPM Test On Ubuntu + Skip If '${DEFAULT_BOOT_OS_ID}' not in ${TESTED_LINUX_DISTROS} TPM001.001 not supported + Prepare TPM Test On Linux ${result}= Run Keyword And Ignore Error Validate Expected TPM Chip Via Cbmem Console Log IF '${result}[0]' == 'FAIL' Log To Console \nChip detection failed, attempting cbmem log detection\n Validate Expected TPM Version Via Cbmem TPM Eventlog END -TPM001.002 TPM Support (Ubuntu) +TPM001.201 TPM Support (Ubuntu) [Documentation] Check whether the TPM is initialized correctly and the ... PCRs can be accessed from the Linux OS. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM001.002 not supported - Prepare TPM Test On Ubuntu + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Prepare TPM Test On Linux ${ENV_ID_UBUNTU} Verify Presence Of Any PCRs Via Sysfs -TPM001.003 TPM Support (Windows) +TPM001.202 TPM Support (Fedora) + [Documentation] Check whether the TPM is initialized correctly and the + ... PCRs can be accessed from the Linux OS. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} TPM001.202 not supported + Prepare TPM Test On Linux ${ENV_ID_FEDORA} + Verify Presence Of Any PCRs Via Sysfs + +TPM001.301 TPM Support (Windows) [Documentation] Check whether the TPM is initialized correctly and the ... PCRs can be accessed from Windows. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} TPM001.003 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} TPM001.301 not supported Power On Login To Windows ${out}= Execute Command In Terminal get-tpm @@ -61,26 +69,35 @@ TPM001.003 TPM Support (Windows) TPM002.001 Verify TPM version (firmware) [Documentation] This test aims to verify that the TPM version is ... correctly recognized by the firmware. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM002.001 not supported - Prepare TPM Test On Ubuntu + Skip If '${DEFAULT_BOOT_OS_ID}' not in ${TESTED_LINUX_DISTROS} TPM002.001 not supported + Prepare TPM Test On Linux ${result}= Run Keyword And Ignore Error Validate Expected TPM Chip Via Cbmem Console Log IF '${result}[0]' == 'FAIL' Log To Console \nChip detection failed, attempting cbmem log detection\n Validate Expected TPM Version Via Cbmem TPM Eventlog END -TPM002.002 Verify TPM version (Ubuntu) +TPM002.201 Verify TPM version (Ubuntu) [Documentation] This test aims to verify that the TPM version is ... correctly recognized by the operating system. [Tags] minimal-regression - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM002.002 not supported - Prepare TPM Test On Ubuntu + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM002.101 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} TPM002.201 not supported + Prepare TPM Test On Linux ${ENV_ID_UBUNTU} Validate Expected TPM Version Via Sysfs -TPM002.003 Verify TPM version (Windows) +TPM002.202 Verify TPM version (Fedora) [Documentation] This test aims to verify that the TPM version is ... correctly recognized by the operating system. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} TPM002.003 not supported + [Tags] minimal-regression + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} TPM002.202 not supported + Prepare TPM Test On Linux ${ENV_ID_FEDORA} + Validate Expected TPM Version Via Sysfs + +TPM002.301 Verify TPM version (Windows) + [Documentation] This test aims to verify that the TPM version is + ... correctly recognized by the operating system. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} TPM002.301 not supported Power On Login To Windows ${out}= Execute Command In Terminal @@ -91,30 +108,31 @@ TPM003.001 Check TPM Physical Presence Interface (firmware) [Documentation] This test aims to verify that the TPM Physical Presence ... Interface is supported by the firmware and the log can be detected ... with cbmem within Ubuntu - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.001 not supported - Prepare TPM Test On Ubuntu + Skip If '${DEFAULT_BOOT_OS_ID}' not in ${TESTED_LINUX_DISTROS} TPM003.001 not supported + Prepare TPM Test On Linux ${out}= Execute Command In Terminal cbmem -1 | grep PPI Should Contain ${out} PPI: Pending OS request Should Contain ${out} PPI: OS response -TPM003.002 Check TPM Physical Presence Interface (Ubuntu) +TPM003.201 Check TPM Physical Presence Interface (Ubuntu) [Documentation] This test aims to verify that the TPM Physical Presence ... Interface is correctly recognized by the operating system. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.002 not supported - Prepare TPM Test On Ubuntu - ${out}= Execute Command In Terminal cat /sys/class/tpm/tpm0/ppi/version - IF '${TPM_SUPPORTED_VERSION}' == '1' - Should Contain ${out} 1.2 - ELSE IF '${TPM_SUPPORTED_VERSION}' == '2' - Should Contain ${out} 1.3 - ELSE - Fail Invalid expected version, please verify config - END + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} TPM003.201 not supported + Prepare TPM Test On Linux ${ENV_ID_UBUNTU} + Check TPM Physical Presence Interface + +TPM003.202 Check TPM Physical Presence Interface (Fedora) + [Documentation] This test aims to verify that the TPM Physical Presence + ... Interface is correctly recognized by the operating system. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} TPM003.202 not supported + Prepare TPM Test On Linux ${ENV_ID_FEDORA} + Check TPM Physical Presence Interface TPM003.003 Check TPM Physical Presence Interface (Windows) [Documentation] This test aims to verify that the TPM Physical Presence ... Interface is correctly recognized by the operating system. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} TPM003.003 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} TPM003.301 not supported Power On Login To Windows ${out}= Execute Command In Terminal tpmtool getdeviceinformation @@ -129,10 +147,21 @@ TPM003.003 Check TPM Physical Presence Interface (Windows) *** Keywords *** -Prepare TPM Test On Ubuntu +Prepare TPM Test On Linux [Documentation] Run common actions required for TPM tests in Ubuntu + [Arguments] ${env_id}=${DEFAULT_BOOT_OS_ID} Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${env_id} Login To Linux Switch To Root User Verify Presence Of TPM Via Sysfs + +Check TPM Physical Presence Interface + ${out}= Execute Command In Terminal cat /sys/class/tpm/tpm0/ppi/version + IF '${TPM_SUPPORTED_VERSION}' == '1' + Should Contain ${out} 1.2 + ELSE IF '${TPM_SUPPORTED_VERSION}' == '2' + Should Contain ${out} 1.3 + ELSE + Fail Invalid expected version, please verify config + END From 22fbb1d9ea143c8ea21b884ebbedd4e7b122af62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 15:32:07 +0100 Subject: [PATCH 245/416] tpm-detect-heads: Remove duplicated TPM cases from tpm-support.robot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-stability/tpm-detect-heads.robot | 25 ------------------------ 1 file changed, 25 deletions(-) diff --git a/dasharo-stability/tpm-detect-heads.robot b/dasharo-stability/tpm-detect-heads.robot index 2fb0ee8ca4..d355ae8b2e 100644 --- a/dasharo-stability/tpm-detect-heads.robot +++ b/dasharo-stability/tpm-detect-heads.robot @@ -98,28 +98,3 @@ TPD003.004 Detect TPM after platform reboot (heads) FAIL \nTest case marked as Failed; ${failed_detects} iterations failed. END Check TPM PCRs Correctness Between Subsequent Boots ${pcrs_subsequent_boots} - -TPM001.002 TPM Support (Ubuntu) - [Documentation] This test aims to verify that the TPM is initialized - ... correctly and the PCRs can be accessed from the operating system. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM001.002 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - - ${out}= Execute Linux Command tpm2_pcrread - Should Contain ${out} sha1: - Should Contain ${out} sha256: - Exit From Root User - -TPM001.003 TPM Support (Windows) - [Documentation] This test aims to verify that the TPM is initialized - ... correctly and the PCRs can be accessed from the operating system. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} TPM001.003 not supported - Power On - Login To Windows - ${out}= Execute Command In Terminal get-tpm - Should Contain ${out} TpmPresent${SPACE*16}: True strip_spaces=True - Should Contain ${out} TpmReady${SPACE*18}: True strip_spaces=True - Should Contain ${out} TpmEnabled${SPACE*16}: True strip_spaces=True From 947501300a0341831103cd045d858757bc6d0d56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 15:56:07 +0100 Subject: [PATCH 246/416] dasharo-security/measured-boot: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-security/measured-boot.robot | 83 +++++++++++++++++++--------- 1 file changed, 56 insertions(+), 27 deletions(-) diff --git a/dasharo-security/measured-boot.robot b/dasharo-security/measured-boot.robot index 1fce33d39b..4a62945d32 100644 --- a/dasharo-security/measured-boot.robot +++ b/dasharo-security/measured-boot.robot @@ -27,20 +27,32 @@ ${PCRS_TO_CHECK}= [0-79]|14 *** Test Cases *** -MBO001.001 Measured Boot support +MBO001.201 Measured Boot support (Ubuntu) [Documentation] Check whether Measured Boot is functional and ... measurements are stored into the TPM. - ${pcr_hashes}= Get PCRs State From Linux [0-3] - FOR ${pcr_hash} IN @{pcr_hashes} - ${pcr} ${hash}= Split String ${pcr_hash} separator=: - ${unique_values_str}= Evaluate ''.join(set("${hash}")) - Should Not Be Equal ${unique_values_str} F ignore_case=${TRUE} - Should Not Be Equal ${unique_values_str} 0 ignore_case=${TRUE} - END + Power On + Boot Linux And Login To Root ${ENV_ID_UBUNTU} + Linux Measured Boot Support + +MBO001.202 Measured Boot support (Fedora) + [Documentation] Check whether Measured Boot is functional and + ... measurements are stored into the TPM. + Power On + Boot Linux And Login To Root ${ENV_ID_FEDORA} + Linux Measured Boot Support + +MBO002.201 Check if event log PCRs match actual values (Ubuntu) + [Documentation] Check whether PCRs values calculated from event log match + ... actual PCRs values + Power On + Boot Linux And Login To Root ${ENV_ID_UBUNTU} + Validate PCRs Against Event Log /sys/kernel/security/tpm0/binary_bios_measurements -MBO002.001 Check if event log PCRs match actual values +MBO002.202 Check if event log PCRs match actual values (Fedora) [Documentation] Check whether PCRs values calculated from event log match ... actual PCRs values + Power On + Boot Linux And Login To Root ${ENV_ID_FEDORA} Validate PCRs Against Event Log /sys/kernel/security/tpm0/binary_bios_measurements MBO003.001 Changing Secure Boot certificate changes only PCR-7 @@ -53,7 +65,7 @@ MBO003.001 Changing Secure Boot certificate changes only PCR-7 Disable Secure Boot ${sb_menu} Save Changes And Reset - Boot Ubuntu And Login To Root + Boot Linux And Login To Root ${default_hashes}= Get PCRs State From Linux ${PCRS_TO_CHECK} Power On @@ -67,7 +79,7 @@ MBO003.001 Changing Secure Boot certificate changes only PCR-7 Sleep 1s Save Changes And Reset - Boot Ubuntu And Login To Root + Boot Linux And Login To Root FOR ${pcr_hash} IN @{default_hashes} ${pcr} ${hash}= Split String ${pcr_hash} separator=: ${new_hash}= Execute Command In Terminal cat ${pcr} @@ -84,7 +96,7 @@ MBO004.001 Changing Dasharo network boot settings changes only PCR-1 Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} Tests in firmware are not supported Skip If not ${DASHARO_NETWORKING_MENU_SUPPORT} Tests in Dasharo Networking Menu are not supported Power On - Boot Ubuntu And Login To Root + Boot Linux And Login To Root @{hashes_before_changes}= Get PCRs State From Linux ${PCRS_TO_CHECK} Power On @@ -96,7 +108,7 @@ MBO004.001 Changing Dasharo network boot settings changes only PCR-1 Set Option State ${menu} Enable network boot ${new_network_boot_state} Save Changes And Reset - Boot Ubuntu And Login To Root + Boot Linux And Login To Root FOR ${pcr_hash} IN @{hashes_before_changes} ${pcr} ${hash}= Split String ${pcr_hash} separator=: ${new_hash}= Execute Command In Terminal cat ${pcr} @@ -113,7 +125,7 @@ MBO004.002 Changing Dasharo security settings changes only PCR-1 Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} Tests in firmware are not supported Skip If not ${SMM_WRITE_PROTECTION_SUPPORT} Tests in Dasharo Security Menu are not supported Power On - Boot Ubuntu And Login To Root + Boot Linux And Login To Root @{hashes_before_changes}= Get PCRs State From Linux ${PCRS_TO_CHECK} Power On @@ -125,7 +137,7 @@ MBO004.002 Changing Dasharo security settings changes only PCR-1 Set Option State ${menu} Enable SMM BIOS write ${new_smm_protection_state} Save Changes And Reset - Boot Ubuntu And Login To Root + Boot Linux And Login To Root FOR ${pcr_hash} IN @{hashes_before_changes} ${pcr} ${hash}= Split String ${pcr_hash} separator=: ${new_hash}= Execute Command In Terminal cat ${pcr} @@ -142,7 +154,7 @@ MBO004.003 Changing Dasharo APU settings changes only PCR-1 Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} Tests in firmware are not supported Skip If not ${APU_CONFIGURATION_MENU_SUPPORT} Tests in Dasharo APU Menu are not supported Power On - Boot Ubuntu And Login To Root + Boot Linux And Login To Root @{hashes_before_changes}= Get PCRs State From Linux ${PCRS_TO_CHECK} Power On @@ -153,7 +165,7 @@ MBO004.003 Changing Dasharo APU settings changes only PCR-1 Set Option State ${menu} Core Performance Boost ${new_core_boost_state} Save Changes And Reset - Boot Ubuntu And Login To Root + Boot Linux And Login To Root FOR ${pcr_hash} IN @{hashes_before_changes} ${pcr} ${hash}= Split String ${pcr_hash} separator=: ${new_hash}= Execute Command In Terminal cat ${pcr} @@ -174,12 +186,12 @@ MBO005.001 Flashing firmware and reset to defaults results in same measurement Flash Firmware ${FW_FILE} Power Cycle On - Boot Ubuntu And Login To Root + Boot Linux And Login To Root ${default_pcr_state}= Get PCRs State From Linux ${PCRS_TO_CHECK} Restore SB And Tianocore Defaults And Reset - Boot Ubuntu And Login To Root + Boot Linux And Login To Root ${reset_pcr_state}= Get PCRs State From Linux ${PCRS_TO_CHECK} Lists Should Be Equal ${default_pcr_state} ${reset_pcr_state} @@ -192,7 +204,7 @@ MBO005.002 Multiple reset to defaults results in identical measurements Restore SB And Tianocore Defaults And Reset - Boot Ubuntu And Login To Root + Boot Linux And Login To Root FOR ${pcr_hash} IN @{default_hashes} ${pcr} ${hash}= Split String ${pcr_hash} separator=: ${new_hash}= Execute Command In Terminal cat ${pcr} @@ -227,7 +239,7 @@ MBO006.001 Identical configuration results in identical measurements Set Option State ${menu} ${option} ${option_state} Save Changes And Reset - Boot Ubuntu And Login To Root + Boot Linux And Login To Root FOR ${pcr_hash} IN @{default_hashes} ${pcr} ${hash}= Split String ${pcr_hash} separator=: ${new_hash}= Execute Command In Terminal cat ${pcr} @@ -261,7 +273,7 @@ MBO006.002 Identical configuration after reset results in identical measurements Reset To Defaults Tianocore Save Changes And Reset - Boot Ubuntu And Login To Root + Boot Linux And Login To Root FOR ${pcr_hash} IN @{default_hashes} ${pcr} ${hash}= Split String ${pcr_hash} separator=: ${new_hash}= Execute Command In Terminal cat ${pcr} @@ -275,36 +287,53 @@ Get Default PCRs State ... configuration to default and then returns PCRs values. Next call ... return values measured in first call (remembers value in whole ... Test Suite). + [Tags] robot:private ${default_pcr_state}= Get Variable Value $DEFAULT_PCR_STATE_SUITE IF ${default_pcr_state} is ${NONE} Restore SB And Tianocore Defaults And Reset - Boot Ubuntu And Login To Root + Boot Linux And Login To Root ${default_pcr_state}= Get PCRs State From Linux ${PCRS_TO_CHECK} Set Suite Variable $DEFAULT_PCR_STATE_SUITE ${default_pcr_state} END RETURN ${default_pcr_state} -Boot Ubuntu And Login To Root +Boot Linux And Login To Root [Documentation] Boots Ubuntu and logins as root - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User Restore SB And Tianocore Defaults And Reset [Documentation] Restores Secure Boot and Tianocore to defaults and then ... restarts + [Tags] robot:private Restore Secure Boot Defaults Reset To Defaults Tianocore Save Changes And Reset Measured Boot Suite Setup + [Tags] robot:private Prepare Test Suite Skip If ${TPM_SUPPORTED_VERSION} == None Measured boot tests require TPM Skip If not ${MEASURED_BOOT_SUPPORT} Measured boot is not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Tests in Ubuntu are not supported + Skip If not '${DEFAULT_BOOT_OS_ID}' in ${TESTED_LINUX_DISTROS} Tests in Linux are not supported Power On - Boot Ubuntu And Login To Root + Boot Linux And Login To Root Verify Presence Of TPM Via Sysfs # Disable service that adds dbx certificates which could interfere with tests Execute Command In Terminal systemctl disable secureboot-db.service + +Linux Measured Boot Support + [Documentation] Check whether Measured Boot is functional and + ... measurements are stored into the TPM. + [Tags] robot:private + ${pcr_hashes}= Get PCRs State From Linux [0-3] + FOR ${pcr_hash} IN @{pcr_hashes} + ${pcr} ${hash}= Split String ${pcr_hash} separator=: + ${unique_values_str}= Evaluate ''.join(set("${hash}")) + Should Not Be Equal ${unique_values_str} F ignore_case=${TRUE} + Should Not Be Equal ${unique_values_str} 0 ignore_case=${TRUE} + END From 0e25eea137d8547368310dce6f6d4966fcd53d8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 16:45:26 +0100 Subject: [PATCH 247/416] os-specific-tasks/202.yaml: Disable spi_intel_pci module on fedora MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit it conflicts with flashrom Signed-off-by: Filip Gołaś --- os-config/ansible/os-specific-tasks/202.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/os-config/ansible/os-specific-tasks/202.yaml b/os-config/ansible/os-specific-tasks/202.yaml index 2914c2c878..c88184db44 100644 --- a/os-config/ansible/os-specific-tasks/202.yaml +++ b/os-config/ansible/os-specific-tasks/202.yaml @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: Apache-2.0 +# acpi_call package is not available in fedora repos - name: "Download acpi_call rpm package" ansible.builtin.get_url: url: https://github.com/MiMillieuh/acpi_call-fedora/releases/download/1.2.2-1/acpi_call-1.2.2-1.x86_64.rpm @@ -12,3 +13,12 @@ name: /tmp/acpi_call.rpm state: present disable_gpg_check: true + +# spi_intel_pci module conflicts with flashrom +- name: Blacklist spi_intel_pci module + ansible.builtin.copy: + dest: /etc/modprobe.d/osfv-blacklist.conf + content: blacklist spi_intel_pci + +- name: Unload spi_intel_pci module + ansible.builtin.command: modprobe -r spi_intel_pci From f8c86dbb24427902ca4a1fb93e06aac63c216aa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 16:47:26 +0100 Subject: [PATCH 248/416] dasharo-security/me-neuter.robot: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-security/me-neuter-static.robot | 2 +- dasharo-security/me-neuter.robot | 84 +++++++++++++++++++++---- 2 files changed, 73 insertions(+), 13 deletions(-) diff --git a/dasharo-security/me-neuter-static.robot b/dasharo-security/me-neuter-static.robot index 9bfe429ea5..d996f2cc96 100644 --- a/dasharo-security/me-neuter-static.robot +++ b/dasharo-security/me-neuter-static.robot @@ -27,7 +27,7 @@ Suite Teardown Run Keyword *** Test Cases *** MES001.001 Check if ME is statically disabled [Documentation] Check whether the Intel ME is disabled at build time. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE002.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MES001.001 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux diff --git a/dasharo-security/me-neuter.robot b/dasharo-security/me-neuter.robot index 5ebde3bf77..4e3a35e609 100644 --- a/dasharo-security/me-neuter.robot +++ b/dasharo-security/me-neuter.robot @@ -38,23 +38,81 @@ MNE001.001 Intel ME mode option is available and has the correct default state ${state}= Get Option State ${me_menu} Intel ME mode Should Be Equal ${state} Enabled -MNE002.001 Intel ME mode option Enabled works correctly (Ubuntu) +MNE002.201 Intel ME mode option Enabled works correctly (Ubuntu) [Documentation] Check whether the Intel ME mode option in state Enabled ... works correctly. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE002.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} MNE002.201 not supported + Intel ME Mode Option Enabled Works Correctly ${ENV_ID_UBUNTU} + +MNE002.202 Intel ME mode option Enabled works correctly (Fedora) + [Documentation] Check whether the Intel ME mode option in state Enabled + ... works correctly. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} MNE002.202 not supported + Intel ME Mode Option Enabled Works Correctly ${ENV_ID_FEDORA} + +MNE003.201 Intel ME mode option Disabled (Soft) works correctly (Ubuntu) + [Documentation] Check whether the Intel ME mode option in state + ... Disabled (Soft) works correctly + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} MNE003.201 not supported + Intel ME Mode Option Disabled (Soft) Works Correctly ${ENV_ID_UBUNTU} + +MNE003.202 Intel ME mode option Disabled (Soft) works correctly (Fedora) + [Documentation] Check whether the Intel ME mode option in state + ... Disabled (Soft) works correctly + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} MNE003.202 not supported + Intel ME Mode Option Disabled (Soft) Works Correctly ${ENV_ID_FEDORA} + +MNE004.201 Intel ME mode option Disabled (HAP) works correctly (Ubuntu) + [Documentation] Check whether the Intel ME mode option in state + ... Disabled (HAP) works correctly. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE004.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} MNE004.201 not supported + Intel ME Mode Option Disabled (HAP) Works Correctly ${ENV_ID_UBUNTU} + +MNE004.202 Intel ME mode option Disabled (HAP) works correctly (Fedora) + [Documentation] Check whether the Intel ME mode option in state + ... Disabled (HAP) works correctly. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} MNE004.202 not supported + Intel ME Mode Option Disabled (HAP) Works Correctly ${ENV_ID_FEDORA} + +MNE006.201 Check Intel ME version (Ubuntu) + [Documentation] This test aims to verify that the Intel ME version might + ... be read on the Operating System level. The read version should be + ... the same as in the release notes. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE006.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} MNE004.201 not supported + Check Intel ME Version ${ENV_ID_UBUNTU} + +MNE006.202 Check Intel ME version (Fedora) + [Documentation] This test aims to verify that the Intel ME version might + ... be read on the Operating System level. The read version should be + ... the same as in the release notes. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} MNE004.202 not supported + Check Intel ME Version ${ENV_ID_FEDORA} + + +*** Keywords *** +Intel ME Mode Option Enabled Works Correctly + [Documentation] Check whether the Intel ME mode option in state Enabled + ... works correctly. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} Set UEFI Option MeMode Enabled - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User ${result}= Check ME Out Should Be Equal As Strings ${result} Enabled -MNE003.001 Intel ME mode option Disabled (Soft) works correctly (Ubuntu) +Intel ME Mode Option Disabled (Soft) Works Correctly [Documentation] Check whether the Intel ME mode option in state ... Disabled (Soft) works correctly - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE003.001 not supported + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} Set UEFI Option MeMode Disabled (Soft) - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User ${result}= Check ME Out @@ -64,12 +122,13 @@ MNE003.001 Intel ME mode option Disabled (Soft) works correctly (Ubuntu) Should Be Equal As Strings ${result} Disabled (Soft) END -MNE004.001 Intel ME mode option Disabled (HAP) works correctly (Ubuntu) +Intel ME Mode Option Disabled (HAP) Works Correctly [Documentation] Check whether the Intel ME mode option in state ... Disabled (HAP) works correctly. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE004.001 not supported + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} Set UEFI Option MeMode Disabled (HAP) - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User ${result}= Check ME Out @@ -79,14 +138,15 @@ MNE004.001 Intel ME mode option Disabled (HAP) works correctly (Ubuntu) Should Be Equal As Strings ${result} Disabled (HAP) END -MNE006.001 Check Intel ME version (Ubuntu) +Check Intel ME Version [Documentation] This test aims to verify that the Intel ME version might ... be read on the Operating System level. The read version should be ... the same as in the release notes. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE006.001 not supported + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} Set UEFI Option MeMode Enabled Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User ${out}= Execute Command In Terminal cat /sys/class/mei/mei0/fw_ver From 317af621e9b86458d38ee0a49d5c04548f187248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 17:54:58 +0100 Subject: [PATCH 249/416] keywords.robot: Execute Reboot Command: Prevent OS from changing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- keywords.robot | 6 ++++- lib/options/options-lib_dcu.robot | 39 ++++++++++++++++++++----------- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/keywords.robot b/keywords.robot index 8da5b6dcad..e8f99d0161 100644 --- a/keywords.robot +++ b/keywords.robot @@ -772,6 +772,11 @@ Execute Reboot Command [Documentation] Executes reboot command in given os [Arguments] ${os}=linux IF '${os}' == 'linux' + # if the OS cannot be chosen from the bootmanager and rebooting + # always boots the default one + IF '${OPTIONS_LIB}' == 'options-lib_dcu' + Set Nextboot ${BOOTED_OS_ID} + END Write Into Terminal reboot ELSE IF '${os}' == 'windows' Write Into Terminal shutdown /r /f /t 0 @@ -781,7 +786,6 @@ Execute Reboot Command # We do not want to sleep if we switched to SSH only temporarily. Restore Initial DUT Connection Method Set DUT Response Timeout 180 seconds - IF '${DUT_CONNECTION_METHOD}' == 'SSH' Sleep 30s Check Displays Windows [Documentation] Check and return all displays with PowerShell in Windows. diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index 32bf4d0174..282c4cdc8f 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -134,23 +134,15 @@ Login To Windows Power On Boot System Or From Connected Disk ${ENV_ID_WINDOWS} -Boot System Or From Connected Disk - [Documentation] Keyword makes the DUT to reboot in chosen OS. There is a requirement for DUT to always reboot to Ubuntu. +Set Nextboot + [Documentation] Sets the OS of choice to be booted first on the next + ... reboot. Not persistent, only changes the first boot option for + ... one boot. [Arguments] ${env_id} ${os_boot_id}= Set Variable ${EMPTY} ${os_bootentry_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} - Import Variables ${CURDIR}/../../os-config/${BOOTED_OS_ID}-credentials.py - - Login To Linux - Switch To Root User - - IF '${BOOTED_OS_ID}' == '${env_id}' - Log Target OS already booted - RETURN - END - ${boot_entries}= Execute Command In Terminal efibootmgr @{lines}= Split To Lines ${boot_entries} @@ -166,18 +158,37 @@ Boot System Or From Connected Disk BREAK END END + IF '${os_boot_id}' != '${EMPTY}' ${id}= Get Substring ${os_boot_id} 4 8 Execute Command In Terminal efibootmgr --bootnext ${id} Sleep 1s - Write Into Terminal reboot Import Variables ${CURDIR}/../../os-config/${env_id}-credentials.py Set Suite Variable ${BOOTED_OS_ID} ${env_id} - Sleep 30s ELSE Fail Os entry not found END +Boot System Or From Connected Disk + [Documentation] Keyword makes the DUT to reboot in chosen OS. + [Arguments] ${env_id} + + ${os_boot_id}= Set Variable ${EMPTY} + ${os_bootentry_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} + + Import Variables ${CURDIR}/../../os-config/${BOOTED_OS_ID}-credentials.py + Login To Linux + Switch To Root User + + IF '${BOOTED_OS_ID}' == '${env_id}' + Log Target OS already booted + RETURN + END + + ${os_boot_id}= Set Nextboot ${env_id} + Write Into Terminal reboot + Sleep 30s + Login To Windows Via SSH [Documentation] Login to Windows via SSH by using provided arguments as ... username and password respectively. From b1e10c9d39ca3cf3dd58ef3a16c0fffb09004d90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 17:59:48 +0100 Subject: [PATCH 250/416] usb-hid-and-msc-support: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../usb-hid-and-msc-support.robot | 113 +++++++++++++----- 1 file changed, 81 insertions(+), 32 deletions(-) diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 4ad1cf27bc..3187397ad0 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -33,22 +33,22 @@ USB001.001 USB devices detected in FW ${boot_menu}= Enter Boot Menu Tianocore And Return Construction Check USB Stick Detection In Edk2 ${boot_menu} -USB001.002 USB devices detected by OS (Ubuntu) +USB001.201 USB devices detected by OS (Ubuntu) [Documentation] Check whether the external USB devices are detected - ... correctly in Linux OS. + ... correctly in Ubuntu OS. Depends On ${USB_DISKS_DETECTION_SUPPORT} Depends On ${TESTS_IN_UBUNTU_SUPPORT} - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + USB Devices Detected By OS ${ENV_ID_UBUNTU} - ${out}= Execute Command In Terminal lsusb -v | grep bInterfaceClass - IF ${HAS_KEYBOARD} Should Contain ${out} Human Interface Device - IF ${HAS_USB_STORAGE} Should Contain ${out} Mass Storage - Exit From Root User +USB001.202 USB devices detected by OS (Fedora) + [Documentation] Check whether the external USB devices are detected + ... correctly in Fedora OS. + Depends On ${USB_DISKS_DETECTION_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + USB Devices Detected By OS ${ENV_ID_FEDORA} -USB001.003 USB devices detected by OS (Windows) +USB001.301 USB devices detected by OS (Windows) [Documentation] Check whether the external USB devices are detected ... correctly in Windows OS. Depends On ${USB_DISKS_DETECTION_SUPPORT} @@ -73,20 +73,24 @@ USB002.001 USB keyboard detected in FW ${out}= Execute UEFI Shell Command devices Should Contain ${out} Usb Keyboard -USB002.002 USB keyboard in OS (Ubuntu) +USB002.201 USB keyboard in OS (Ubuntu) [Documentation] Check whether the external USB keyboard is detected - ... correctly by the Linux OS. + ... correctly by the Ubuntu OS. Depends On ${USB_KEYBOARD_DETECTION_SUPPORT} Depends On ${HAS_KEYBOARD} Depends On ${TESTS_IN_UBUNTU_SUPPORT} - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${out}= List Devices In Linux usb - Should Contain ${out} ${DEVICE_USB_KEYBOARD} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + USB Keyboard In OS ${ENV_ID_UBUNTU} -USB002.003 USB keyboard in OS (Windows) +USB002.202 USB keyboard in OS (Fedora) + [Documentation] Check whether the external USB keyboard is detected + ... correctly by the Fedora OS. + Depends On ${USB_KEYBOARD_DETECTION_SUPPORT} + Depends On ${HAS_KEYBOARD} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + USB Keyboard In OS ${ENV_ID_FEDORA} + +USB002.301 USB keyboard in OS (Windows) [Documentation] Check whether the external USB keyboard is detected ... correctly by the Windows OS. Depends On ${USB_KEYBOARD_DETECTION_SUPPORT} @@ -98,24 +102,25 @@ USB002.003 USB keyboard in OS (Windows) ${keyboard}= Get Lines Matching Regexp ${out} ^CreationClassName\\s+:\\sWin32_Keyboard.*$ Should Not Be Empty ${keyboard} -USB003.001 Upload 1GB file on USB storage (Ubuntu) +USB003.201 Upload 1GB file on USB storage (Ubuntu) [Documentation] Check whether the 1GB file can be transferred from the ... operating system to the USB storage. Depends On ${UPLOAD_ON_USB_SUPPORT} Depends On ${HAS_USB_STORAGE} Depends On ${TESTS_IN_UBUNTU_SUPPORT} - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Execute Linux Command openssl rand -out test_file.txt -base64 $(( 2**30 * 3/4 )) - ${path_to_usb}= Identify Path To USB - Execute Linux Command cp test_file.txt ${path_to_usb} 120 - Check If Files Are Identical In Linux test_file.txt ${path_to_usb}/test_file.txt - Execute Linux Command rm test_file.txt ${path_to_usb}/test_file.txt - Exit From Root User + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Upload 1GB File On USB Storage ${ENV_ID_UBUNTU} + +USB003.202 Upload 1GB file on USB storage (Fedora) + [Documentation] Check whether the 1GB file can be transferred from the + ... operating system to the USB storage. + Depends On ${UPLOAD_ON_USB_SUPPORT} + Depends On ${HAS_USB_STORAGE} + Depends On ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Upload 1GB File On USB Storage ${ENV_ID_FEDORA} -USB003.002 Upload 1GB file on USB storage (Windows) +USB003.301 Upload 1GB file on USB storage (Windows) [Documentation] Check whether the 1GB file can be transferred from the ... operating system to the USB storage. Depends On ${UPLOAD_ON_USB_SUPPORT} @@ -139,6 +144,7 @@ USB003.002 Upload 1GB file on USB storage (Windows) *** Keywords *** Prepare USB HID Test Suite [Documentation] Prepare this test suite + [Tags] robot:private Prepare Test Suite IF "${DEVICE_USB_KEYBOARD}" != "${EMPTY}" or "${DUT_CONNECTION_METHOD}" == "pikvm" Set Suite Variable $HAS_KEYBOARD ${TRUE} @@ -156,3 +162,46 @@ Prepare USB HID Test Suite Set Suite Variable $HAS_USB_STORAGE ${TRUE} Skip If not ${HAS_KEYBOARD} and not ${HAS_USB_STORAGE} ... Platform doesn't have USB keyboard or USB storage attached + +USB Devices Detected By OS + [Documentation] Check whether the external USB devices are detected + ... correctly in Linux OS. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + + ${out}= Execute Command In Terminal lsusb -v | grep bInterfaceClass + IF ${HAS_KEYBOARD} Should Contain ${out} Human Interface Device + IF ${HAS_USB_STORAGE} Should Contain ${out} Mass Storage + Exit From Root User + +USB Keyboard In OS + [Documentation] Check whether the external USB keyboard is detected + ... correctly by the Linux OS. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + ${out}= List Devices In Linux usb + Should Contain ${out} ${DEVICE_USB_KEYBOARD} + +Upload 1GB File On USB Storage + [Documentation] Check whether the 1GB file can be transferred from the + ... operating system to the USB storage. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + Execute Linux Command openssl rand -out test_file.txt -base64 $(( 2**30 * 3/4 )) + ${path_to_usb}= Identify Path To USB + Execute Linux Command yes | cp -f test_file.txt ${path_to_usb} 120 + Check If Files Are Identical In Linux test_file.txt ${path_to_usb}/test_file.txt + Execute Linux Command yes | rm test_file.txt ${path_to_usb}/test_file.txt + Exit From Root User From 95a7d63b7bd621ba41655153c272ff09153133cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 18:00:02 +0100 Subject: [PATCH 251/416] nvme-support: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/nvme-support.robot | 39 +++++++++++++++++------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/dasharo-compatibility/nvme-support.robot b/dasharo-compatibility/nvme-support.robot index bbd464d60b..50519e31be 100644 --- a/dasharo-compatibility/nvme-support.robot +++ b/dasharo-compatibility/nvme-support.robot @@ -29,29 +29,46 @@ NVM001.001 NVMe support in firmware [Documentation] Check whether the firmware is able to correctly detect ... NVMe disk in M.2 slot. Skip If not ${NVME_DISK_SUPPORT} NVM001.001 not supported + Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} Power On ${out}= Enter Boot Menu Tianocore And Return Construction Should Contain ${out} ${CLEVO_DISK} -NVM001.002 NVMe support in OS (Ubuntu) +NVM001.201 NVMe support in OS (Ubuntu) [Documentation] Check whether the Operating System can boot from NVMe ... disk in M.2 slot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NVM001.002 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${out}= List Devices In Linux pci - Should Contain ${out} ${DEVICE_NVME_DISK} - Exit From Root User + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NVM001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} NVM001.201 not supported + NVMe Support In OS ${ENV_ID_UBUNTU} -NVM001.003 NVMe support in OS (Windows) +NVM001.202 NVMe support in OS (Fedora) [Documentation] Check whether the Operating System can boot from NVMe ... disk in M.2 slot. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} NVM001.003 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} NVM001.202 not supported + NVMe Support In OS ${ENV_ID_FEDORA} + +NVM001.301 NVMe support in OS (Windows) + [Documentation] Check whether the Operating System can boot from NVMe + ... disk in M.2 slot. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} NVM001.301 not supported Power On Login To Windows # Switch to root user ${out}= Execute Command In Terminal Get-PnpDevice -Status "OK" | where { $_.InstanceId -like "*NVME*"} Should Contain ${out} DiskDrive # Exit from root user + + +*** Keywords *** +NVMe Support In OS + [Documentation] Check whether the Operating System can boot from NVMe + ... disk in M.2 slot. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + ${out}= List Devices In Linux pci + Should Contain ${out} ${DEVICE_NVME_DISK} + Exit From Root User From 06a8e097fcec12086d25a62e2bf1a521c33eb79f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 18:37:11 +0100 Subject: [PATCH 252/416] os-specific-tasks/202.yaml: Downgrade kernel from 6.13 on Fedora MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- os-config/ansible/os-specific-tasks/202.yaml | 43 ++++++++++++-------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/os-config/ansible/os-specific-tasks/202.yaml b/os-config/ansible/os-specific-tasks/202.yaml index c88184db44..c080f9df1e 100644 --- a/os-config/ansible/os-specific-tasks/202.yaml +++ b/os-config/ansible/os-specific-tasks/202.yaml @@ -3,22 +3,33 @@ # SPDX-License-Identifier: Apache-2.0 # acpi_call package is not available in fedora repos -- name: "Download acpi_call rpm package" - ansible.builtin.get_url: - url: https://github.com/MiMillieuh/acpi_call-fedora/releases/download/1.2.2-1/acpi_call-1.2.2-1.x86_64.rpm - dest: /tmp/acpi_call.rpm +# - name: "Download acpi_call rpm package" +# ansible.builtin.get_url: +# url: https://github.com/MiMillieuh/acpi_call-fedora/releases/download/1.2.2-1/acpi_call-1.2.2-1.x86_64.rpm +# dest: /tmp/acpi_call.rpm -- name: "Install acpi_call rpm package" - ansible.builtin.dnf: - name: /tmp/acpi_call.rpm - state: present - disable_gpg_check: true +# - name: "Install acpi_call rpm package" +# ansible.builtin.dnf: +# name: /tmp/acpi_call.rpm +# state: present +# disable_gpg_check: true -# spi_intel_pci module conflicts with flashrom -- name: Blacklist spi_intel_pci module - ansible.builtin.copy: - dest: /etc/modprobe.d/osfv-blacklist.conf - content: blacklist spi_intel_pci +# # spi_intel_pci module conflicts with flashrom +# - name: Blacklist spi_intel_pci module +# ansible.builtin.copy: +# dest: /etc/modprobe.d/osfv-blacklist.conf +# content: blacklist spi_intel_pci -- name: Unload spi_intel_pci module - ansible.builtin.command: modprobe -r spi_intel_pci +# - name: Unload spi_intel_pci module +# ansible.builtin.command: modprobe -r spi_intel_pci + +# The WiFi/Bt cards of MTL laptops don't work on Fedora 41 with 6.13 kernel +- name: Get default kernel + ansible.builtin.command: grubby --default-kernel + register: default_kernel_version +- name: Get default index + ansible.builtin.command: grubby --default-index + register: default_kernel_index +- name: Downgrade default kernel + ansible.builtin.command: grubby --set-default-index {{ default_kernel_index.stdout | int + 1 }} + when: '"6.13" in default_kernel_version.stdout' From 3740633116603ed0fdc3e6d111137c8f3a88dd11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 18:48:54 +0100 Subject: [PATCH 253/416] dasharo-compatibility/wifi-bluetooth-support: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../wifi-bluetooth-support.robot | 148 ++++++++++++------ 1 file changed, 100 insertions(+), 48 deletions(-) diff --git a/dasharo-compatibility/wifi-bluetooth-support.robot b/dasharo-compatibility/wifi-bluetooth-support.robot index 14b7bf1cad..a395aeb109 100644 --- a/dasharo-compatibility/wifi-bluetooth-support.robot +++ b/dasharo-compatibility/wifi-bluetooth-support.robot @@ -27,29 +27,26 @@ Suite Teardown Run Keyword *** Test Cases *** -WLE001.001 Wireless card detection (Ubuntu) +WLE001.201 Wireless card detection (Ubuntu) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. - Skip If not ${WIRELESS_CARD_SUPPORT} WLE001.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} WLE001.001 not supported - Log To Console Remember to test all variants of wireless cards. - Log Remember to test all variants of wireless cards. WARN - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User + Skip If not ${WIRELESS_CARD_SUPPORT} WLE001.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} WLE001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} WLE001.201 not supported + Wireless Card Detection ${ENV_ID_UBUNTU} - ${out}= Execute Command In Terminal lspci | grep "Network controller:" - Should Match ${out} *${WIFI_CARD_UBUNTU}* - Log To Console The test passed for the ${WIFI_CARD_UBUNTU} wireless card - Log The test passed for the ${WIFI_CARD_UBUNTU} wireless card WARN - Exit From Root User +WLE001.202 Wireless card detection (Fedora) + [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated + ... correctly and can be detected from the operating system. + Skip If not ${WIRELESS_CARD_SUPPORT} WLE001.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} WLE001.202 not supported + Wireless Card Detection ${ENV_ID_FEDORA} -WLE001.002 Wireless card detection (Windows) +WLE001.301 Wireless card detection (Windows) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. - Skip If not ${WIRELESS_CARD_SUPPORT} WLE001.002 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} WLE001.002 not supported + Skip If not ${WIRELESS_CARD_SUPPORT} WLE001.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} WLE001.301 not supported Log To Console Remember to test all variants of wireless cards. Log Remember to test all variants of wireless cards. WARN Power On @@ -60,31 +57,30 @@ WLE001.002 Wireless card detection (Windows) Log To Console The test passed for the ${WIFI_CARD} wireless card Log The test passed for the ${WIFI_CARD} wireless card WARN -WLE002.001 Wi-Fi scanning (Ubuntu) +WLE002.201 Wi-Fi scanning (Ubuntu) [Documentation] Check whether the Wi-Fi functionality of card is ... initialized correctly and can be used from within the ... operating system.. [Tags] minimal-regression - Skip If not ${WIRELESS_CARD_WIFI_SUPPORT} WLE002.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} WLE002.001 not supported - Log To Console Remember to test all variants of wireless cards. - Log Remember to test all variants of wireless cards. WARN - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Scan For Wi-Fi In Linux + Skip If not ${WIRELESS_CARD_WIFI_SUPPORT} WLE002.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} WLE002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} WLE002.201 not supported + Wi-Fi Scanning ${ENV_ID_UBUNTU} - ${current_card}= Execute Command In Terminal lspci | grep "Network controller: | awk -F": " '{print $2}" - Exit From Root User - Log To Console The test passed for the ${current_card} wireless card - Log The test passed for the ${current_card} wireless card WARN +WLE002.202 Wi-Fi scanning (Fedora) + [Documentation] Check whether the Wi-Fi functionality of card is + ... initialized correctly and can be used from within the + ... operating system.. + [Tags] minimal-regression + Skip If not ${WIRELESS_CARD_WIFI_SUPPORT} WLE002.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} WLE002.202 not supported + Wi-Fi Scanning ${ENV_ID_FEDORA} -WLE002.002 Wi-Fi scanning (Windows) +WLE002.301 Wi-Fi scanning (Windows) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. - Skip If not ${WIRELESS_CARD_WIFI_SUPPORT} WLE002.002 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} WLE002.002 not supported + Skip If not ${WIRELESS_CARD_WIFI_SUPPORT} WLE002.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} WLE002.301 not supported Log To Console Remember to test all variants of wireless cards. Log Remember to test all variants of wireless cards. WARN Power On @@ -100,24 +96,22 @@ WLE002.002 Wi-Fi scanning (Windows) Log To Console The test passed for the ${current_card} wireless card Log The test passed for the ${current_card} wireless card WARN -WLE003.001 Bluetooth scanning (Ubuntu) +WLE003.201 Bluetooth scanning (Ubuntu) [Documentation] Check whether the Bluetooth functionality of card is ... initialized correctly and can be used from within the ... operating system. - Skip If not ${WIRELESS_CARD_BLUETOOTH_SUPPORT} WLE003.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} WLE003.001 not supported - Log To Console Remember to test all variants of wireless cards. - Log Remember to test all variants of wireless cards. WARN - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Scan For Bluetooth In Linux + Skip If not ${WIRELESS_CARD_BLUETOOTH_SUPPORT} WLE003.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} WLE003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} WLE003.201 not supported + Bluetooth Scanning ${ENV_ID_UBUNTU} - ${current_card}= Execute Command In Terminal lspci | grep "Network controller: | awk -F": " '{print $2}" - Exit From Root User - Log To Console The test passed for the ${current_card} wireless card - Log The test passed for the ${current_card} wireless card WARN +WLE003.202 Bluetooth scanning (Fedora) + [Documentation] Check whether the Bluetooth functionality of card is + ... initialized correctly and can be used from within the + ... operating system. + Skip If not ${WIRELESS_CARD_BLUETOOTH_SUPPORT} WLE003.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} WLE003.202 not supported + Bluetooth Scanning ${ENV_ID_FEDORA} # TBD - Run scanning bluetooth via powershell and list aviailable devices # test case below just check connected bluetooth devices @@ -131,3 +125,61 @@ WLE003.001 Bluetooth scanning (Ubuntu) # Login to Windows # ${out}= Execute Command in Terminal Get-PnpDevice -class Bluetooth # Should Contain X Times ${out} OK 4 + + +*** Keywords *** +Wireless Card Detection + [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated + ... correctly and can be detected from the operating system. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + Log To Console Remember to test all variants of wireless cards. + Log Remember to test all variants of wireless cards. WARN + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + + ${out}= Execute Command In Terminal lspci | grep "Network controller:" + Should Match ${out} *${WIFI_CARD_UBUNTU}* + Log To Console The test passed for the ${WIFI_CARD_UBUNTU} wireless card + Log The test passed for the ${WIFI_CARD_UBUNTU} wireless card WARN + Exit From Root User + +Wi-Fi Scanning + [Documentation] Check whether the Wi-Fi functionality of card is + ... initialized correctly and can be used from within the + ... operating system.. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + Log To Console Remember to test all variants of wireless cards. + Log Remember to test all variants of wireless cards. WARN + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + Scan For Wi-Fi In Linux + + ${current_card}= Execute Command In Terminal lspci | grep "Network controller: | awk -F": " '{print $2}" + Exit From Root User + Log To Console The test passed for the ${current_card} wireless card + Log The test passed for the ${current_card} wireless card WARN + +Bluetooth Scanning + [Documentation] Check whether the Bluetooth functionality of card is + ... initialized correctly and can be used from within the + ... operating system. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + Log To Console Remember to test all variants of wireless cards. + Log Remember to test all variants of wireless cards. WARN + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + Scan For Bluetooth In Linux + + ${current_card}= Execute Command In Terminal lspci | grep "Network controller: | awk -F": " '{print $2}" + Exit From Root User + Log To Console The test passed for the ${current_card} wireless card + Log The test passed for the ${current_card} wireless card WARN From 7c68ea57fcb1cd578feee1287615127c2ca5e4c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Sat, 29 Mar 2025 06:58:12 +0100 Subject: [PATCH 254/416] display-ports-and-lcd-support: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../display-ports-and-lcd-support.robot | 110 ++++++++++++------ 1 file changed, 72 insertions(+), 38 deletions(-) diff --git a/dasharo-compatibility/display-ports-and-lcd-support.robot b/dasharo-compatibility/display-ports-and-lcd-support.robot index 65058f9d8e..72a539a5c1 100644 --- a/dasharo-compatibility/display-ports-and-lcd-support.robot +++ b/dasharo-compatibility/display-ports-and-lcd-support.robot @@ -22,19 +22,22 @@ Suite Teardown Log Out And Close Connection *** Test Cases *** -DSP001.002 - Internal display in OS (Ubuntu) +DSP001.201 - Internal display in OS (Ubuntu) [Documentation] Check whether an internal display is visible in ... Ubuntu. - Skip If not ${INTERNAL_LCD_DISPLAY_SUPPORT} DSP001.002 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP001.002 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Check Internal LCD Linux - Exit From Root User + Skip If not ${INTERNAL_LCD_DISPLAY_SUPPORT} DSP001.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP001.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" DSP001.201 not supported + Internal Display In OS ${ENV_ID_UBUNTU} -DSP001.003 - Internal display in OS (Windows) +DSP001.202 - Internal display in OS (Fedora) + [Documentation] Check whether an internal display is visible in + ... Ubuntu. + Skip If not ${INTERNAL_LCD_DISPLAY_SUPPORT} DSP001.202 not supported + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" DSP003.202 not supported + Internal Display In OS ${ENV_ID_FEDORA} + +DSP001.301 - Internal display in OS (Windows) [Documentation] Check whether an internal display is visible in ... Windows OS. Skip If not ${INTERNAL_LCD_DISPLAY_SUPPORT} DSP001.002 not supported @@ -47,60 +50,91 @@ DSP002.201 - External HDMI display in OS (Ubuntu) [Documentation] Check whether an external HDMI display is visible in ... Linux OS. An external HDMI display must be provided in ... the platform config. - Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP003.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP003.001 not supported - Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" - DSP002 - External HDMI Display ${ENV_ID_UBUNTU} + Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP002.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP002.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" DSP001.201 not supported + External HDMI Display ${ENV_ID_UBUNTU} + +DSP002.202 - External HDMI display in OS (Fedora) + [Documentation] Check whether an external HDMI display is visible in + ... Fedora OS. An external HDMI display must be provided in + ... the platform config. + Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP002.002 not supported + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" DSP003.202 not supported + External HDMI Display ${ENV_ID_FEDORA} DSP002.301 - External HDMI display in OS (Windows) [Documentation] Check whether an external HDMI display is visible in ... Windows OS. An external HDMI display must be provided in ... the platform config. - Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP002.002 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} DSP002.002 not supported + Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP002.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} DSP002.301 not supported Power On Login To Windows Check HDMI Windows -DSP002.202 - External HDMI display in OS (Fedora) - [Documentation] Check whether an external HDMI display is visible in - ... Fedora OS. An external HDMI display must be provided in +DSP003.201 - External DP display in OS (Ubuntu) + [Documentation] Check whether an external Display Port is visible in + ... Linux OS. An external Display Port must be provided in ... the platform config. - Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP002.002 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP002.002 not supported - Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" - DSP002 - External HDMI Display ${ENV_ID_FEDORA} + Skip If not ${EXTERNAL_DISPLAY_PORT_SUPPORT} DSP003.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP003.201 supported + Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" DSP001.201 not supported + External DP Display In OS ${ENV_ID_UBUNTU} -DSP003.001 - External DP display in OS (Ubuntu) +DSP003.202 - External DP display in OS (Fedora) [Documentation] Check whether an external Display Port is visible in ... Linux OS. An external Display Port must be provided in ... the platform config. - Skip If not ${EXTERNAL_DISPLAY_PORT_SUPPORT} DSP003.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP003.001 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Check External DP In Linux - Exit From Root User + Skip If not ${EXTERNAL_DISPLAY_PORT_SUPPORT} DSP003.202 not supported + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" DSP003.202 not supported + External DP Display In OS ${ENV_ID_FEDORA} -DSP003.002 - External DP display in OS (Windows) +DSP003.301 - External DP display in OS (Windows) [Documentation] Check whether an external Display Port is visible in ... Windows OS. An external Display Port must be provided in ... the platform config. - Skip If not ${EXTERNAL_DISPLAY_PORT_SUPPORT} DSP003.002 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} DSP003.002 not supported + Skip If not ${EXTERNAL_DISPLAY_PORT_SUPPORT} DSP003.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} 301.002 not supported Power On Login To Windows Check DP Windows *** Keywords *** -DSP002 - External HDMI Display - [Arguments] ${tested_os} +External HDMI Display + [Documentation] Check whether an external HDMI display is visible in + ... Linux OS. An external HDMI display must be provided in + ... the platform config. + [Tags] robot:private + [Arguments] ${os_id} Power On - Boot System Or From Connected Disk ${tested_os} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User Check External HDMI In Linux Exit From Root User + +Internal Display In OS + [Documentation] Check whether an internal display is visible + [Tags] robot:private + [Arguments] ${os_id} + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + Check Internal LCD Linux + Exit From Root User + +External DP Display In OS + [Documentation] Check whether an external Display Port is visible in + ... Linux OS. An external Display Port must be provided in + ... the platform config. + [Tags] robot:private + [Arguments] ${os_id} + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + Check External DP In Linux + Exit From Root User From d51f05015fdde706e79df34faf88317f13b4ced4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Sat, 29 Mar 2025 06:58:36 +0100 Subject: [PATCH 255/416] audio-subsystem: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/audio-subsystem.robot | 91 ++++++++++++++------- 1 file changed, 62 insertions(+), 29 deletions(-) diff --git a/dasharo-compatibility/audio-subsystem.robot b/dasharo-compatibility/audio-subsystem.robot index 601d922c1b..031ff9b7b3 100644 --- a/dasharo-compatibility/audio-subsystem.robot +++ b/dasharo-compatibility/audio-subsystem.robot @@ -23,29 +23,26 @@ Suite Teardown Run Keyword *** Test Cases *** -AUD001.001 Audio subsystem detection (Ubuntu) +AUD001.201 Audio subsystem detection (Ubuntu) [Documentation] Check whether the audio subsystem is initialized correctly ... and can be detected in Linux OS. - Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} AUD001.001 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User + Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} AUD001.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" AUD001.201 not supported + Audio Subsystem Detection ${ENV_ID_UBUNTU} - ${out}= Execute Linux Command cat /sys/class/sound/card0/hwC0D*/chip_name - Should Not Be Empty - ... ${DEVICE_AUDIO1} - ... msg=At least DEVICE_AUDIO01 must be defined in platform config if audio suite is enabled - Should Contain ${out} ${DEVICE_AUDIO1} - Should Contain ${out} ${DEVICE_AUDIO2} - Exit From Root User +AUD001.202 Audio subsystem detection (Fedora) + [Documentation] Check whether the audio subsystem is initialized correctly + ... and can be detected in Linux OS. + Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.202 not supported + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" AUD001.202 not supported + Audio Subsystem Detection ${ENV_ID_FEDORA} -AUD001.002 Audio subsystem detection (Windows) +AUD001.301 Audio subsystem detection (Windows) [Documentation] Check whether the audio subsystem is initialized correctly ... and can be detected in Windows 11. - Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.002 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} AUD001.002 not supported + Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} AUD001.301 not supported Power On Login To Windows ${out}= Get Sound Devices Windows @@ -70,20 +67,22 @@ AUD001.002 Audio subsystem detection (Windows) # [Documentation] Check whether the audio subsystem is able to capture # ... audio. -AUD004.001 External headset recognition (Ubuntu) +AUD004.201 External headset recognition (Ubuntu) [Documentation] Check whether the external headset is recognized ... properly after plugging in micro jack into slot. - Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD004.001 not supported - Skip If not ${EXTERNAL_HEADSET_SUPPORT} AUD004.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} AUD004.001 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${out}= Execute Linux Command amixer -c 0 contents | grep -A 2 'Headphone' | cat - ${headset_string}= Set Variable values=on - Should Contain ${out} ${headset_string} - Exit From Root User + Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD004.201 not supported + Skip If not ${EXTERNAL_HEADSET_SUPPORT} AUD004.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} AUD004.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" AUD004.201 not supported + External Headset Recognition ${ENV_ID_UBUNTU} + +AUD004.202 External headset recognition (Fedora) + [Documentation] Check whether the external headset is recognized + ... properly after plugging in micro jack into slot. + Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD004.202 not supported + Skip If not ${EXTERNAL_HEADSET_SUPPORT} AUD004.202 not supported + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" AUD004.202 not supported + External Headset Recognition ${ENV_ID_FEDORA} # Work in progress # AUD004.002 External headset recognition (Windows) @@ -98,3 +97,37 @@ AUD004.001 External headset recognition (Ubuntu) # ${out}= Execute Command In Terminal Get-AudioDevice -list | ft Index, Default, Type, Name # Should Contain ${out} ${headset_string} # Exit from root user + + +*** Keywords *** +Audio Subsystem Detection + [Documentation] Check whether the audio subsystem is initialized correctly + ... and can be detected in Linux OS. + [Tags] robot:private + [Arguments] ${os_id} + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + + ${out}= Execute Linux Command cat /sys/class/sound/card0/hwC0D*/chip_name + Should Not Be Empty + ... ${DEVICE_AUDIO1} + ... msg=At least DEVICE_AUDIO01 must be defined in platform config if audio suite is enabled + Should Contain ${out} ${DEVICE_AUDIO1} + Should Contain ${out} ${DEVICE_AUDIO2} + Exit From Root User + +External Headset Recognition + [Documentation] Check whether the external headset is recognized + ... properly after plugging in micro jack into slot. + [Tags] robot:private + [Arguments] ${os_id} + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + ${out}= Execute Linux Command amixer -c 0 contents | grep -A 2 'Headphone' | cat + ${headset_string}= Set Variable values=on + Should Contain ${out} ${headset_string} + Exit From Root User From 0cee3ddbbc0996f49f25fad7ef1b082dadf8c4b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Sat, 29 Mar 2025 06:59:15 +0100 Subject: [PATCH 256/416] miniPCIe-slot-verification: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../miniPCIe-slot-verification.robot | 142 +++++++++++++----- 1 file changed, 105 insertions(+), 37 deletions(-) diff --git a/dasharo-compatibility/miniPCIe-slot-verification.robot b/dasharo-compatibility/miniPCIe-slot-verification.robot index 50b87d9d8e..4bff8ba0cb 100644 --- a/dasharo-compatibility/miniPCIe-slot-verification.robot +++ b/dasharo-compatibility/miniPCIe-slot-verification.robot @@ -18,79 +18,93 @@ Resource ../keys.robot # exactly the case right now) Suite Setup Run Keywords ... Prepare Test Suite -... AND -... Skip If not ${MINI_PC_IE_SLOT_SUPPORT} MiniPCIe slot tests not supported +# ... AND +# ... Skip If not ${MINI_PC_IE_SLOT_SUPPORT} MiniPCIe slot tests not supported Suite Teardown Run Keyword ... Log Out And Close Connection *** Test Cases *** -MWL001.001 Wireless card detection (Ubuntu) +MWL001.201 Wireless card detection (Ubuntu) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL001.001 not supported - Power On - Login To Linux - Switch To Root User - ${out}= List Devices In Linux pci - Should Contain ${out} ${WIFI_CARD} - Exit From Root User + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL001.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" MWL001.201 not supported + Wireless Card Detection ${ENV_ID_UBUNTU} -MWL001.002 Wireless card detection (Windows) +MWL001.202 Wireless card detection (Fedora) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} WLE001.002 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL001.202 not supported + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" MWL001.202 not supported + Wireless Card Detection ${ENV_ID_FEDORA} + +MWL001.301 Wireless card detection (Windows) + [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated + ... correctly and can be detected from the operating system. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} WLE001.301 not supported Power On Login To Windows ${out}= Execute Command In Terminal Get-PnpDevice -PresentOnly | Select-String -Pattern "Wi-Fi" Should Contain ${out} ${WIFI_CARD} -MWL002.001 Wi-Fi scanning (Ubuntu) +MWL002.201 Wi-Fi scanning (Ubuntu) [Documentation] Check whether the Wi-Fi functionality of card is ... initialized correctly and can be used from within the ... operating system.. - Skip If not ${MINI_PC_IE_SLOT_SUPPORT} MWL002.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL002.001 not supported - Power On - Login To Linux - Switch To Root User - Scan For Wi-Fi In Linux - Exit From Root User + Skip If not ${MINI_PC_IE_SLOT_SUPPORT} MWL002.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL002.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" MWL002.201 not supported + Wi-Fi Scanning ${ENV_ID_UBUNTU} -MWL002.002 Wi-Fi scanning (Windows) +MWL002.202 Wi-Fi scanning (Fedora) + [Documentation] Check whether the Wi-Fi functionality of card is + ... initialized correctly and can be used from within the + ... operating system.. + Skip If not ${MINI_PC_IE_SLOT_SUPPORT} MWL002.202 not supported + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" MWL002.202 not supported + Wi-Fi Scanning ${ENV_ID_FEDORA} + +MWL002.301 Wi-Fi scanning (Windows) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} MLW002.002 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} MLW002.301 not supported Power On Login To Windows ${out}= Execute Command In Terminal netsh wlan show network Should Contain ${out} 3mdeb_abr Should Contain ${out} 3mdeb_abr_5GHz -MWL003.001 Bluetooth scanning (Ubuntu) +MWL003.201 Bluetooth scanning (Ubuntu) [Documentation] Check whether the Bluetooth functionality of card is ... initialized correctly and can be used from within the ... operating system. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL003.001 not supported - Power On - Login To Linux - Switch To Root User - Scan For Bluetooth In Linux - Exit From Root User + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL003.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" MWL003.201 not supported + Bluetooth Scanning ${ENV_ID_UBUNTU} + +MWL003.202 Bluetooth scanning (Fedora) + [Documentation] Check whether the Bluetooth functionality of card is + ... initialized correctly and can be used from within the + ... operating system. + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" MWL003.202 not supported + Bluetooth Scanning ${ENV_ID_FEDORA} # MWL003.002 Bluetooth scanning (Windows) # [Documentation] TBD -MWL004.001 LTE card detection (Ubuntu) +MWL004.201 LTE card detection (Ubuntu) [Documentation] Check whether the LTE card is detected correctly in the ... operating system. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL004.001 not supported - Power On - Login To Linux - Switch To Root User - ${out}= List Devices In Linux usb - Should Contain ${out} ${LTE_CARD} - Exit From Root User + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL004.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" MWL004.201 not supported + LTE Card Detection ${ENV_ID_UBUNTU} + +MWL004.202 LTE card detection (Fedora) + [Documentation] Check whether the LTE card is detected correctly in the + ... operating system. + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" MWL004.202 not supported + LTE Card Detection ${ENV_ID_FEDORA} # MWL004.002 LTE card detection (Windows) # [Documentation] Check whether the LTE card is detected correctly in the @@ -100,3 +114,57 @@ MWL004.001 LTE card detection (Ubuntu) # Login to Windows # ${out}= List Windows USB Devices # Should Contain ${out} ${LTE_card} + + +*** Keywords *** +Wireless Card Detection + [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated + ... correctly and can be detected from the operating system. + [Tags] robot:private + [Arguments] ${os_id} + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + ${out}= List Devices In Linux pci + Should Contain ${out} ${WIFI_CARD} + Exit From Root User + +Wi-Fi Scanning + [Documentation] Check whether the Wi-Fi functionality of card is + ... initialized correctly and can be used from within the + ... operating system. + [Tags] robot:private + [Arguments] ${os_id} + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + Scan For Wi-Fi In Linux + Exit From Root User + +Bluetooth Scanning + [Documentation] Check whether the Bluetooth functionality of card is + ... initialized correctly and can be used from within the + ... operating system. + [Tags] robot:private + [Arguments] ${os_id} + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + Scan For Bluetooth In Linux + Exit From Root User + +LTE Card Detection + [Documentation] Check whether the LTE card is detected correctly in the + ... operating system. + [Tags] robot:private + [Arguments] ${os_id} + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + ${out}= List Devices In Linux usb + Should Contain ${out} ${LTE_CARD} + Exit From Root User From 20fae6513d65c4567bd0885ff40dddb121be02cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Sat, 29 Mar 2025 06:59:34 +0100 Subject: [PATCH 257/416] dmidecode.robot: Add Fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/dmidecode.robot | 121 ++++++++++++++++++++++---- 1 file changed, 104 insertions(+), 17 deletions(-) diff --git a/dasharo-compatibility/dmidecode.robot b/dasharo-compatibility/dmidecode.robot index 3321c26786..2ab7bf9b97 100644 --- a/dasharo-compatibility/dmidecode.robot +++ b/dasharo-compatibility/dmidecode.robot @@ -27,57 +27,142 @@ Suite Teardown Run Keyword *** Test Cases *** -DMI001.001 Verify the device serial number +DMI001.201 Verify the device serial number [Documentation] Check whether the DUT serial number is the same as it is ... expected. - Skip If not ${SERIAL_NUMBER_VERIFICATION} DMI001.001 not supported + Skip If not ${SERIAL_NUMBER_VERIFICATION} DMI001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI001.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} Should Contain ${DMI_SYSTEM} Serial Number: ${DMIDECODE_SERIAL_NUMBER} IF ${SERIAL_FROM_MAC} Compare Serial Number From MAC ${DMI_SYSTEM} -DMI002.001 Verify the firmware version +DMI001.202 Verify the device serial number + [Documentation] Check whether the DUT serial number is the same as it is + ... expected. + Skip If not ${SERIAL_NUMBER_VERIFICATION} DMI001.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DMI001.202 not supported + Get SMBIOS Values ${ENV_ID_FEDORA} + Should Contain ${DMI_SYSTEM} Serial Number: ${DMIDECODE_SERIAL_NUMBER} + IF ${SERIAL_FROM_MAC} Compare Serial Number From MAC ${DMI_SYSTEM} + +DMI002.201 Verify the firmware version [Documentation] Check whether the firmware version on the DUT is the ... same as it is expected. [Tags] minimal-regression - Skip If not ${FIRMWARE_NUMBER_VERIFICATION} DMI002.001 not supported + Skip If not ${FIRMWARE_NUMBER_VERIFICATION} DMI002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI002.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} Should Contain ${DMI_BIOS} Version: ${DMIDECODE_FIRMWARE_VERSION} IF ${FIRMWARE_FROM_BINARY} Firmware Version Verification From Binary -DMI003.001 Verify the firmware product name +DMI002.202 Verify the firmware version + [Documentation] Check whether the firmware version on the DUT is the + ... same as it is expected. + [Tags] minimal-regression + Skip If not ${FIRMWARE_NUMBER_VERIFICATION} DMI002.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DMI002.202 not supported + Get SMBIOS Values ${ENV_ID_FEDORA} + Should Contain ${DMI_BIOS} Version: ${DMIDECODE_FIRMWARE_VERSION} + IF ${FIRMWARE_FROM_BINARY} Firmware Version Verification From Binary + +DMI003.201 Verify the firmware product name [Documentation] Check whether the DUT product name is the same as it is ... expected. [Tags] minimal-regression - Skip If not ${PRODUCT_NAME_VERIFICATION} DMI003.001 not supported + Skip If not ${PRODUCT_NAME_VERIFICATION} DMI003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI003.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} Should Contain ${DMI_SYSTEM} Product Name: ${DMIDECODE_PRODUCT_NAME} -DMI004.001 Verify the firmware release date +DMI003.202 Verify the firmware product name + [Documentation] Check whether the DUT product name is the same as it is + ... expected. + [Tags] minimal-regression + Skip If not ${PRODUCT_NAME_VERIFICATION} DMI003.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DMI003.202 not supported + Get SMBIOS Values ${ENV_ID_FEDORA} + Should Contain ${DMI_SYSTEM} Product Name: ${DMIDECODE_PRODUCT_NAME} + +DMI004.201 Verify the firmware release date [Documentation] Check whether the firmware release date on the DUT is ... the same as it is expected. - Skip If not ${RELEASE_DATE_VERIFICATION} DMI004.001 not supported + Skip If not ${RELEASE_DATE_VERIFICATION} DMI004.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI004.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} Should Contain ${DMI_BIOS} Release Date: ${DMIDECODE_RELEASE_DATE} -DMI005.001 Verify the firmware manufacturer +DMI004.202 Verify the firmware release date + [Documentation] Check whether the firmware release date on the DUT is + ... the same as it is expected. + Skip If not ${RELEASE_DATE_VERIFICATION} DMI004.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DMI004.202 not supported + Get SMBIOS Values ${ENV_ID_FEDORA} + Should Contain ${DMI_BIOS} Release Date: ${DMIDECODE_RELEASE_DATE} + +DMI005.201 Verify the firmware manufacturer [Documentation] Check whether the firmware manufacturer on the DUT is ... the same as it is expected. - Skip If not ${MANUFACTURER_VERIFICATION} DMI005.001 not supported + Skip If not ${MANUFACTURER_VERIFICATION} DMI005.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI005.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} Should Contain ${DMI_SYSTEM} Manufacturer: ${DMIDECODE_MANUFACTURER} Should Contain ${DMI_BASEBOARD} Manufacturer: ${DMIDECODE_MANUFACTURER} -DMI006.001 Verify the firmware vendor +DMI005.202 Verify the firmware manufacturer + [Documentation] Check whether the firmware manufacturer on the DUT is + ... the same as it is expected. + Skip If not ${MANUFACTURER_VERIFICATION} DMI005.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DMI005.202 not supported + Get SMBIOS Values ${ENV_ID_FEDORA} + Should Contain ${DMI_SYSTEM} Manufacturer: ${DMIDECODE_MANUFACTURER} + Should Contain ${DMI_BASEBOARD} Manufacturer: ${DMIDECODE_MANUFACTURER} + +DMI006.201 Verify the firmware vendor + [Documentation] Check whether the firmware vendor on the DUT is the same + ... as it is expected. + Skip If not ${VENDOR_VERIFICATION} DMI006.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI006.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} + Should Contain ${DMI_BIOS} Vendor: ${DMIDECODE_VENDOR} + +DMI006.202 Verify the firmware vendor [Documentation] Check whether the firmware vendor on the DUT is the same ... as it is expected. - Skip If not ${VENDOR_VERIFICATION} DMI006.001 not supported + Skip If not ${VENDOR_VERIFICATION} DMI006.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DMI006.202 not supported + Get SMBIOS Values ${ENV_ID_FEDORA} Should Contain ${DMI_BIOS} Vendor: ${DMIDECODE_VENDOR} -DMI007.001 Verify the firmware family +DMI007.201 Verify the firmware family + [Documentation] Check whether the firmware family on the DUT is the same + ... as it is expected. + Skip If not ${FAMILY_VERIFICATION} DMI007.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI007.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} + Should Contain ${DMI_SYSTEM} Family: ${DMIDECODE_FAMILY} + +DMI007.202 Verify the firmware family [Documentation] Check whether the firmware family on the DUT is the same ... as it is expected. - Skip If not ${FAMILY_VERIFICATION} DMI007.001 not supported + Skip If not ${FAMILY_VERIFICATION} DMI007.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DMI007.202 not supported + Get SMBIOS Values ${ENV_ID_FEDORA} Should Contain ${DMI_SYSTEM} Family: ${DMIDECODE_FAMILY} -DMI008.001 Verify the firmware type +DMI008.201 Verify the firmware type + [Documentation] Check whether the firmware type on the DUT is the same + ... as it is expected. + Skip If not ${TYPE_VERIFICATION} DMI008.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI008.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} + Should Contain ${DMI_CHASSIS} Type: ${DMIDECODE_TYPE} + +DMI008.202 Verify the firmware type [Documentation] Check whether the firmware type on the DUT is the same ... as it is expected. - Skip If not ${TYPE_VERIFICATION} DMI008.001 not supported + Skip If not ${TYPE_VERIFICATION} DMI008.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DMI008.202 not supported + Get SMBIOS Values ${ENV_ID_FEDORA} Should Contain ${DMI_CHASSIS} Type: ${DMIDECODE_TYPE} @@ -87,8 +172,10 @@ Get SMBIOS Values ... and Chassis) and store them in suite variables. Each table is stored ... in a dedicated variable because their fields have generic names (e.g. ... Type) that is later extracted in the test cases. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User From a73b8b7dd9371413b0252eac4b5de4884612578d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Sat, 29 Mar 2025 07:20:34 +0100 Subject: [PATCH 258/416] dasharo-compatibility/dcu.robot: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/dcu.robot | 205 ++++++++++++++++++++++---------- keywords.robot | 2 +- 2 files changed, 144 insertions(+), 63 deletions(-) diff --git a/dasharo-compatibility/dcu.robot b/dasharo-compatibility/dcu.robot index a6e4d40513..e6cc156d49 100644 --- a/dasharo-compatibility/dcu.robot +++ b/dasharo-compatibility/dcu.robot @@ -31,69 +31,65 @@ ${FW_COPY}= coreboot.rom *** Test Cases *** -DCU001.001 Change the UUID +DCU001.201 Change the UUID [Documentation] This test case verifies that the UUID encoded in the DMI ... table of an image can be changed using DCU. - Skip If not ${DCU_UUID_SUPPORT} DCU001.001 not supported + Skip If not ${DCU_UUID_SUPPORT} DCU001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DCU001.201 not supported + Change The UUID ${ENV_ID_UBUNTU} - ${uuid}= Uuid 4 - DCU Smbios Set UUID In File ${FW_COPY} ${uuid} - Flash Firmware ${FW_COPY} - Make Sure New Firmware Is Booted After Flashing - - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${uuid_read}= Get Firmware UUID - Should Be Equal As Strings '${uuid}' '${uuid_read}' +DCU001.202 Change the UUID + [Documentation] This test case verifies that the UUID encoded in the DMI + ... table of an image can be changed using DCU. + Skip If not ${DCU_UUID_SUPPORT} DCU001.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DCU001.202 not supported + Change The UUID ${ENV_ID_FEDORA} -DCU002.001 Change the serial number +DCU002.201 Change the serial number [Documentation] This test case verifies that the serial number encoded ... in the DMI table of an image can be changed using DCU. - Skip If not ${DCU_SERIAL_SUPPORT} DCU002.001 not supported - - ${serial_no}= Random Int min=10000000 max=99999999 - DCU Smbios Set Serial In File ${FW_COPY} ${serial_no} - Flash Firmware ${FW_COPY} - Make Sure New Firmware Is Booted After Flashing + Skip If not ${DCU_SERIAL_SUPPORT} DCU002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DCU002.201 not supported + Change The Serial Number ${ENV_ID_UBUNTU} - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${serial_no_read}= Get Firmware Serial Number - Should Be Equal As Strings '${serial_no}' '${serial_no_read}' +DCU002.202 Change the serial number + [Documentation] This test case verifies that the serial number encoded + ... in the DMI table of an image can be changed using DCU. + Skip If not ${DCU_SERIAL_SUPPORT} DCU002.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DCU002.202 not supported + Change The Serial Number ${ENV_ID_FEDORA} -DCU003.001 Change the bootsplash logo +DCU003.201 Change the bootsplash logo [Documentation] This test case verifies that the bootsplash logo encoded ... into an image can be changed using DCU. ... PLEASE NOTE that a display device needs to be physically connected ... to the DUT for this test to work. - Skip If not ${CUSTOM_LOGO_SUPPORT} DCU003.001 not supported + Skip If not ${CUSTOM_LOGO_SUPPORT} DCU003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DCU003.201 not supported + Change The Bootsplash Logo ${ENV_ID_UBUNTU} - ${img_sum}= Set Variable f91fe017bef1f98ce292bde1c2c7c61edf7b51e9c96d25c33bfac90f50de4513 - ${logo_path}= Join Path ${TEST_DATA_DIR}/dcu logo.bmp - DCU Logo Set In File ${FW_COPY} ${logo_path} - Flash Firmware ${FW_COPY} - Make Sure New Firmware Is Booted After Flashing - - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Set Global Variable ${DUT_CONNECTION_METHOD} SSH - Login To Linux - Switch To Root User +DCU003.202 Change the bootsplash logo + [Documentation] This test case verifies that the bootsplash logo encoded + ... into an image can be changed using DCU. + ... PLEASE NOTE that a display device needs to be physically connected + ... to the DUT for this test to work. + Skip If not ${CUSTOM_LOGO_SUPPORT} DCU003.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DCU003.202 not supported + Change The Bootsplash Logo ${ENV_ID_FEDORA} - ${out}= Execute Command In Terminal - ... sha256sum /sys/firmware/acpi/bgrt/image - ${unplugged}= Run Keyword And Return Status - ... Should Contain ${out} No such file - IF ${unplugged} == ${TRUE} - Fail Please make sure that a display device is connected to the DUT - END - Should Contain ${out} ${img_sum} +DCU004.201 Verify SMMSTORE changes + [Documentation] This test case verifies that changes made to the + ... SMMSTORE via DCU are properly applied and visible in Setup menu. + ... Verified using Setup menu where possible. When tested on a device + ... which uses DCU for accessing Setup variables the results might not + ... be trustworthy. + Skip If + ... '''${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}''' == '''${EMPTY}''' + ... DCU004.201 Verify SMMSTORE changes not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DCU004.201 not supported + Verify SMMSTORE Changes ${ENV_ID_UBUNTU} -DCU004.001 Verify SMMSTORE changes +DCU004.202 Verify SMMSTORE changes [Documentation] This test case verifies that changes made to the ... SMMSTORE via DCU are properly applied and visible in Setup menu. ... Verified using Setup menu where possible. When tested on a device @@ -101,17 +97,9 @@ DCU004.001 Verify SMMSTORE changes ... be trustworthy. Skip If ... '''${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}''' == '''${EMPTY}''' - ... DCU004.001 Verify SMMSTORE changes not supported - IF "${OPTIONS_LIB}"=="options-lib_uefi-setup-menu" - Verify SMMSTORE Changes (Setup Menu) - ELSE IF "${OPTIONS_LIB}"=="options-lib_dcu" - Log To Console - ... Verifying DCU possible only using on this device DCU. The test may not be trustworthy. - ... WARN - Verify SMMSTORE Changes (DCU) - ELSE - Fail Unsupported $OPTIONS_LIB: ${OPTIONS_LIB} - END + ... DCU004.202 Verify SMMSTORE changes not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DCU004.202 not supported + Verify SMMSTORE Changes ${ENV_ID_FEDORA} *** Keywords *** @@ -147,13 +135,14 @@ Verify SMMSTORE Changes (Setup Menu) Verify SMMSTORE Changes (DCU) [Documentation] This keyword verifies that changes made to the ... SMMSTORE via DCU are properly applied and visible in DCU. - + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} # Initial value cannot be checked and restored using DCU because the # variable store may not be initialized yet. ${initial_value}= Set Variable ${FALSE} ${new_value}= Set Variable ${TRUE} - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User DCU Variable Set UEFI Option In DUT ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE} ${new_value} @@ -174,10 +163,102 @@ Make Sure New Firmware Is Booted After Flashing ... Platforms without POWER_CTRL typically do nothing ... as an implementation of Power On etc. and they need a reboot after ... flashing + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} IF '''${POWER_CTRL}''' == '''NONE''' Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User Execute Reboot Command END + +Change The UUID + [Documentation] This test case verifies that the UUID encoded in the DMI + ... table of an image can be changed using DCU. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + Power On + Boot System Or From Connected Disk ${os_id} + + ${uuid}= Uuid 4 + DCU Smbios Set UUID In File ${FW_COPY} ${uuid} + Flash Firmware ${FW_COPY} + Make Sure New Firmware Is Booted After Flashing + + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + ${uuid_read}= Get Firmware UUID + Should Be Equal As Strings '${uuid}' '${uuid_read}' + +Change The Serial Number + [Documentation] This test case verifies that the serial number encoded + ... in the DMI table of an image can be changed using DCU. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + Power On + Boot System Or From Connected Disk ${os_id} + ${serial_no}= Random Int min=10000000 max=99999999 + DCU Smbios Set Serial In File ${FW_COPY} ${serial_no} + Flash Firmware ${FW_COPY} + Make Sure New Firmware Is Booted After Flashing + + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + ${serial_no_read}= Get Firmware Serial Number + Should Be Equal As Strings '${serial_no}' '${serial_no_read}' + +Change The Bootsplash Logo + [Documentation] This test case verifies that the bootsplash logo encoded + ... into an image can be changed using DCU. + ... PLEASE NOTE that a display device needs to be physically connected + ... to the DUT for this test to work. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + Power On + Boot System Or From Connected Disk ${os_id} + ${img_sum}= Set Variable f91fe017bef1f98ce292bde1c2c7c61edf7b51e9c96d25c33bfac90f50de4513 + ${logo_path}= Join Path ${TEST_DATA_DIR}/dcu logo.bmp + DCU Logo Set In File ${FW_COPY} ${logo_path} + Flash Firmware ${FW_COPY} + Make Sure New Firmware Is Booted After Flashing + + Power On + Boot System Or From Connected Disk ${os_id} + Set Global Variable ${DUT_CONNECTION_METHOD} SSH + Login To Linux + Switch To Root User + + ${out}= Execute Command In Terminal + ... sha256sum /sys/firmware/acpi/bgrt/image + ${unplugged}= Run Keyword And Return Status + ... Should Contain ${out} No such file + IF ${unplugged} == ${TRUE} + Fail Please make sure that a display device is connected to the DUT + END + Should Contain ${out} ${img_sum} + +Verify SMMSTORE Changes + [Documentation] This test case verifies that changes made to the + ... SMMSTORE via DCU are properly applied and visible in Setup menu. + ... Verified using Setup menu where possible. When tested on a device + ... which uses DCU for accessing Setup variables the results might not + ... be trustworthy. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + Power On + Boot System Or From Connected Disk ${os_id} + IF "${OPTIONS_LIB}"=="options-lib_uefi-setup-menu" + Verify SMMSTORE Changes (Setup Menu) + ELSE IF "${OPTIONS_LIB}"=="options-lib_dcu" + Log To Console + ... Verifying DCU possible only using on this device DCU. The test may not be trustworthy. + ... WARN + Verify SMMSTORE Changes (DCU) + ELSE + Fail Unsupported $OPTIONS_LIB: ${OPTIONS_LIB} + END diff --git a/keywords.robot b/keywords.robot index e8f99d0161..f0928e99d4 100644 --- a/keywords.robot +++ b/keywords.robot @@ -775,7 +775,7 @@ Execute Reboot Command # if the OS cannot be chosen from the bootmanager and rebooting # always boots the default one IF '${OPTIONS_LIB}' == 'options-lib_dcu' - Set Nextboot ${BOOTED_OS_ID} + Options-lib Dcu.Set Nextboot ${BOOTED_OS_ID} END Write Into Terminal reboot ELSE IF '${os}' == 'windows' From 0b14f9d241dd8a8d12f36f2a93eee1ec9b84bf43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Sat, 29 Mar 2025 07:27:21 +0100 Subject: [PATCH 259/416] platform-stability.robot: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/platform-stability.robot | 96 ++++++++++++++------ 1 file changed, 66 insertions(+), 30 deletions(-) diff --git a/dasharo-performance/platform-stability.robot b/dasharo-performance/platform-stability.robot index ef23e2d2c5..bf23de2a3d 100644 --- a/dasharo-performance/platform-stability.robot +++ b/dasharo-performance/platform-stability.robot @@ -52,42 +52,30 @@ STB001.001 Verify if no reboot occurs in the firmware ${timer}= Evaluate ${timer} + ${STABILITY_TEST_MEASURE_INTERVAL} END -STB001.002 Verify if no reboot occurs in the OS (Ubuntu) +STB001.201 Verify if no reboot occurs in the OS (Ubuntu) [Documentation] This test aims to verify that the DUT booted to the ... Operating System does not reset. The test is performed in multiple ... iterations - after a defined time an attempt to read the output of ... specific commands confirming the stability of work is repeated. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} STB001.002 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} STB001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} STB001.201 not supported + Verify If No Reboot Occurs In Linux ${ENV_ID_UBUNTU} - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${timer}= Convert To Integer 0 - Set Local Variable ${device_uptime} 0 - FOR ${i} IN RANGE (${STABILITY_TEST_DURATION} / ${STABILITY_TEST_MEASURE_INTERVAL}) + 1 - Log To Console \n ---------------------------------------------------------------- - Log To Console ${timer} min. - ${network_status}= Execute Command In Terminal ip link | grep -E 'enp|eno' - ${uptime_output}= Execute Command In Terminal cat /proc/uptime - ${uptime_list}= Split String ${uptime_output} ${SPACE} - ${current_uptime}= Convert To Number ${uptime_list}[0] - IF ${current_uptime} >= ${device_uptime} - Set Local Variable ${device_uptime} ${current_uptime} - ELSE - FAIL \n The device has been reset during the test! - END - Should Contain ${network_status} UP - Sleep ${STABILITY_TEST_MEASURE_INTERVAL}m - ${timer}= Evaluate ${timer} + ${STABILITY_TEST_MEASURE_INTERVAL} - END +STB001.202 Verify if no reboot occurs in the OS (Fedora) + [Documentation] This test aims to verify that the DUT booted to the + ... Operating System does not reset. The test is performed in multiple + ... iterations - after a defined time an attempt to read the output of + ... specific commands confirming the stability of work is repeated. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} STB001.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} STB001.202 not supported + Verify If No Reboot Occurs In Linux ${ENV_ID_FEDORA} -STB001.003 Verify if no reboot occurs in the OS (Windows) +STB001.301 Verify if no reboot occurs in the OS (Windows) [Documentation] This test aims to verify that the DUT booted to the ... Operating System does not reset. The test is performed in multiple ... iterations - after a defined time an attempt to read the output of ... specific commands confirming the stability of work is repeated. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} STB001.002 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} STB001.301 not supported Power On Login To Windows ${timer}= Convert To Integer 0 @@ -115,15 +103,63 @@ STB001.003 Verify if no reboot occurs in the OS (Windows) ${timer}= Evaluate ${timer} + ${STABILITY_TEST_MEASURE_INTERVAL} END -STB002.001 Verify if no unexpected boot errors appear in Linux logs +STB002.201 Verify if no unexpected boot errors appear in Linux logs + [Documentation] This test aims to verify that there are no unexpected + ... error ,essages in Linux kernel logs. + [Tags] minimal-regression + Skip If not ${PLATFORM_STABILITY_CHECKING} STB002.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} STB002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} STB002.201 not supported + Verify If No Unexpected Boot Errors Appear In Linux Logs ${ENV_ID_UBUNTU} + +STB002.202 Verify if no unexpected boot errors appear in Linux logs [Documentation] This test aims to verify that there are no unexpected ... error ,essages in Linux kernel logs. [Tags] minimal-regression - Skip If not ${PLATFORM_STABILITY_CHECKING} STB002.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If not ${PLATFORM_STABILITY_CHECKING} STB002.202 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} STB002.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} STB002.202 not supported + Verify If No Unexpected Boot Errors Appear In Linux Logs ${ENV_ID_FEDORA} + +*** Keywords *** +Verify If No Reboot Occurs In Linux + [Documentation] This test aims to verify that the DUT booted to the + ... Operating System does not reset. The test is performed in multiple + ... iterations - after a defined time an attempt to read the output of + ... specific commands confirming the stability of work is repeated. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + Power On + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + ${timer}= Convert To Integer 0 + Set Local Variable ${device_uptime} 0 + FOR ${i} IN RANGE (${STABILITY_TEST_DURATION} / ${STABILITY_TEST_MEASURE_INTERVAL}) + 1 + Log To Console \n ---------------------------------------------------------------- + Log To Console ${timer} min. + ${network_status}= Execute Command In Terminal ip link | grep -E 'enp|eno' + ${uptime_output}= Execute Command In Terminal cat /proc/uptime + ${uptime_list}= Split String ${uptime_output} ${SPACE} + ${current_uptime}= Convert To Number ${uptime_list}[0] + IF ${current_uptime} >= ${device_uptime} + Set Local Variable ${device_uptime} ${current_uptime} + ELSE + FAIL \n The device has been reset during the test! + END + Should Contain ${network_status} UP + Sleep ${STABILITY_TEST_MEASURE_INTERVAL}m + ${timer}= Evaluate ${timer} + ${STABILITY_TEST_MEASURE_INTERVAL} + END + +Verify If No Unexpected Boot Errors Appear In Linux Logs + [Documentation] This test aims to verify that there are no unexpected + ... error ,essages in Linux kernel logs. + [Tags] robot:private + [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User Check Unexpected Boot Errors From 30987e0764096a2536a75b2712a5c095bf930b29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Sat, 29 Mar 2025 07:41:58 +0100 Subject: [PATCH 260/416] cpu-status: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/cpu-status.robot | 141 +++++++++++++++++-------- 1 file changed, 97 insertions(+), 44 deletions(-) diff --git a/dasharo-compatibility/cpu-status.robot b/dasharo-compatibility/cpu-status.robot index d99b3ad627..382191b989 100644 --- a/dasharo-compatibility/cpu-status.robot +++ b/dasharo-compatibility/cpu-status.robot @@ -21,45 +21,56 @@ Suite Setup Run Keywords ... AND ... Skip If not ${CPU_TESTS_SUPPORT} CPU tests not supported ... AND -... Run Keyword If ${TESTS_IN_UBUNTU_SUPPORT} Reset UEFI Options To Defaults +... Reset UEFI Options To Defaults Suite Teardown Run Keyword ... Log Out And Close Connection *** Test Cases *** -CPU001.001 CPU works (Ubuntu) +CPU001.201 CPU works (Ubuntu) [Documentation] Check whether the CPU mounted on the DUT works. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU001.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPU001.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux -CPU001.002 CPU works (Windows) +CPU001.202 CPU works (Fedora) [Documentation] Check whether the CPU mounted on the DUT works. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU001.002 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPU001.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + +CPU001.301 CPU works (Windows) + [Documentation] Check whether the CPU mounted on the DUT works. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU001.301 not supported Power On Login To Windows -CPU002.001 CPU cache enabled (Ubuntu) +CPU002.201 CPU cache enabled (Ubuntu) [Documentation] Check whether the all declared for the DUT cache levels ... are enabled. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU002.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPU001.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux - ${mem_info}= Execute Linux Command getconf -a | grep CACHE - Check Cache Support ${mem_info} LEVEL1 - Pass Execution If not ${L2_CACHE_SUPPORT} DUT supports only L1 cache - Check Cache Support ${mem_info} LEVEL2 - Pass Execution If not ${L3_CACHE_SUPPORT} DUT supports only L1 and L2 cache - Check Cache Support ${mem_info} LEVEL3 - Pass Execution If not ${L4_CACHE_SUPPORT} DUT supports only L1, L2 and L3 cache - Check Cache Support ${mem_info} LEVEL4 + CPU Cache Enabled Linux + +CPU002.202 CPU cache enabled (Fedora) + [Documentation] Check whether the all declared for the DUT cache levels + ... are enabled. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPU001.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + CPU Cache Enabled Linux -CPU002.002 CPU cache enabled (Windows) +CPU002.301 CPU cache enabled (Windows) [Documentation] Check whether the all declared for the DUT cache levels ... are enabled. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU002.002 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU002.301 not supported Power On Login To Windows ${mem_info}= Execute Command In Terminal @@ -72,22 +83,26 @@ CPU002.002 CPU cache enabled (Windows) Pass Execution If not ${L4_CACHE_SUPPORT} DUT supports only L1, L2 and L3 cache Should Contain ${mem_info} CACHE4 -CPU003.001 Multiple CPU support (Ubuntu) +CPU003.201 Multiple CPU support (Ubuntu) [Documentation] Check whether the DUT has multiple CPU support. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU003.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPU003.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux - ${cpu_info}= Execute Linux Command lscpu - Set Suite Variable ${CPU_INFO} - ${cpu}= Get Lines Matching Regexp ${CPU_INFO} ^CPU\\(s\\):\\s+\\d+$ flags=MULTILINE - Should Contain ${cpu} ${DEF_THREADS_TOTAL} Different number of CPU's than ${DEF_THREADS_TOTAL} - ${online}= Execute Linux Command cat /sys/devices/system/cpu/online - Should Contain ${online} ${DEF_ONLINE_CPU} There are more than ${DEF_ONLINE_CPU[2]} on-line CPU's + Multiple CPU Support Linux + +CPU003.202 Multiple CPU support (Fedora) + [Documentation] Check whether the DUT has multiple CPU support. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPU003.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Multiple CPU Support Linux -CPU003.002 Multiple CPU support (Windows) +CPU003.301 Multiple CPU support (Windows) [Documentation] Check whether the DUT has multiple CPU support. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU003.002 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU003.301 not supported Power On Login To Windows ${cpu_info}= Execute Command In Terminal WMIC CPU Get NumberOfCores @@ -95,29 +110,26 @@ CPU003.002 Multiple CPU support (Windows) ${cpu_count}= Convert To Number ${cpu_count} Should Be True ${cpu_count} > 1 -CPU004.001 Multiple-core support (Ubuntu) +CPU004.201 Multiple-core support (Ubuntu) [Documentation] Check whether the DUT has multi-core support. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU004.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU004.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPU004.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux - ${cpu_info}= Execute Linux Command lscpu - ${sockets}= Get Lines Containing String ${cpu_info} Socket(s): - Should Contain ${sockets} ${DEF_SOCKETS} Different number of sockets than ${DEF_SOCKETS} - ${cores}= Get Lines Containing String ${cpu_info} Core(s) per socket: - Should Contain - ... ${cores} - ... ${DEF_CORES_PER_SOCKET} - ... Different number of cores per socket than ${DEF_CORES_PER_SOCKET} - ${threads}= Get Lines Containing String ${cpu_info} Thread(s) per core: - Should Contain - ... ${threads} - ... ${DEF_THREADS_PER_CORE} - ... Different number of threads per core than ${DEF_THREADS_PER_CORE} + Multiple-Core Support Linux + +CPU004.202 Multiple-core support (Ubuntu) + [Documentation] Check whether the DUT has multi-core support. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPU004.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Multiple-Core Support Linux -CPU004.002 Multiple-core support (Windows) +CPU004.301 Multiple-core support (Windows) [Documentation] Check whether the DUT has multi-core support. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU004.002 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU004.301 not supported Power On Login To Windows ${cpu_info}= Execute Command In Terminal WMIC CPU Get NumberOfCores @@ -143,3 +155,44 @@ Check Cache Support ${mem}= Convert To Integer ${cache_size} IF '${mem}'=='0' Fail ${line} ELSE Log ${line} END + +CPU Cache Enabled Linux + [Documentation] Check whether the all declared for the DUT cache levels + ... are enabled. + [Tags] robot:private + ${mem_info}= Execute Linux Command getconf -a | grep CACHE + Check Cache Support ${mem_info} LEVEL1 + Pass Execution If not ${L2_CACHE_SUPPORT} DUT supports only L1 cache + Check Cache Support ${mem_info} LEVEL2 + Pass Execution If not ${L3_CACHE_SUPPORT} DUT supports only L1 and L2 cache + Check Cache Support ${mem_info} LEVEL3 + Pass Execution If not ${L4_CACHE_SUPPORT} DUT supports only L1, L2 and L3 cache + Check Cache Support ${mem_info} LEVEL4 + +Multiple CPU Support Linux + [Documentation] Check whether the DUT has multiple CPU support. + [Tags] robot:private + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU003.001 not supported + ${cpu_info}= Execute Linux Command lscpu + Set Suite Variable ${CPU_INFO} + ${cpu}= Get Lines Matching Regexp ${CPU_INFO} ^CPU\\(s\\):\\s+\\d+$ flags=MULTILINE + Should Contain ${cpu} ${DEF_THREADS_TOTAL} Different number of CPU's than ${DEF_THREADS_TOTAL} + ${online}= Execute Linux Command cat /sys/devices/system/cpu/online + Should Contain ${online} ${DEF_ONLINE_CPU} There are more than ${DEF_ONLINE_CPU[2]} on-line CPU's + +Multiple-Core Support Linux + [Documentation] Check whether the DUT has multi-core support. + [Tags] robot:private + ${cpu_info}= Execute Linux Command lscpu + ${sockets}= Get Lines Containing String ${cpu_info} Socket(s): + Should Contain ${sockets} ${DEF_SOCKETS} Different number of sockets than ${DEF_SOCKETS} + ${cores}= Get Lines Containing String ${cpu_info} Core(s) per socket: + Should Contain + ... ${cores} + ... ${DEF_CORES_PER_SOCKET} + ... Different number of cores per socket than ${DEF_CORES_PER_SOCKET} + ${threads}= Get Lines Containing String ${cpu_info} Thread(s) per core: + Should Contain + ... ${threads} + ... ${DEF_THREADS_PER_CORE} + ... Different number of threads per core than ${DEF_THREADS_PER_CORE} From 15c81846580f40daf3a5d3fa2bf7031b72d21308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Sat, 29 Mar 2025 07:58:58 +0100 Subject: [PATCH 261/416] sd-card-reader.robot: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/sd-card-reader.robot | 45 ++++++++++++++++++---- 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/dasharo-compatibility/sd-card-reader.robot b/dasharo-compatibility/sd-card-reader.robot index 662d6f73c7..a6d67c125a 100644 --- a/dasharo-compatibility/sd-card-reader.robot +++ b/dasharo-compatibility/sd-card-reader.robot @@ -25,10 +25,11 @@ Suite Teardown Run Keyword *** Test Cases *** -SDC001.001 SD Card reader detection (Ubuntu) +SDC001.201 SD Card reader detection (Ubuntu) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SDC001.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SDC001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SDC001.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux @@ -37,10 +38,22 @@ SDC001.001 SD Card reader detection (Ubuntu) Should Match str(${disks}) *SD* Exit From Root User -SDC001.002 SD Card reader detection (Windows) +SDC001.202 SD Card reader detection (Fedora) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} SDC001.001 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SDC001.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + ${disks}= Identify Disks In Linux + Should Match str(${disks}) *SD* + Exit From Root User + +SDC001.301 SD Card reader detection (Windows) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} SDC001.301 not supported Power On Login To Windows # Switch to root user @@ -48,10 +61,11 @@ SDC001.002 SD Card reader detection (Windows) Should Contain ${out} DiskDrive # Exit from root user -SDC002.001 SD Card read/write (Ubuntu) +SDC002.201 SD Card read/write (Ubuntu) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SDC002.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SDC002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SDC002.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux @@ -63,10 +77,25 @@ SDC002.001 SD Card read/write (Ubuntu) Should Be True ${result} Exit From Root User -SDC002.002 SD Card read/write (Windows) +SDC002.202 SD Card read/write (Fedora) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SDC002.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Execute Linux Command dd if=/dev/urandom of=/tmp/in.bin bs=4K count=100 + Execute Linux Command dd if=/tmp/in.bin of=/dev/mmcblk0 bs=4K count=100 + Execute Linux Command dd if=/dev/mmcblk0 of=/tmp/out.bin bs=4K count=100 + ${result}= Check If Files Are Identical In Linux /tmp/in.bin /tmp/out.bin + Should Be True ${result} + Exit From Root User + +SDC002.301 SD Card read/write (Windows) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} SDC002.001 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} SDC002.301 not supported Power On SSHLibrary.Put File drive_letters.ps1 /C:/Users/user Login To Windows From 3abf43b2ffcd7d0252fdac45d3e010889182a336 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Sat, 29 Mar 2025 08:01:36 +0100 Subject: [PATCH 262/416] custom-network-boot-entries: Add Fedora case MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../custom-network-boot-entries.robot | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/dasharo-compatibility/custom-network-boot-entries.robot b/dasharo-compatibility/custom-network-boot-entries.robot index e307e7fa7d..8c93a69757 100644 --- a/dasharo-compatibility/custom-network-boot-entries.robot +++ b/dasharo-compatibility/custom-network-boot-entries.robot @@ -23,11 +23,23 @@ Suite Teardown Run Keyword *** Test Cases *** -CNB001.001 Only one iPXE in boot menu +CNB001.201 Only one iPXE in boot menu [Documentation] Check whether the network boot option with iPXE appears ... only once in the boot option list. - Skip If not ${CUSTOM_NETWORK_BOOT_ENTRIES_SUPPORT} CNB001.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CNB001.001 not supported + Skip If not ${CUSTOM_NETWORK_BOOT_ENTRIES_SUPPORT} CNB001.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CNB001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CNB001.201 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + ${boot_menu}= Get UEFI Boot Manager Entries + Should Contain X Times ${boot_menu} ${IPXE_BOOT_ENTRY} 1 +CNB001.202 Only one iPXE in boot menu + [Documentation] Check whether the network boot option with iPXE appears + ... only once in the boot option list. + Skip If not ${CUSTOM_NETWORK_BOOT_ENTRIES_SUPPORT} CNB001.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CNB001.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} ${boot_menu}= Get UEFI Boot Manager Entries Should Contain X Times ${boot_menu} ${IPXE_BOOT_ENTRY} 1 From abbcb5c8ac1e0767395bee95c97757ce87884e3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 31 Mar 2025 09:02:56 +0200 Subject: [PATCH 263/416] ansible/linux-packages-playbook: Disable auto suspend on gnome MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- os-config/ansible/linux-packages-playbook.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/os-config/ansible/linux-packages-playbook.yaml b/os-config/ansible/linux-packages-playbook.yaml index 9845312aed..bcf09e3937 100644 --- a/os-config/ansible/linux-packages-playbook.yaml +++ b/os-config/ansible/linux-packages-playbook.yaml @@ -37,6 +37,9 @@ - src: "./../../osfv-test-data/coreboot-tools/cbmem" - src: "./../../osfv-test-data/coreboot-tools/cbfstool" + - name: Gnome turn off automatic suspend + ansible.builtin.command: gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0 + - name: OS specific tasks hosts: host become: true From 347acd27010e6225af81d76cf3a51c7a2dfdc2ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 31 Mar 2025 09:49:53 +0200 Subject: [PATCH 264/416] dasharo-compatibility/dcu: Fix booting wrong os in verify ssmstore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/dcu.robot | 37 ++++++++++++++++----------------- keywords.robot | 4 +++- lib/dcu.robot | 16 +++++++------- 3 files changed, 30 insertions(+), 27 deletions(-) diff --git a/dasharo-compatibility/dcu.robot b/dasharo-compatibility/dcu.robot index e6cc156d49..c29cd9520e 100644 --- a/dasharo-compatibility/dcu.robot +++ b/dasharo-compatibility/dcu.robot @@ -104,18 +104,18 @@ DCU004.202 Verify SMMSTORE changes *** Keywords *** Prepare DCU Test Environment - Run cp ${FW_FILE} ${FW_COPY} + Read Firmware ${FW_COPY} Run chmod -R a+rw dcu Verify SMMSTORE Changes (Setup Menu) [Documentation] This keyword verifies that changes made to the ... SMMSTORE via DCU are properly applied and visible in Setup menu. - + [Arguments] ${os_id} ${initial_value}= Get UEFI Option ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE} ${new_value}= Evaluate not ${initial_value} Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User DCU Variable Set UEFI Option In DUT ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE} ${new_value} @@ -124,7 +124,7 @@ Verify SMMSTORE Changes (Setup Menu) Should Be Equal ${value} ${new_value} Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User DCU Variable Set UEFI Option In DUT ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE} ${initial_value} @@ -136,23 +136,22 @@ Verify SMMSTORE Changes (DCU) [Documentation] This keyword verifies that changes made to the ... SMMSTORE via DCU are properly applied and visible in DCU. [Tags] robot:private - [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + [Arguments] ${os_id} # Initial value cannot be checked and restored using DCU because the # variable store may not be initialized yet. ${initial_value}= Set Variable ${FALSE} ${new_value}= Set Variable ${TRUE} - Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User DCU Variable Set UEFI Option In DUT ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE} ${new_value} - + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User ${value}= DCU Variable Get UEFI Option From DUT ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE} Should Be Equal ${value} ${new_value} DCU Variable Set UEFI Option In Dut ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE} ${initial_value} - + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User ${value}= DCU Variable Get UEFI Option From DUT ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE} @@ -165,7 +164,7 @@ Make Sure New Firmware Is Booted After Flashing ... flashing [Tags] robot:private [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} - IF '''${POWER_CTRL}''' == '''NONE''' + IF '''${POWER_CTRL}''' == '''none''' Power On Boot System Or From Connected Disk ${os_id} Login To Linux @@ -177,14 +176,14 @@ Change The UUID [Documentation] This test case verifies that the UUID encoded in the DMI ... table of an image can be changed using DCU. [Tags] robot:private - [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + [Arguments] ${os_id} Power On Boot System Or From Connected Disk ${os_id} ${uuid}= Uuid 4 DCU Smbios Set UUID In File ${FW_COPY} ${uuid} Flash Firmware ${FW_COPY} - Make Sure New Firmware Is Booted After Flashing + Make Sure New Firmware Is Booted After Flashing ${os_id} Power On Boot System Or From Connected Disk ${os_id} @@ -197,13 +196,14 @@ Change The Serial Number [Documentation] This test case verifies that the serial number encoded ... in the DMI table of an image can be changed using DCU. [Tags] robot:private - [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + [Arguments] ${os_id} Power On Boot System Or From Connected Disk ${os_id} ${serial_no}= Random Int min=10000000 max=99999999 + Read Firmware ${FW_COPY} DCU Smbios Set Serial In File ${FW_COPY} ${serial_no} Flash Firmware ${FW_COPY} - Make Sure New Firmware Is Booted After Flashing + Make Sure New Firmware Is Booted After Flashing ${os_id} Power On Boot System Or From Connected Disk ${os_id} @@ -218,11 +218,12 @@ Change The Bootsplash Logo ... PLEASE NOTE that a display device needs to be physically connected ... to the DUT for this test to work. [Tags] robot:private - [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} + [Arguments] ${os_id} Power On Boot System Or From Connected Disk ${os_id} ${img_sum}= Set Variable f91fe017bef1f98ce292bde1c2c7c61edf7b51e9c96d25c33bfac90f50de4513 ${logo_path}= Join Path ${TEST_DATA_DIR}/dcu logo.bmp + Read Firmware ${FW_COPY} DCU Logo Set In File ${FW_COPY} ${logo_path} Flash Firmware ${FW_COPY} Make Sure New Firmware Is Booted After Flashing @@ -249,16 +250,14 @@ Verify SMMSTORE Changes ... which uses DCU for accessing Setup variables the results might not ... be trustworthy. [Tags] robot:private - [Arguments] ${os_id}=${DEFAULT_BOOT_OS_ID} - Power On - Boot System Or From Connected Disk ${os_id} + [Arguments] ${os_id} IF "${OPTIONS_LIB}"=="options-lib_uefi-setup-menu" - Verify SMMSTORE Changes (Setup Menu) + Verify SMMSTORE Changes (Setup Menu) ${os_id} ELSE IF "${OPTIONS_LIB}"=="options-lib_dcu" Log To Console ... Verifying DCU possible only using on this device DCU. The test may not be trustworthy. ... WARN - Verify SMMSTORE Changes (DCU) + Verify SMMSTORE Changes (DCU) ${os_id} ELSE Fail Unsupported $OPTIONS_LIB: ${OPTIONS_LIB} END diff --git a/keywords.robot b/keywords.robot index f0928e99d4..19791dd0a4 100644 --- a/keywords.robot +++ b/keywords.robot @@ -775,7 +775,9 @@ Execute Reboot Command # if the OS cannot be chosen from the bootmanager and rebooting # always boots the default one IF '${OPTIONS_LIB}' == 'options-lib_dcu' - Options-lib Dcu.Set Nextboot ${BOOTED_OS_ID} + Set Nextboot ${BOOTED_OS_ID} + Import Variables ${CURDIR}/os-config/${BOOTED_OS_ID}-credentials.py + Set Suite Variable ${BOOTED_OS_ID} ${BOOTED_OS_ID} END Write Into Terminal reboot ELSE IF '${os}' == 'windows' diff --git a/lib/dcu.robot b/lib/dcu.robot index 5229d0f63d..55c2c7af05 100644 --- a/lib/dcu.robot +++ b/lib/dcu.robot @@ -78,30 +78,32 @@ DCU Variable Set UEFI Option In File [Documentation] Write an UEFI option value to FW file. [Arguments] ${fw_file} ${option_name} ${value} ${path} ${filename}= Split Path ${fw_file} - Run cp ${fw_file} dcu/${filename} + Run cp -f ${fw_file} dcu/${filename} ${value}= Convert Option Value To DCU Format ${value} ${result}= Run cd dcu; ./dcuc v ${filename} --set "${option_name}" --value "${value}" Log ${result} - Run cp dcu/${filename} ${fw_file} + Run cp -f dcu/${filename} ${fw_file} Should Contain ${result} Success DCU Variable Set UEFI Option In DUT [Documentation] Read, modify and flash the firmware with a new value of ... a UEFI option [Arguments] ${option_name} ${value} - DCU Variable Read SMMSTORE coreboot.rom - DCU Variable Set UEFI Option In File coreboot.rom ${option_name} ${value} - DCU Variable Flash SMMSTORE coreboot.rom + DCU Variable Read SMMSTORE tpm.rom + DCU Variable Set UEFI Option In File tpm.rom ${option_name} ${value} + DCU Variable Flash SMMSTORE tpm.rom Execute Reboot Command + Set Suite Variable ${BOOTED_OS_ID} ${DEFAULT_BOOT_OS_ID} + Import Variables ${CURDIR}/../os-config/${BOOTED_OS_ID}-credentials.py Sleep 20s DCU Variable Get UEFI Option From DUT [Documentation] Read the firmware and return a UEFI option value [Arguments] ${option_name} - DCU Variable Read SMMSTORE coreboot.rom - ${value}= DCU Variable Get UEFI Option From File coreboot.rom ${option_name} + DCU Variable Read SMMSTORE tpm.rom + ${value}= DCU Variable Get UEFI Option From File tpm.rom ${option_name} ${value}= Convert Option Value From DCU Format ${value} RETURN ${value} From 79480625e156b15951e7ac448245d9cefaeb7a63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 31 Mar 2025 10:06:56 +0200 Subject: [PATCH 265/416] Reorder basic fedora test cases to reduce reboots on laptops MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/audio-subsystem.robot | 36 +++--- dasharo-compatibility/cpu-status.robot | 94 +++++++------- dasharo-compatibility/dcu.robot | 46 +++---- dasharo-compatibility/dmidecode.robot | 118 ++++++++--------- .../miniPCIe-slot-verification.robot | 88 ++++++------- dasharo-compatibility/sd-card-reader.robot | 46 +++---- .../usb-hid-and-msc-support.robot | 90 ++++++------- .../wifi-bluetooth-support.robot | 72 +++++------ dasharo-performance/platform-stability.robot | 36 +++--- dasharo-security/me-neuter.robot | 36 +++--- dasharo-security/measured-boot.robot | 14 +- dasharo-security/tpm-support.robot | 120 +++++++++--------- 12 files changed, 398 insertions(+), 398 deletions(-) diff --git a/dasharo-compatibility/audio-subsystem.robot b/dasharo-compatibility/audio-subsystem.robot index 031ff9b7b3..480296aa57 100644 --- a/dasharo-compatibility/audio-subsystem.robot +++ b/dasharo-compatibility/audio-subsystem.robot @@ -31,24 +31,6 @@ AUD001.201 Audio subsystem detection (Ubuntu) Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" AUD001.201 not supported Audio Subsystem Detection ${ENV_ID_UBUNTU} -AUD001.202 Audio subsystem detection (Fedora) - [Documentation] Check whether the audio subsystem is initialized correctly - ... and can be detected in Linux OS. - Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.202 not supported - Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" AUD001.202 not supported - Audio Subsystem Detection ${ENV_ID_FEDORA} - -AUD001.301 Audio subsystem detection (Windows) - [Documentation] Check whether the audio subsystem is initialized correctly - ... and can be detected in Windows 11. - Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.301 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} AUD001.301 not supported - Power On - Login To Windows - ${out}= Get Sound Devices Windows - Should Contain ${out} ${DEVICE_AUDIO1_WIN} - Should Contain ${out} OK - # PI-KVM necessary # AUD002.001 Audio playback (Ubuntu) # [Documentation] Check whether the audio subsystem is able to playback @@ -76,6 +58,13 @@ AUD004.201 External headset recognition (Ubuntu) Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" AUD004.201 not supported External Headset Recognition ${ENV_ID_UBUNTU} +AUD001.202 Audio subsystem detection (Fedora) + [Documentation] Check whether the audio subsystem is initialized correctly + ... and can be detected in Linux OS. + Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.202 not supported + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" AUD001.202 not supported + Audio Subsystem Detection ${ENV_ID_FEDORA} + AUD004.202 External headset recognition (Fedora) [Documentation] Check whether the external headset is recognized ... properly after plugging in micro jack into slot. @@ -84,6 +73,17 @@ AUD004.202 External headset recognition (Fedora) Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" AUD004.202 not supported External Headset Recognition ${ENV_ID_FEDORA} +AUD001.301 Audio subsystem detection (Windows) + [Documentation] Check whether the audio subsystem is initialized correctly + ... and can be detected in Windows 11. + Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} AUD001.301 not supported + Power On + Login To Windows + ${out}= Get Sound Devices Windows + Should Contain ${out} ${DEVICE_AUDIO1_WIN} + Should Contain ${out} OK + # Work in progress # AUD004.002 External headset recognition (Windows) # [Documentation] Check whether the external headset is recognized diff --git a/dasharo-compatibility/cpu-status.robot b/dasharo-compatibility/cpu-status.robot index 382191b989..7dff1719cf 100644 --- a/dasharo-compatibility/cpu-status.robot +++ b/dasharo-compatibility/cpu-status.robot @@ -35,19 +35,6 @@ CPU001.201 CPU works (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux -CPU001.202 CPU works (Fedora) - [Documentation] Check whether the CPU mounted on the DUT works. - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPU001.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - -CPU001.301 CPU works (Windows) - [Documentation] Check whether the CPU mounted on the DUT works. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU001.301 not supported - Power On - Login To Windows - CPU002.201 CPU cache enabled (Ubuntu) [Documentation] Check whether the all declared for the DUT cache levels ... are enabled. @@ -58,6 +45,31 @@ CPU002.201 CPU cache enabled (Ubuntu) Login To Linux CPU Cache Enabled Linux +CPU003.201 Multiple CPU support (Ubuntu) + [Documentation] Check whether the DUT has multiple CPU support. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPU003.201 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Multiple CPU Support Linux + +CPU004.201 Multiple-core support (Ubuntu) + [Documentation] Check whether the DUT has multi-core support. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU004.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPU004.201 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Multiple-Core Support Linux + +CPU001.202 CPU works (Fedora) + [Documentation] Check whether the CPU mounted on the DUT works. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPU001.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + CPU002.202 CPU cache enabled (Fedora) [Documentation] Check whether the all declared for the DUT cache levels ... are enabled. @@ -67,6 +79,28 @@ CPU002.202 CPU cache enabled (Fedora) Login To Linux CPU Cache Enabled Linux +CPU003.202 Multiple CPU support (Fedora) + [Documentation] Check whether the DUT has multiple CPU support. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPU003.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Multiple CPU Support Linux + +CPU004.202 Multiple-core support (Fedora) + [Documentation] Check whether the DUT has multi-core support. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPU004.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Multiple-Core Support Linux + +CPU001.301 CPU works (Windows) + [Documentation] Check whether the CPU mounted on the DUT works. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU001.301 not supported + Power On + Login To Windows + CPU002.301 CPU cache enabled (Windows) [Documentation] Check whether the all declared for the DUT cache levels ... are enabled. @@ -83,23 +117,6 @@ CPU002.301 CPU cache enabled (Windows) Pass Execution If not ${L4_CACHE_SUPPORT} DUT supports only L1, L2 and L3 cache Should Contain ${mem_info} CACHE4 -CPU003.201 Multiple CPU support (Ubuntu) - [Documentation] Check whether the DUT has multiple CPU support. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU003.201 not supported - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPU003.201 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Multiple CPU Support Linux - -CPU003.202 Multiple CPU support (Fedora) - [Documentation] Check whether the DUT has multiple CPU support. - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPU003.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Multiple CPU Support Linux - CPU003.301 Multiple CPU support (Windows) [Documentation] Check whether the DUT has multiple CPU support. Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU003.301 not supported @@ -110,23 +127,6 @@ CPU003.301 Multiple CPU support (Windows) ${cpu_count}= Convert To Number ${cpu_count} Should Be True ${cpu_count} > 1 -CPU004.201 Multiple-core support (Ubuntu) - [Documentation] Check whether the DUT has multi-core support. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU004.201 not supported - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPU004.201 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Multiple-Core Support Linux - -CPU004.202 Multiple-core support (Ubuntu) - [Documentation] Check whether the DUT has multi-core support. - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPU004.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Multiple-Core Support Linux - CPU004.301 Multiple-core support (Windows) [Documentation] Check whether the DUT has multi-core support. Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU004.301 not supported diff --git a/dasharo-compatibility/dcu.robot b/dasharo-compatibility/dcu.robot index c29cd9520e..dceaaea993 100644 --- a/dasharo-compatibility/dcu.robot +++ b/dasharo-compatibility/dcu.robot @@ -38,13 +38,6 @@ DCU001.201 Change the UUID Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DCU001.201 not supported Change The UUID ${ENV_ID_UBUNTU} -DCU001.202 Change the UUID - [Documentation] This test case verifies that the UUID encoded in the DMI - ... table of an image can be changed using DCU. - Skip If not ${DCU_UUID_SUPPORT} DCU001.202 not supported - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DCU001.202 not supported - Change The UUID ${ENV_ID_FEDORA} - DCU002.201 Change the serial number [Documentation] This test case verifies that the serial number encoded ... in the DMI table of an image can be changed using DCU. @@ -52,13 +45,6 @@ DCU002.201 Change the serial number Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DCU002.201 not supported Change The Serial Number ${ENV_ID_UBUNTU} -DCU002.202 Change the serial number - [Documentation] This test case verifies that the serial number encoded - ... in the DMI table of an image can be changed using DCU. - Skip If not ${DCU_SERIAL_SUPPORT} DCU002.202 not supported - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DCU002.202 not supported - Change The Serial Number ${ENV_ID_FEDORA} - DCU003.201 Change the bootsplash logo [Documentation] This test case verifies that the bootsplash logo encoded ... into an image can be changed using DCU. @@ -68,15 +54,6 @@ DCU003.201 Change the bootsplash logo Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DCU003.201 not supported Change The Bootsplash Logo ${ENV_ID_UBUNTU} -DCU003.202 Change the bootsplash logo - [Documentation] This test case verifies that the bootsplash logo encoded - ... into an image can be changed using DCU. - ... PLEASE NOTE that a display device needs to be physically connected - ... to the DUT for this test to work. - Skip If not ${CUSTOM_LOGO_SUPPORT} DCU003.202 not supported - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DCU003.202 not supported - Change The Bootsplash Logo ${ENV_ID_FEDORA} - DCU004.201 Verify SMMSTORE changes [Documentation] This test case verifies that changes made to the ... SMMSTORE via DCU are properly applied and visible in Setup menu. @@ -89,6 +66,29 @@ DCU004.201 Verify SMMSTORE changes Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DCU004.201 not supported Verify SMMSTORE Changes ${ENV_ID_UBUNTU} +DCU001.202 Change the UUID + [Documentation] This test case verifies that the UUID encoded in the DMI + ... table of an image can be changed using DCU. + Skip If not ${DCU_UUID_SUPPORT} DCU001.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DCU001.202 not supported + Change The UUID ${ENV_ID_FEDORA} + +DCU002.202 Change the serial number + [Documentation] This test case verifies that the serial number encoded + ... in the DMI table of an image can be changed using DCU. + Skip If not ${DCU_SERIAL_SUPPORT} DCU002.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DCU002.202 not supported + Change The Serial Number ${ENV_ID_FEDORA} + +DCU003.202 Change the bootsplash logo + [Documentation] This test case verifies that the bootsplash logo encoded + ... into an image can be changed using DCU. + ... PLEASE NOTE that a display device needs to be physically connected + ... to the DUT for this test to work. + Skip If not ${CUSTOM_LOGO_SUPPORT} DCU003.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DCU003.202 not supported + Change The Bootsplash Logo ${ENV_ID_FEDORA} + DCU004.202 Verify SMMSTORE changes [Documentation] This test case verifies that changes made to the ... SMMSTORE via DCU are properly applied and visible in Setup menu. diff --git a/dasharo-compatibility/dmidecode.robot b/dasharo-compatibility/dmidecode.robot index 2ab7bf9b97..2f70ac2334 100644 --- a/dasharo-compatibility/dmidecode.robot +++ b/dasharo-compatibility/dmidecode.robot @@ -36,15 +36,6 @@ DMI001.201 Verify the device serial number Should Contain ${DMI_SYSTEM} Serial Number: ${DMIDECODE_SERIAL_NUMBER} IF ${SERIAL_FROM_MAC} Compare Serial Number From MAC ${DMI_SYSTEM} -DMI001.202 Verify the device serial number - [Documentation] Check whether the DUT serial number is the same as it is - ... expected. - Skip If not ${SERIAL_NUMBER_VERIFICATION} DMI001.202 not supported - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DMI001.202 not supported - Get SMBIOS Values ${ENV_ID_FEDORA} - Should Contain ${DMI_SYSTEM} Serial Number: ${DMIDECODE_SERIAL_NUMBER} - IF ${SERIAL_FROM_MAC} Compare Serial Number From MAC ${DMI_SYSTEM} - DMI002.201 Verify the firmware version [Documentation] Check whether the firmware version on the DUT is the ... same as it is expected. @@ -55,6 +46,65 @@ DMI002.201 Verify the firmware version Should Contain ${DMI_BIOS} Version: ${DMIDECODE_FIRMWARE_VERSION} IF ${FIRMWARE_FROM_BINARY} Firmware Version Verification From Binary +DMI003.201 Verify the firmware product name + [Documentation] Check whether the DUT product name is the same as it is + ... expected. + [Tags] minimal-regression + Skip If not ${PRODUCT_NAME_VERIFICATION} DMI003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI003.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} + Should Contain ${DMI_SYSTEM} Product Name: ${DMIDECODE_PRODUCT_NAME} + +DMI004.201 Verify the firmware release date + [Documentation] Check whether the firmware release date on the DUT is + ... the same as it is expected. + Skip If not ${RELEASE_DATE_VERIFICATION} DMI004.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI004.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} + Should Contain ${DMI_BIOS} Release Date: ${DMIDECODE_RELEASE_DATE} + +DMI005.201 Verify the firmware manufacturer + [Documentation] Check whether the firmware manufacturer on the DUT is + ... the same as it is expected. + Skip If not ${MANUFACTURER_VERIFICATION} DMI005.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI005.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} + Should Contain ${DMI_SYSTEM} Manufacturer: ${DMIDECODE_MANUFACTURER} + Should Contain ${DMI_BASEBOARD} Manufacturer: ${DMIDECODE_MANUFACTURER} + +DMI006.201 Verify the firmware vendor + [Documentation] Check whether the firmware vendor on the DUT is the same + ... as it is expected. + Skip If not ${VENDOR_VERIFICATION} DMI006.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI006.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} + Should Contain ${DMI_BIOS} Vendor: ${DMIDECODE_VENDOR} + +DMI007.201 Verify the firmware family + [Documentation] Check whether the firmware family on the DUT is the same + ... as it is expected. + Skip If not ${FAMILY_VERIFICATION} DMI007.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI007.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} + Should Contain ${DMI_SYSTEM} Family: ${DMIDECODE_FAMILY} + +DMI008.201 Verify the firmware type + [Documentation] Check whether the firmware type on the DUT is the same + ... as it is expected. + Skip If not ${TYPE_VERIFICATION} DMI008.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI008.201 not supported + Get SMBIOS Values ${ENV_ID_UBUNTU} + Should Contain ${DMI_CHASSIS} Type: ${DMIDECODE_TYPE} + +DMI001.202 Verify the device serial number + [Documentation] Check whether the DUT serial number is the same as it is + ... expected. + Skip If not ${SERIAL_NUMBER_VERIFICATION} DMI001.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} DMI001.202 not supported + Get SMBIOS Values ${ENV_ID_FEDORA} + Should Contain ${DMI_SYSTEM} Serial Number: ${DMIDECODE_SERIAL_NUMBER} + IF ${SERIAL_FROM_MAC} Compare Serial Number From MAC ${DMI_SYSTEM} + DMI002.202 Verify the firmware version [Documentation] Check whether the firmware version on the DUT is the ... same as it is expected. @@ -65,15 +115,6 @@ DMI002.202 Verify the firmware version Should Contain ${DMI_BIOS} Version: ${DMIDECODE_FIRMWARE_VERSION} IF ${FIRMWARE_FROM_BINARY} Firmware Version Verification From Binary -DMI003.201 Verify the firmware product name - [Documentation] Check whether the DUT product name is the same as it is - ... expected. - [Tags] minimal-regression - Skip If not ${PRODUCT_NAME_VERIFICATION} DMI003.201 not supported - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI003.201 not supported - Get SMBIOS Values ${ENV_ID_UBUNTU} - Should Contain ${DMI_SYSTEM} Product Name: ${DMIDECODE_PRODUCT_NAME} - DMI003.202 Verify the firmware product name [Documentation] Check whether the DUT product name is the same as it is ... expected. @@ -83,14 +124,6 @@ DMI003.202 Verify the firmware product name Get SMBIOS Values ${ENV_ID_FEDORA} Should Contain ${DMI_SYSTEM} Product Name: ${DMIDECODE_PRODUCT_NAME} -DMI004.201 Verify the firmware release date - [Documentation] Check whether the firmware release date on the DUT is - ... the same as it is expected. - Skip If not ${RELEASE_DATE_VERIFICATION} DMI004.201 not supported - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI004.201 not supported - Get SMBIOS Values ${ENV_ID_UBUNTU} - Should Contain ${DMI_BIOS} Release Date: ${DMIDECODE_RELEASE_DATE} - DMI004.202 Verify the firmware release date [Documentation] Check whether the firmware release date on the DUT is ... the same as it is expected. @@ -99,15 +132,6 @@ DMI004.202 Verify the firmware release date Get SMBIOS Values ${ENV_ID_FEDORA} Should Contain ${DMI_BIOS} Release Date: ${DMIDECODE_RELEASE_DATE} -DMI005.201 Verify the firmware manufacturer - [Documentation] Check whether the firmware manufacturer on the DUT is - ... the same as it is expected. - Skip If not ${MANUFACTURER_VERIFICATION} DMI005.201 not supported - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI005.201 not supported - Get SMBIOS Values ${ENV_ID_UBUNTU} - Should Contain ${DMI_SYSTEM} Manufacturer: ${DMIDECODE_MANUFACTURER} - Should Contain ${DMI_BASEBOARD} Manufacturer: ${DMIDECODE_MANUFACTURER} - DMI005.202 Verify the firmware manufacturer [Documentation] Check whether the firmware manufacturer on the DUT is ... the same as it is expected. @@ -117,14 +141,6 @@ DMI005.202 Verify the firmware manufacturer Should Contain ${DMI_SYSTEM} Manufacturer: ${DMIDECODE_MANUFACTURER} Should Contain ${DMI_BASEBOARD} Manufacturer: ${DMIDECODE_MANUFACTURER} -DMI006.201 Verify the firmware vendor - [Documentation] Check whether the firmware vendor on the DUT is the same - ... as it is expected. - Skip If not ${VENDOR_VERIFICATION} DMI006.201 not supported - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI006.201 not supported - Get SMBIOS Values ${ENV_ID_UBUNTU} - Should Contain ${DMI_BIOS} Vendor: ${DMIDECODE_VENDOR} - DMI006.202 Verify the firmware vendor [Documentation] Check whether the firmware vendor on the DUT is the same ... as it is expected. @@ -133,14 +149,6 @@ DMI006.202 Verify the firmware vendor Get SMBIOS Values ${ENV_ID_FEDORA} Should Contain ${DMI_BIOS} Vendor: ${DMIDECODE_VENDOR} -DMI007.201 Verify the firmware family - [Documentation] Check whether the firmware family on the DUT is the same - ... as it is expected. - Skip If not ${FAMILY_VERIFICATION} DMI007.201 not supported - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI007.201 not supported - Get SMBIOS Values ${ENV_ID_UBUNTU} - Should Contain ${DMI_SYSTEM} Family: ${DMIDECODE_FAMILY} - DMI007.202 Verify the firmware family [Documentation] Check whether the firmware family on the DUT is the same ... as it is expected. @@ -149,14 +157,6 @@ DMI007.202 Verify the firmware family Get SMBIOS Values ${ENV_ID_FEDORA} Should Contain ${DMI_SYSTEM} Family: ${DMIDECODE_FAMILY} -DMI008.201 Verify the firmware type - [Documentation] Check whether the firmware type on the DUT is the same - ... as it is expected. - Skip If not ${TYPE_VERIFICATION} DMI008.201 not supported - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI008.201 not supported - Get SMBIOS Values ${ENV_ID_UBUNTU} - Should Contain ${DMI_CHASSIS} Type: ${DMIDECODE_TYPE} - DMI008.202 Verify the firmware type [Documentation] Check whether the firmware type on the DUT is the same ... as it is expected. diff --git a/dasharo-compatibility/miniPCIe-slot-verification.robot b/dasharo-compatibility/miniPCIe-slot-verification.robot index 4bff8ba0cb..c45f316c3a 100644 --- a/dasharo-compatibility/miniPCIe-slot-verification.robot +++ b/dasharo-compatibility/miniPCIe-slot-verification.robot @@ -32,22 +32,6 @@ MWL001.201 Wireless card detection (Ubuntu) Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" MWL001.201 not supported Wireless Card Detection ${ENV_ID_UBUNTU} -MWL001.202 Wireless card detection (Fedora) - [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated - ... correctly and can be detected from the operating system. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL001.202 not supported - Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" MWL001.202 not supported - Wireless Card Detection ${ENV_ID_FEDORA} - -MWL001.301 Wireless card detection (Windows) - [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated - ... correctly and can be detected from the operating system. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} WLE001.301 not supported - Power On - Login To Windows - ${out}= Execute Command In Terminal Get-PnpDevice -PresentOnly | Select-String -Pattern "Wi-Fi" - Should Contain ${out} ${WIFI_CARD} - MWL002.201 Wi-Fi scanning (Ubuntu) [Documentation] Check whether the Wi-Fi functionality of card is ... initialized correctly and can be used from within the @@ -57,24 +41,6 @@ MWL002.201 Wi-Fi scanning (Ubuntu) Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" MWL002.201 not supported Wi-Fi Scanning ${ENV_ID_UBUNTU} -MWL002.202 Wi-Fi scanning (Fedora) - [Documentation] Check whether the Wi-Fi functionality of card is - ... initialized correctly and can be used from within the - ... operating system.. - Skip If not ${MINI_PC_IE_SLOT_SUPPORT} MWL002.202 not supported - Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" MWL002.202 not supported - Wi-Fi Scanning ${ENV_ID_FEDORA} - -MWL002.301 Wi-Fi scanning (Windows) - [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated - ... correctly and can be detected from the operating system. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} MLW002.301 not supported - Power On - Login To Windows - ${out}= Execute Command In Terminal netsh wlan show network - Should Contain ${out} 3mdeb_abr - Should Contain ${out} 3mdeb_abr_5GHz - MWL003.201 Bluetooth scanning (Ubuntu) [Documentation] Check whether the Bluetooth functionality of card is ... initialized correctly and can be used from within the @@ -83,16 +49,6 @@ MWL003.201 Bluetooth scanning (Ubuntu) Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" MWL003.201 not supported Bluetooth Scanning ${ENV_ID_UBUNTU} -MWL003.202 Bluetooth scanning (Fedora) - [Documentation] Check whether the Bluetooth functionality of card is - ... initialized correctly and can be used from within the - ... operating system. - Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" MWL003.202 not supported - Bluetooth Scanning ${ENV_ID_FEDORA} - -# MWL003.002 Bluetooth scanning (Windows) -# [Documentation] TBD - MWL004.201 LTE card detection (Ubuntu) [Documentation] Check whether the LTE card is detected correctly in the ... operating system. @@ -100,12 +56,56 @@ MWL004.201 LTE card detection (Ubuntu) Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" MWL004.201 not supported LTE Card Detection ${ENV_ID_UBUNTU} +MWL001.202 Wireless card detection (Fedora) + [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated + ... correctly and can be detected from the operating system. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL001.202 not supported + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" MWL001.202 not supported + Wireless Card Detection ${ENV_ID_FEDORA} + +MWL002.202 Wi-Fi scanning (Fedora) + [Documentation] Check whether the Wi-Fi functionality of card is + ... initialized correctly and can be used from within the + ... operating system.. + Skip If not ${MINI_PC_IE_SLOT_SUPPORT} MWL002.202 not supported + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" MWL002.202 not supported + Wi-Fi Scanning ${ENV_ID_FEDORA} + +MWL003.202 Bluetooth scanning (Fedora) + [Documentation] Check whether the Bluetooth functionality of card is + ... initialized correctly and can be used from within the + ... operating system. + Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" MWL003.202 not supported + Bluetooth Scanning ${ENV_ID_FEDORA} + MWL004.202 LTE card detection (Fedora) [Documentation] Check whether the LTE card is detected correctly in the ... operating system. Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" MWL004.202 not supported LTE Card Detection ${ENV_ID_FEDORA} +MWL001.301 Wireless card detection (Windows) + [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated + ... correctly and can be detected from the operating system. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} WLE001.301 not supported + Power On + Login To Windows + ${out}= Execute Command In Terminal Get-PnpDevice -PresentOnly | Select-String -Pattern "Wi-Fi" + Should Contain ${out} ${WIFI_CARD} + +MWL002.301 Wi-Fi scanning (Windows) + [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated + ... correctly and can be detected from the operating system. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} MLW002.301 not supported + Power On + Login To Windows + ${out}= Execute Command In Terminal netsh wlan show network + Should Contain ${out} 3mdeb_abr + Should Contain ${out} 3mdeb_abr_5GHz + +# MWL003.002 Bluetooth scanning (Windows) +# [Documentation] TBD + # MWL004.002 LTE card detection (Windows) # [Documentation] Check whether the LTE card is detected correctly in the # ... Windows OS. diff --git a/dasharo-compatibility/sd-card-reader.robot b/dasharo-compatibility/sd-card-reader.robot index a6d67c125a..85ae62fc69 100644 --- a/dasharo-compatibility/sd-card-reader.robot +++ b/dasharo-compatibility/sd-card-reader.robot @@ -38,29 +38,6 @@ SDC001.201 SD Card reader detection (Ubuntu) Should Match str(${disks}) *SD* Exit From Root User -SDC001.202 SD Card reader detection (Fedora) - [Documentation] Check whether the SD Card reader is enumerated correctly - ... and can be detected from the operating system. - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SDC001.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Switch To Root User - ${disks}= Identify Disks In Linux - Should Match str(${disks}) *SD* - Exit From Root User - -SDC001.301 SD Card reader detection (Windows) - [Documentation] Check whether the SD Card reader is enumerated correctly - ... and can be detected from the operating system. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} SDC001.301 not supported - Power On - Login To Windows - # Switch to root user - ${out}= Execute Command In Terminal Get-PnpDevice -Status "OK" -Class "DiskDrive" - Should Contain ${out} DiskDrive - # Exit from root user - SDC002.201 SD Card read/write (Ubuntu) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. @@ -77,6 +54,18 @@ SDC002.201 SD Card read/write (Ubuntu) Should Be True ${result} Exit From Root User +SDC001.202 SD Card reader detection (Fedora) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SDC001.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + ${disks}= Identify Disks In Linux + Should Match str(${disks}) *SD* + Exit From Root User + SDC002.202 SD Card read/write (Fedora) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. @@ -92,6 +81,17 @@ SDC002.202 SD Card read/write (Fedora) Should Be True ${result} Exit From Root User +SDC001.301 SD Card reader detection (Windows) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} SDC001.301 not supported + Power On + Login To Windows + # Switch to root user + ${out}= Execute Command In Terminal Get-PnpDevice -Status "OK" -Class "DiskDrive" + Should Contain ${out} DiskDrive + # Exit from root user + SDC002.301 SD Card read/write (Windows) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 3187397ad0..8442cecc1f 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -33,33 +33,6 @@ USB001.001 USB devices detected in FW ${boot_menu}= Enter Boot Menu Tianocore And Return Construction Check USB Stick Detection In Edk2 ${boot_menu} -USB001.201 USB devices detected by OS (Ubuntu) - [Documentation] Check whether the external USB devices are detected - ... correctly in Ubuntu OS. - Depends On ${USB_DISKS_DETECTION_SUPPORT} - Depends On ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} - USB Devices Detected By OS ${ENV_ID_UBUNTU} - -USB001.202 USB devices detected by OS (Fedora) - [Documentation] Check whether the external USB devices are detected - ... correctly in Fedora OS. - Depends On ${USB_DISKS_DETECTION_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} - USB Devices Detected By OS ${ENV_ID_FEDORA} - -USB001.301 USB devices detected by OS (Windows) - [Documentation] Check whether the external USB devices are detected - ... correctly in Windows OS. - Depends On ${USB_DISKS_DETECTION_SUPPORT} - Depends On ${TESTS_IN_WINDOWS_SUPPORT} - Power On - Login To Windows - ${out}= Execute Command In Terminal - ... Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' } - IF ${HAS_KEYBOARD} Should Contain ${out} HIDClass - IF ${HAS_USB_STORAGE} Should Contain ${out} DiskDrive - USB002.001 USB keyboard detected in FW [Documentation] Check whether the external USB keyboard is detected ... correctly by the firmware and all basic keys work @@ -73,6 +46,14 @@ USB002.001 USB keyboard detected in FW ${out}= Execute UEFI Shell Command devices Should Contain ${out} Usb Keyboard +USB001.201 USB devices detected by OS (Ubuntu) + [Documentation] Check whether the external USB devices are detected + ... correctly in Ubuntu OS. + Depends On ${USB_DISKS_DETECTION_SUPPORT} + Depends On ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + USB Devices Detected By OS ${ENV_ID_UBUNTU} + USB002.201 USB keyboard in OS (Ubuntu) [Documentation] Check whether the external USB keyboard is detected ... correctly by the Ubuntu OS. @@ -82,6 +63,22 @@ USB002.201 USB keyboard in OS (Ubuntu) Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} USB Keyboard In OS ${ENV_ID_UBUNTU} +USB003.201 Upload 1GB file on USB storage (Ubuntu) + [Documentation] Check whether the 1GB file can be transferred from the + ... operating system to the USB storage. + Depends On ${UPLOAD_ON_USB_SUPPORT} + Depends On ${HAS_USB_STORAGE} + Depends On ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Upload 1GB File On USB Storage ${ENV_ID_UBUNTU} + +USB001.202 USB devices detected by OS (Fedora) + [Documentation] Check whether the external USB devices are detected + ... correctly in Fedora OS. + Depends On ${USB_DISKS_DETECTION_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + USB Devices Detected By OS ${ENV_ID_FEDORA} + USB002.202 USB keyboard in OS (Fedora) [Documentation] Check whether the external USB keyboard is detected ... correctly by the Fedora OS. @@ -90,6 +87,27 @@ USB002.202 USB keyboard in OS (Fedora) Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} USB Keyboard In OS ${ENV_ID_FEDORA} +USB003.202 Upload 1GB file on USB storage (Fedora) + [Documentation] Check whether the 1GB file can be transferred from the + ... operating system to the USB storage. + Depends On ${UPLOAD_ON_USB_SUPPORT} + Depends On ${HAS_USB_STORAGE} + Depends On ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Upload 1GB File On USB Storage ${ENV_ID_FEDORA} + +USB001.301 USB devices detected by OS (Windows) + [Documentation] Check whether the external USB devices are detected + ... correctly in Windows OS. + Depends On ${USB_DISKS_DETECTION_SUPPORT} + Depends On ${TESTS_IN_WINDOWS_SUPPORT} + Power On + Login To Windows + ${out}= Execute Command In Terminal + ... Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' } + IF ${HAS_KEYBOARD} Should Contain ${out} HIDClass + IF ${HAS_USB_STORAGE} Should Contain ${out} DiskDrive + USB002.301 USB keyboard in OS (Windows) [Documentation] Check whether the external USB keyboard is detected ... correctly by the Windows OS. @@ -102,24 +120,6 @@ USB002.301 USB keyboard in OS (Windows) ${keyboard}= Get Lines Matching Regexp ${out} ^CreationClassName\\s+:\\sWin32_Keyboard.*$ Should Not Be Empty ${keyboard} -USB003.201 Upload 1GB file on USB storage (Ubuntu) - [Documentation] Check whether the 1GB file can be transferred from the - ... operating system to the USB storage. - Depends On ${UPLOAD_ON_USB_SUPPORT} - Depends On ${HAS_USB_STORAGE} - Depends On ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} - Upload 1GB File On USB Storage ${ENV_ID_UBUNTU} - -USB003.202 Upload 1GB file on USB storage (Fedora) - [Documentation] Check whether the 1GB file can be transferred from the - ... operating system to the USB storage. - Depends On ${UPLOAD_ON_USB_SUPPORT} - Depends On ${HAS_USB_STORAGE} - Depends On ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} - Upload 1GB File On USB Storage ${ENV_ID_FEDORA} - USB003.301 Upload 1GB file on USB storage (Windows) [Documentation] Check whether the 1GB file can be transferred from the ... operating system to the USB storage. diff --git a/dasharo-compatibility/wifi-bluetooth-support.robot b/dasharo-compatibility/wifi-bluetooth-support.robot index a395aeb109..4edf0577c3 100644 --- a/dasharo-compatibility/wifi-bluetooth-support.robot +++ b/dasharo-compatibility/wifi-bluetooth-support.robot @@ -35,6 +35,25 @@ WLE001.201 Wireless card detection (Ubuntu) Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} WLE001.201 not supported Wireless Card Detection ${ENV_ID_UBUNTU} +WLE002.201 Wi-Fi scanning (Ubuntu) + [Documentation] Check whether the Wi-Fi functionality of card is + ... initialized correctly and can be used from within the + ... operating system.. + [Tags] minimal-regression + Skip If not ${WIRELESS_CARD_WIFI_SUPPORT} WLE002.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} WLE002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} WLE002.201 not supported + Wi-Fi Scanning ${ENV_ID_UBUNTU} + +WLE003.201 Bluetooth scanning (Ubuntu) + [Documentation] Check whether the Bluetooth functionality of card is + ... initialized correctly and can be used from within the + ... operating system. + Skip If not ${WIRELESS_CARD_BLUETOOTH_SUPPORT} WLE003.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} WLE003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} WLE003.201 not supported + Bluetooth Scanning ${ENV_ID_UBUNTU} + WLE001.202 Wireless card detection (Fedora) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. @@ -42,6 +61,23 @@ WLE001.202 Wireless card detection (Fedora) Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} WLE001.202 not supported Wireless Card Detection ${ENV_ID_FEDORA} +WLE002.202 Wi-Fi scanning (Fedora) + [Documentation] Check whether the Wi-Fi functionality of card is + ... initialized correctly and can be used from within the + ... operating system.. + [Tags] minimal-regression + Skip If not ${WIRELESS_CARD_WIFI_SUPPORT} WLE002.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} WLE002.202 not supported + Wi-Fi Scanning ${ENV_ID_FEDORA} + +WLE003.202 Bluetooth scanning (Fedora) + [Documentation] Check whether the Bluetooth functionality of card is + ... initialized correctly and can be used from within the + ... operating system. + Skip If not ${WIRELESS_CARD_BLUETOOTH_SUPPORT} WLE003.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} WLE003.202 not supported + Bluetooth Scanning ${ENV_ID_FEDORA} + WLE001.301 Wireless card detection (Windows) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. @@ -57,25 +93,6 @@ WLE001.301 Wireless card detection (Windows) Log To Console The test passed for the ${WIFI_CARD} wireless card Log The test passed for the ${WIFI_CARD} wireless card WARN -WLE002.201 Wi-Fi scanning (Ubuntu) - [Documentation] Check whether the Wi-Fi functionality of card is - ... initialized correctly and can be used from within the - ... operating system.. - [Tags] minimal-regression - Skip If not ${WIRELESS_CARD_WIFI_SUPPORT} WLE002.201 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} WLE002.201 not supported - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} WLE002.201 not supported - Wi-Fi Scanning ${ENV_ID_UBUNTU} - -WLE002.202 Wi-Fi scanning (Fedora) - [Documentation] Check whether the Wi-Fi functionality of card is - ... initialized correctly and can be used from within the - ... operating system.. - [Tags] minimal-regression - Skip If not ${WIRELESS_CARD_WIFI_SUPPORT} WLE002.202 not supported - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} WLE002.202 not supported - Wi-Fi Scanning ${ENV_ID_FEDORA} - WLE002.301 Wi-Fi scanning (Windows) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. @@ -96,23 +113,6 @@ WLE002.301 Wi-Fi scanning (Windows) Log To Console The test passed for the ${current_card} wireless card Log The test passed for the ${current_card} wireless card WARN -WLE003.201 Bluetooth scanning (Ubuntu) - [Documentation] Check whether the Bluetooth functionality of card is - ... initialized correctly and can be used from within the - ... operating system. - Skip If not ${WIRELESS_CARD_BLUETOOTH_SUPPORT} WLE003.201 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} WLE003.201 not supported - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} WLE003.201 not supported - Bluetooth Scanning ${ENV_ID_UBUNTU} - -WLE003.202 Bluetooth scanning (Fedora) - [Documentation] Check whether the Bluetooth functionality of card is - ... initialized correctly and can be used from within the - ... operating system. - Skip If not ${WIRELESS_CARD_BLUETOOTH_SUPPORT} WLE003.202 not supported - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} WLE003.202 not supported - Bluetooth Scanning ${ENV_ID_FEDORA} - # TBD - Run scanning bluetooth via powershell and list aviailable devices # test case below just check connected bluetooth devices # WLE003.002 Bluetooth scanning (Windows 11) diff --git a/dasharo-performance/platform-stability.robot b/dasharo-performance/platform-stability.robot index bf23de2a3d..20f6950813 100644 --- a/dasharo-performance/platform-stability.robot +++ b/dasharo-performance/platform-stability.robot @@ -61,6 +61,15 @@ STB001.201 Verify if no reboot occurs in the OS (Ubuntu) Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} STB001.201 not supported Verify If No Reboot Occurs In Linux ${ENV_ID_UBUNTU} +STB002.201 Verify if no unexpected boot errors appear in Linux logs + [Documentation] This test aims to verify that there are no unexpected + ... error ,essages in Linux kernel logs. + [Tags] minimal-regression + Skip If not ${PLATFORM_STABILITY_CHECKING} STB002.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} STB002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} STB002.201 not supported + Verify If No Unexpected Boot Errors Appear In Linux Logs ${ENV_ID_UBUNTU}s + STB001.202 Verify if no reboot occurs in the OS (Fedora) [Documentation] This test aims to verify that the DUT booted to the ... Operating System does not reset. The test is performed in multiple @@ -70,6 +79,15 @@ STB001.202 Verify if no reboot occurs in the OS (Fedora) Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} STB001.202 not supported Verify If No Reboot Occurs In Linux ${ENV_ID_FEDORA} +STB002.202 Verify if no unexpected boot errors appear in Linux logs + [Documentation] This test aims to verify that there are no unexpected + ... error ,essages in Linux kernel logs. + [Tags] minimal-regression + Skip If not ${PLATFORM_STABILITY_CHECKING} STB002.202 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} STB002.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} STB002.202 not supported + Verify If No Unexpected Boot Errors Appear In Linux Logs ${ENV_ID_FEDORA} + STB001.301 Verify if no reboot occurs in the OS (Windows) [Documentation] This test aims to verify that the DUT booted to the ... Operating System does not reset. The test is performed in multiple @@ -103,24 +121,6 @@ STB001.301 Verify if no reboot occurs in the OS (Windows) ${timer}= Evaluate ${timer} + ${STABILITY_TEST_MEASURE_INTERVAL} END -STB002.201 Verify if no unexpected boot errors appear in Linux logs - [Documentation] This test aims to verify that there are no unexpected - ... error ,essages in Linux kernel logs. - [Tags] minimal-regression - Skip If not ${PLATFORM_STABILITY_CHECKING} STB002.201 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} STB002.201 not supported - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} STB002.201 not supported - Verify If No Unexpected Boot Errors Appear In Linux Logs ${ENV_ID_UBUNTU} - -STB002.202 Verify if no unexpected boot errors appear in Linux logs - [Documentation] This test aims to verify that there are no unexpected - ... error ,essages in Linux kernel logs. - [Tags] minimal-regression - Skip If not ${PLATFORM_STABILITY_CHECKING} STB002.202 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} STB002.202 not supported - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} STB002.202 not supported - Verify If No Unexpected Boot Errors Appear In Linux Logs ${ENV_ID_FEDORA} - *** Keywords *** Verify If No Reboot Occurs In Linux diff --git a/dasharo-security/me-neuter.robot b/dasharo-security/me-neuter.robot index 4e3a35e609..27c7c25830 100644 --- a/dasharo-security/me-neuter.robot +++ b/dasharo-security/me-neuter.robot @@ -45,12 +45,6 @@ MNE002.201 Intel ME mode option Enabled works correctly (Ubuntu) Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} MNE002.201 not supported Intel ME Mode Option Enabled Works Correctly ${ENV_ID_UBUNTU} -MNE002.202 Intel ME mode option Enabled works correctly (Fedora) - [Documentation] Check whether the Intel ME mode option in state Enabled - ... works correctly. - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} MNE002.202 not supported - Intel ME Mode Option Enabled Works Correctly ${ENV_ID_FEDORA} - MNE003.201 Intel ME mode option Disabled (Soft) works correctly (Ubuntu) [Documentation] Check whether the Intel ME mode option in state ... Disabled (Soft) works correctly @@ -58,12 +52,6 @@ MNE003.201 Intel ME mode option Disabled (Soft) works correctly (Ubuntu) Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} MNE003.201 not supported Intel ME Mode Option Disabled (Soft) Works Correctly ${ENV_ID_UBUNTU} -MNE003.202 Intel ME mode option Disabled (Soft) works correctly (Fedora) - [Documentation] Check whether the Intel ME mode option in state - ... Disabled (Soft) works correctly - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} MNE003.202 not supported - Intel ME Mode Option Disabled (Soft) Works Correctly ${ENV_ID_FEDORA} - MNE004.201 Intel ME mode option Disabled (HAP) works correctly (Ubuntu) [Documentation] Check whether the Intel ME mode option in state ... Disabled (HAP) works correctly. @@ -71,12 +59,6 @@ MNE004.201 Intel ME mode option Disabled (HAP) works correctly (Ubuntu) Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} MNE004.201 not supported Intel ME Mode Option Disabled (HAP) Works Correctly ${ENV_ID_UBUNTU} -MNE004.202 Intel ME mode option Disabled (HAP) works correctly (Fedora) - [Documentation] Check whether the Intel ME mode option in state - ... Disabled (HAP) works correctly. - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} MNE004.202 not supported - Intel ME Mode Option Disabled (HAP) Works Correctly ${ENV_ID_FEDORA} - MNE006.201 Check Intel ME version (Ubuntu) [Documentation] This test aims to verify that the Intel ME version might ... be read on the Operating System level. The read version should be @@ -85,6 +67,24 @@ MNE006.201 Check Intel ME version (Ubuntu) Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} MNE004.201 not supported Check Intel ME Version ${ENV_ID_UBUNTU} +MNE002.202 Intel ME mode option Enabled works correctly (Fedora) + [Documentation] Check whether the Intel ME mode option in state Enabled + ... works correctly. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} MNE002.202 not supported + Intel ME Mode Option Enabled Works Correctly ${ENV_ID_FEDORA} + +MNE003.202 Intel ME mode option Disabled (Soft) works correctly (Fedora) + [Documentation] Check whether the Intel ME mode option in state + ... Disabled (Soft) works correctly + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} MNE003.202 not supported + Intel ME Mode Option Disabled (Soft) Works Correctly ${ENV_ID_FEDORA} + +MNE004.202 Intel ME mode option Disabled (HAP) works correctly (Fedora) + [Documentation] Check whether the Intel ME mode option in state + ... Disabled (HAP) works correctly. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} MNE004.202 not supported + Intel ME Mode Option Disabled (HAP) Works Correctly ${ENV_ID_FEDORA} + MNE006.202 Check Intel ME version (Fedora) [Documentation] This test aims to verify that the Intel ME version might ... be read on the Operating System level. The read version should be diff --git a/dasharo-security/measured-boot.robot b/dasharo-security/measured-boot.robot index 4a62945d32..5fde4b4240 100644 --- a/dasharo-security/measured-boot.robot +++ b/dasharo-security/measured-boot.robot @@ -34,13 +34,6 @@ MBO001.201 Measured Boot support (Ubuntu) Boot Linux And Login To Root ${ENV_ID_UBUNTU} Linux Measured Boot Support -MBO001.202 Measured Boot support (Fedora) - [Documentation] Check whether Measured Boot is functional and - ... measurements are stored into the TPM. - Power On - Boot Linux And Login To Root ${ENV_ID_FEDORA} - Linux Measured Boot Support - MBO002.201 Check if event log PCRs match actual values (Ubuntu) [Documentation] Check whether PCRs values calculated from event log match ... actual PCRs values @@ -48,6 +41,13 @@ MBO002.201 Check if event log PCRs match actual values (Ubuntu) Boot Linux And Login To Root ${ENV_ID_UBUNTU} Validate PCRs Against Event Log /sys/kernel/security/tpm0/binary_bios_measurements +MBO001.202 Measured Boot support (Fedora) + [Documentation] Check whether Measured Boot is functional and + ... measurements are stored into the TPM. + Power On + Boot Linux And Login To Root ${ENV_ID_FEDORA} + Linux Measured Boot Support + MBO002.202 Check if event log PCRs match actual values (Fedora) [Documentation] Check whether PCRs values calculated from event log match ... actual PCRs values diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index 9bf641451e..7fd42ba010 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -37,6 +37,34 @@ TPM001.001 TPM Support (firmware) Validate Expected TPM Version Via Cbmem TPM Eventlog END +TPM002.001 Verify TPM version (firmware) + [Documentation] This test aims to verify that the TPM version is + ... correctly recognized by the firmware. + Skip If '${DEFAULT_BOOT_OS_ID}' not in ${TESTED_LINUX_DISTROS} TPM002.001 not supported + Prepare TPM Test On Linux + ${result}= Run Keyword And Ignore Error Validate Expected TPM Chip Via Cbmem Console Log + IF '${result}[0]' == 'FAIL' + Log To Console \nChip detection failed, attempting cbmem log detection\n + Validate Expected TPM Version Via Cbmem TPM Eventlog + END + +TPM003.001 Check TPM Physical Presence Interface (firmware) + [Documentation] This test aims to verify that the TPM Physical Presence + ... Interface is supported by the firmware and the log can be detected + ... with cbmem within Ubuntu + Skip If '${DEFAULT_BOOT_OS_ID}' not in ${TESTED_LINUX_DISTROS} TPM003.001 not supported + Prepare TPM Test On Linux + ${out}= Execute Command In Terminal cbmem -1 | grep PPI + Should Contain ${out} PPI: Pending OS request + Should Contain ${out} PPI: OS response + +# TPM003.004 Change active PCR banks with TPM PPI (firmware) +# [Documentation] This test aims to verify that the TPM Physical Presence +# ... Interface is working properly in the firmware by changing active TPM PCR banks. +# Skip If not ${TPM_SUPPORTED_VERSION} == None TPM003.004 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.004 not supported +# TODO: https://docs.dasharo.com/unified-test-documentation/dasharo-security/200-tpm-support/#tpm003004-change-active-pcr-banks-with-tpm-ppi-firmware + TPM001.201 TPM Support (Ubuntu) [Documentation] Check whether the TPM is initialized correctly and the ... PCRs can be accessed from the Linux OS. @@ -45,6 +73,23 @@ TPM001.201 TPM Support (Ubuntu) Prepare TPM Test On Linux ${ENV_ID_UBUNTU} Verify Presence Of Any PCRs Via Sysfs +TPM002.201 Verify TPM version (Ubuntu) + [Documentation] This test aims to verify that the TPM version is + ... correctly recognized by the operating system. + [Tags] minimal-regression + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM002.101 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} TPM002.201 not supported + Prepare TPM Test On Linux ${ENV_ID_UBUNTU} + Validate Expected TPM Version Via Sysfs + +TPM003.201 Check TPM Physical Presence Interface (Ubuntu) + [Documentation] This test aims to verify that the TPM Physical Presence + ... Interface is correctly recognized by the operating system. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} TPM003.201 not supported + Prepare TPM Test On Linux ${ENV_ID_UBUNTU} + Check TPM Physical Presence Interface + TPM001.202 TPM Support (Fedora) [Documentation] Check whether the TPM is initialized correctly and the ... PCRs can be accessed from the Linux OS. @@ -52,6 +97,21 @@ TPM001.202 TPM Support (Fedora) Prepare TPM Test On Linux ${ENV_ID_FEDORA} Verify Presence Of Any PCRs Via Sysfs +TPM002.202 Verify TPM version (Fedora) + [Documentation] This test aims to verify that the TPM version is + ... correctly recognized by the operating system. + [Tags] minimal-regression + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} TPM002.202 not supported + Prepare TPM Test On Linux ${ENV_ID_FEDORA} + Validate Expected TPM Version Via Sysfs + +TPM003.202 Check TPM Physical Presence Interface (Fedora) + [Documentation] This test aims to verify that the TPM Physical Presence + ... Interface is correctly recognized by the operating system. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} TPM003.202 not supported + Prepare TPM Test On Linux ${ENV_ID_FEDORA} + Check TPM Physical Presence Interface + TPM001.301 TPM Support (Windows) [Documentation] Check whether the TPM is initialized correctly and the ... PCRs can be accessed from Windows. @@ -66,34 +126,6 @@ TPM001.301 TPM Support (Windows) Should Contain ${tpm_ready} True Should Contain ${tpm_enabled} True -TPM002.001 Verify TPM version (firmware) - [Documentation] This test aims to verify that the TPM version is - ... correctly recognized by the firmware. - Skip If '${DEFAULT_BOOT_OS_ID}' not in ${TESTED_LINUX_DISTROS} TPM002.001 not supported - Prepare TPM Test On Linux - ${result}= Run Keyword And Ignore Error Validate Expected TPM Chip Via Cbmem Console Log - IF '${result}[0]' == 'FAIL' - Log To Console \nChip detection failed, attempting cbmem log detection\n - Validate Expected TPM Version Via Cbmem TPM Eventlog - END - -TPM002.201 Verify TPM version (Ubuntu) - [Documentation] This test aims to verify that the TPM version is - ... correctly recognized by the operating system. - [Tags] minimal-regression - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM002.101 not supported - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} TPM002.201 not supported - Prepare TPM Test On Linux ${ENV_ID_UBUNTU} - Validate Expected TPM Version Via Sysfs - -TPM002.202 Verify TPM version (Fedora) - [Documentation] This test aims to verify that the TPM version is - ... correctly recognized by the operating system. - [Tags] minimal-regression - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} TPM002.202 not supported - Prepare TPM Test On Linux ${ENV_ID_FEDORA} - Validate Expected TPM Version Via Sysfs - TPM002.301 Verify TPM version (Windows) [Documentation] This test aims to verify that the TPM version is ... correctly recognized by the operating system. @@ -104,31 +136,6 @@ TPM002.301 Verify TPM version (Windows) ... wmic /namespace:\\\\root\\cimv2\\security\\microsofttpm path win32_tpm get * /format:textvaluelist.xsl Should Contain ${out} SpecVersion=2.0 -TPM003.001 Check TPM Physical Presence Interface (firmware) - [Documentation] This test aims to verify that the TPM Physical Presence - ... Interface is supported by the firmware and the log can be detected - ... with cbmem within Ubuntu - Skip If '${DEFAULT_BOOT_OS_ID}' not in ${TESTED_LINUX_DISTROS} TPM003.001 not supported - Prepare TPM Test On Linux - ${out}= Execute Command In Terminal cbmem -1 | grep PPI - Should Contain ${out} PPI: Pending OS request - Should Contain ${out} PPI: OS response - -TPM003.201 Check TPM Physical Presence Interface (Ubuntu) - [Documentation] This test aims to verify that the TPM Physical Presence - ... Interface is correctly recognized by the operating system. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.201 not supported - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} TPM003.201 not supported - Prepare TPM Test On Linux ${ENV_ID_UBUNTU} - Check TPM Physical Presence Interface - -TPM003.202 Check TPM Physical Presence Interface (Fedora) - [Documentation] This test aims to verify that the TPM Physical Presence - ... Interface is correctly recognized by the operating system. - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} TPM003.202 not supported - Prepare TPM Test On Linux ${ENV_ID_FEDORA} - Check TPM Physical Presence Interface - TPM003.003 Check TPM Physical Presence Interface (Windows) [Documentation] This test aims to verify that the TPM Physical Presence ... Interface is correctly recognized by the operating system. @@ -138,13 +145,6 @@ TPM003.003 Check TPM Physical Presence Interface (Windows) ${out}= Execute Command In Terminal tpmtool getdeviceinformation Should Contain ${out} PPI Version: 1.3 -# TPM003.004 Change active PCR banks with TPM PPI (firmware) -# [Documentation] This test aims to verify that the TPM Physical Presence -# ... Interface is working properly in the firmware by changing active TPM PCR banks. -# Skip If not ${TPM_SUPPORTED_VERSION} == None TPM003.004 not supported -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.004 not supported -# TODO: https://docs.dasharo.com/unified-test-documentation/dasharo-security/200-tpm-support/#tpm003004-change-active-pcr-banks-with-tpm-ppi-firmware - *** Keywords *** Prepare TPM Test On Linux From 77ee91c5dde6133145d20d121f0d6745ba163c24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 31 Mar 2025 10:47:02 +0200 Subject: [PATCH 266/416] platform-configs/include/novacustom-common: Add CPU suite support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- platform-configs/include/novacustom-common.robot | 1 + platform-configs/include/novacustom-mtl.robot | 2 +- platform-configs/novacustom-v540tnd.robot | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index ccd3f680d0..6d1f46963e 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -52,6 +52,7 @@ ${DASHARO_POWER_MGMT_MENU_SUPPORT}= ${TRUE} # Test module: dasharo-compatibility ${CUSTOM_BOOT_MENU_KEY_SUPPORT}= ${TRUE} ${CUSTOM_SETUP_MENU_KEY_SUPPORT}= ${TRUE} +${CPU_TESTS_SUPPORT}= ${TRUE} ${INTERNAL_LCD_DISPLAY_SUPPORT}= ${TRUE} ${EXTERNAL_HDMI_DISPLAY_SUPPORT}= ${TRUE} ${EC_AND_SUPER_IO_SUPPORT}= ${TRUE} diff --git a/platform-configs/include/novacustom-mtl.robot b/platform-configs/include/novacustom-mtl.robot index 47027a19fd..f77af2df46 100644 --- a/platform-configs/include/novacustom-mtl.robot +++ b/platform-configs/include/novacustom-mtl.robot @@ -10,7 +10,7 @@ ${DEF_CORES_PER_SOCKET}= 16 ${DEF_THREADS_PER_CORE}= 2 ${DEF_THREADS_TOTAL}= 22 # TODO: remove, the value below can be inferred from the one above -${DEF_ONLINE_CPU}= 0-7 +${DEF_ONLINE_CPU}= 0-21 ${DEF_SOCKETS}= 1 # Audio diff --git a/platform-configs/novacustom-v540tnd.robot b/platform-configs/novacustom-v540tnd.robot index 247a766de5..b1deec34e7 100644 --- a/platform-configs/novacustom-v540tnd.robot +++ b/platform-configs/novacustom-v540tnd.robot @@ -26,7 +26,6 @@ ${WEBCAM_UBUNTU}= Chicony Electronics Co., Ltd Chi ${MINI_PC_IE_SLOT_SUPPORT}= ${TRUE} ${WIFI_CARD}= ... Network controller: Intel Corporation Meteor Lake PCH CNVi WiFi (rev 20) -${CPU_TESTS_SUPPORT}= ${TRUE} ${USB_DEVICE}= SanDisk ${ME_STATICALLY_DISABLED}= ${TRUE} ${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.1-rc5 From e944d4824e37ce982d584abdf3aa58afaf39225e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 31 Mar 2025 11:36:51 +0200 Subject: [PATCH 267/416] dasharo-performance/platform-stability: Remove typo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/platform-stability.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dasharo-performance/platform-stability.robot b/dasharo-performance/platform-stability.robot index 20f6950813..ea5ab56096 100644 --- a/dasharo-performance/platform-stability.robot +++ b/dasharo-performance/platform-stability.robot @@ -68,7 +68,7 @@ STB002.201 Verify if no unexpected boot errors appear in Linux logs Skip If not ${PLATFORM_STABILITY_CHECKING} STB002.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} STB002.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} STB002.201 not supported - Verify If No Unexpected Boot Errors Appear In Linux Logs ${ENV_ID_UBUNTU}s + Verify If No Unexpected Boot Errors Appear In Linux Logs ${ENV_ID_UBUNTU} STB001.202 Verify if no reboot occurs in the OS (Fedora) [Documentation] This test aims to verify that the DUT booted to the From 233fbefd6634dccb9dc716bc05e5959d2ba40cc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 31 Mar 2025 14:13:46 +0200 Subject: [PATCH 268/416] lib/flash: Add reading firmware with internal programmer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/flash.robot | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/flash.robot b/lib/flash.robot index db68b979b5..fb2a876433 100644 --- a/lib/flash.robot +++ b/lib/flash.robot @@ -90,7 +90,7 @@ Flash Firmware ELSE IF '${FLASHING_METHOD}' == 'internal' Make Sure That Flash Locks Are Disabled Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${BOOTED_OS_ID} Login To Linux Switch To Root User Flash Via Internal Programmer ${fw_file} region=bios @@ -182,7 +182,12 @@ Read Firmware Rte Flash Read ${file} ELSE IF '${FLASHING_METHOD}' == 'internal' # TODO - Fail Read firmware not implemented for platform config ${CONFIG} + Power On + Boot System Or From Connected Disk ${DEFAULT_BOOT_OS_ID} + Login To Linux + Switch To Root User + Execute Command In Terminal flashrom -p internal --ifd -i bios -r coreboot.rom + Get File From DUT coreboot.rom ${file} ELSE Fail Read firmware not implemented for platform config ${CONFIG} END From 8e10a75da80ee5ba3c9c94c233f8afe0cf7c8217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 31 Mar 2025 14:14:26 +0200 Subject: [PATCH 269/416] lib/network: Add Get File From DUT keyword MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/network.robot | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/lib/network.robot b/lib/network.robot index 7422089211..370adb5ded 100644 --- a/lib/network.robot +++ b/lib/network.robot @@ -33,6 +33,33 @@ Send File To DUT ${hash_target}= Strip String ${hash_target} Should Be Equal ${hash_source} ${hash_target} msg=File was not correctly sent to DUT +Get File From DUT + [Documentation] Downloads a file from DUT and saves it at given location + [Arguments] ${source_path} ${target_path} + Run rm -f ${target_path} + ${hash_source}= Execute Command In Terminal md5sum ${source_path} | cut -d ' ' -f 1 + + IF '${DUT_CONNECTION_METHOD}' == 'Telnet' + IF '${MANUFACTURER}' == 'QEMU' + Set Local Variable ${ip_address} localhost + Set Local Variable ${port} 5222 + ELSE + Wait Until Keyword Succeeds 5x 10s + ... Get Hostname Ip + ${ip_address}= Get Hostname Ip + Set Local Variable ${port} 22 + END + SSHLibrary.Open Connection ${ip_address} port=${port} + SSHLibrary.Login ${DEVICE_OS_USERNAME} ${DEVICE_OS_PASSWORD} + SSHLibrary.Get File ${source_path} ${target_path} + SSHLibrary.Close Connection + ELSE + SSHLibrary.Get File ${source_path} ${target_path} + END + ${hash_target}= Run md5sum ${target_path} | cut -d ' ' -f 1 + ${hash_target}= Strip String ${hash_target} + Should Be Equal ${hash_source} ${hash_target} msg=File was not correctly sent to DUT + Get Hostname Ip [Documentation] Returns local IP address of the DUT. ${out_hostname}= Execute Command In Terminal hostname -I From 89fe3c44f126ae2b302260155da25b330696bf01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 31 Mar 2025 14:16:26 +0200 Subject: [PATCH 270/416] options-lib_dcu: Set Nextboot: make it not affect booted os variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/options/options-lib_dcu.robot | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index 282c4cdc8f..74fd62a2a5 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -162,9 +162,6 @@ Set Nextboot IF '${os_boot_id}' != '${EMPTY}' ${id}= Get Substring ${os_boot_id} 4 8 Execute Command In Terminal efibootmgr --bootnext ${id} - Sleep 1s - Import Variables ${CURDIR}/../../os-config/${env_id}-credentials.py - Set Suite Variable ${BOOTED_OS_ID} ${env_id} ELSE Fail Os entry not found END @@ -187,6 +184,8 @@ Boot System Or From Connected Disk ${os_boot_id}= Set Nextboot ${env_id} Write Into Terminal reboot + Import Variables ${CURDIR}/../../os-config/${env_id}-credentials.py + Set Suite Variable ${BOOTED_OS_ID} ${env_id} Sleep 30s Login To Windows Via SSH From f76f5754785da47ae751bc5cad2bb34fb7ae714b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 09:05:50 +0200 Subject: [PATCH 271/416] lib/sleep-lib: Keep booted OS state valid when using FWTS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/sleep-lib.robot | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/sleep-lib.robot b/lib/sleep-lib.robot index 648b744a79..71a200c2d0 100644 --- a/lib/sleep-lib.robot +++ b/lib/sleep-lib.robot @@ -1,6 +1,8 @@ *** Settings *** Documentation Collection of keywords related to System Sleep States +Resource ../keywords.robot + *** Keywords *** Check If Platform Sleep Type Can Be Selected @@ -112,9 +114,10 @@ Perform Hibernation Test Using FWTS ... test by using Firmware Test Suite tool [Arguments] ${test_duration}=40 ${is_hibernation_performed_correctly}= Set Variable ${FALSE} + IF '${POWER_CTRL}' == 'none' Set Nextboot ${BOOTED_OS_ID} Execute Command In Terminal fwts s4 -f -r /tmp/hibernation_test_log.log Sleep ${test_duration}s - Boot Operating System ubuntu + Boot System Or From Connected Disk ${BOOTED_OS_ID} Login To Linux Switch To Root User ${test_result}= Execute Command In Terminal cat /tmp/hibernation_test_log.log @@ -138,6 +141,7 @@ Perform Warmboot Using Rtcwake # would hang here and fail. # Sometimes it may take long to shutdown all systemd services, # so the waiting times have to be excessive to avoid false negatives. + IF '${POWER_CTRL}' == 'none' Set Nextboot ${BOOTED_OS_ID} Write Into Terminal rtcwake -m off -s 60 Set DUT Response Timeout 300s Sleep 60s From d979ae2d0035d8ac0c257a6b5836abd745b2c44a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 09:07:59 +0200 Subject: [PATCH 272/416] lib/flash: Flash Firmware simplify and reboot if no pwr_ctrl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/flash.robot | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/flash.robot b/lib/flash.robot index fb2a876433..c3005f1ca5 100644 --- a/lib/flash.robot +++ b/lib/flash.robot @@ -79,12 +79,6 @@ Flash Firmware FAIL Image size doesn't match the flash chip's size! END - IF "${OPTIONS_LIB}"=="options-lib_dcu" - Make Sure That Flash Locks Are Disabled - Flash Via Internal Programmer ${fw_file} region='bios' - RETURN - END - IF '${FLASHING_METHOD}' == 'external' Rte Flash Write ${fw_file} ELSE IF '${FLASHING_METHOD}' == 'internal' @@ -98,6 +92,14 @@ Flash Firmware Fail Flash firmware not implemented for platform config ${CONFIG} END + IF '''${POWER_CTRL}''' == '''none''' + Power On + Boot System Or From Connected Disk ${BOOTED_OS_ID} + Login To Linux + Switch To Root User + Execute Reboot Command + END + # First boot after flashing may take longer than usual Set DUT Response Timeout 180s From 3c612f25722e2b7d8482350c7af21352b5f9c0fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 11:18:04 +0200 Subject: [PATCH 273/416] Add old IDS of Ubuntu tests renamed when adding basic Fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/audio-subsystem.robot | 3 +++ dasharo-compatibility/cpu-status.robot | 8 ++++++++ dasharo-compatibility/custom-network-boot-entries.robot | 1 + dasharo-compatibility/dcu.robot | 4 ++++ dasharo-compatibility/display-ports-and-lcd-support.robot | 6 ++++++ dasharo-compatibility/dmidecode.robot | 8 ++++++++ dasharo-compatibility/miniPCIe-slot-verification.robot | 6 ++++++ dasharo-compatibility/nvme-support.robot | 2 ++ dasharo-compatibility/sd-card-reader.robot | 4 ++++ dasharo-compatibility/usb-hid-and-msc-support.robot | 6 ++++++ dasharo-compatibility/wifi-bluetooth-support.robot | 5 +++++ dasharo-performance/platform-stability.robot | 3 +++ dasharo-security/me-neuter.robot | 4 ++++ dasharo-security/measured-boot.robot | 2 ++ dasharo-security/tpm-support.robot | 6 ++++++ 15 files changed, 68 insertions(+) diff --git a/dasharo-compatibility/audio-subsystem.robot b/dasharo-compatibility/audio-subsystem.robot index 480296aa57..3e0ce7f4bc 100644 --- a/dasharo-compatibility/audio-subsystem.robot +++ b/dasharo-compatibility/audio-subsystem.robot @@ -26,6 +26,7 @@ Suite Teardown Run Keyword AUD001.201 Audio subsystem detection (Ubuntu) [Documentation] Check whether the audio subsystem is initialized correctly ... and can be detected in Linux OS. + ... Previous IDs: AUD001.001 Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} AUD001.201 not supported Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" AUD001.201 not supported @@ -52,6 +53,7 @@ AUD001.201 Audio subsystem detection (Ubuntu) AUD004.201 External headset recognition (Ubuntu) [Documentation] Check whether the external headset is recognized ... properly after plugging in micro jack into slot. + ... Previous IDs: AUD004.001 Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD004.201 not supported Skip If not ${EXTERNAL_HEADSET_SUPPORT} AUD004.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} AUD004.201 not supported @@ -76,6 +78,7 @@ AUD004.202 External headset recognition (Fedora) AUD001.301 Audio subsystem detection (Windows) [Documentation] Check whether the audio subsystem is initialized correctly ... and can be detected in Windows 11. + ... Previous IDs: AUD001.002 Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.301 not supported Skip If not ${TESTS_IN_WINDOWS_SUPPORT} AUD001.301 not supported Power On diff --git a/dasharo-compatibility/cpu-status.robot b/dasharo-compatibility/cpu-status.robot index 7dff1719cf..9aebc3a13c 100644 --- a/dasharo-compatibility/cpu-status.robot +++ b/dasharo-compatibility/cpu-status.robot @@ -29,6 +29,7 @@ Suite Teardown Run Keyword *** Test Cases *** CPU001.201 CPU works (Ubuntu) [Documentation] Check whether the CPU mounted on the DUT works. + ... Previous IDs: CPU001.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU001.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPU001.201 not supported Power On @@ -38,6 +39,7 @@ CPU001.201 CPU works (Ubuntu) CPU002.201 CPU cache enabled (Ubuntu) [Documentation] Check whether the all declared for the DUT cache levels ... are enabled. + ... Previous IDs: CPU002.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU002.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPU001.201 not supported Power On @@ -47,6 +49,7 @@ CPU002.201 CPU cache enabled (Ubuntu) CPU003.201 Multiple CPU support (Ubuntu) [Documentation] Check whether the DUT has multiple CPU support. + ... Previous IDs: CPU003.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU003.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPU003.201 not supported Power On @@ -56,6 +59,7 @@ CPU003.201 Multiple CPU support (Ubuntu) CPU004.201 Multiple-core support (Ubuntu) [Documentation] Check whether the DUT has multi-core support. + ... Previous IDs: CPU004.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPU004.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPU004.201 not supported Power On @@ -97,6 +101,7 @@ CPU004.202 Multiple-core support (Fedora) CPU001.301 CPU works (Windows) [Documentation] Check whether the CPU mounted on the DUT works. + ... Previous IDs: CPU001.002 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU001.301 not supported Power On Login To Windows @@ -104,6 +109,7 @@ CPU001.301 CPU works (Windows) CPU002.301 CPU cache enabled (Windows) [Documentation] Check whether the all declared for the DUT cache levels ... are enabled. + ... Previous IDs: CPU002.002 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU002.301 not supported Power On Login To Windows @@ -119,6 +125,7 @@ CPU002.301 CPU cache enabled (Windows) CPU003.301 Multiple CPU support (Windows) [Documentation] Check whether the DUT has multiple CPU support. + ... Previous IDs: CPU003.002 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU003.301 not supported Power On Login To Windows @@ -129,6 +136,7 @@ CPU003.301 Multiple CPU support (Windows) CPU004.301 Multiple-core support (Windows) [Documentation] Check whether the DUT has multi-core support. + ... Previous IDs: CPU004.002 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPU004.301 not supported Power On Login To Windows diff --git a/dasharo-compatibility/custom-network-boot-entries.robot b/dasharo-compatibility/custom-network-boot-entries.robot index 8c93a69757..507b0f0639 100644 --- a/dasharo-compatibility/custom-network-boot-entries.robot +++ b/dasharo-compatibility/custom-network-boot-entries.robot @@ -26,6 +26,7 @@ Suite Teardown Run Keyword CNB001.201 Only one iPXE in boot menu [Documentation] Check whether the network boot option with iPXE appears ... only once in the boot option list. + ... Previous IDs: CNB001.001 Skip If not ${CUSTOM_NETWORK_BOOT_ENTRIES_SUPPORT} CNB001.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CNB001.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CNB001.201 not supported diff --git a/dasharo-compatibility/dcu.robot b/dasharo-compatibility/dcu.robot index dceaaea993..5b5b782cbd 100644 --- a/dasharo-compatibility/dcu.robot +++ b/dasharo-compatibility/dcu.robot @@ -34,6 +34,7 @@ ${FW_COPY}= coreboot.rom DCU001.201 Change the UUID [Documentation] This test case verifies that the UUID encoded in the DMI ... table of an image can be changed using DCU. + ... Previous IDs: DCU001.001 Skip If not ${DCU_UUID_SUPPORT} DCU001.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DCU001.201 not supported Change The UUID ${ENV_ID_UBUNTU} @@ -41,6 +42,7 @@ DCU001.201 Change the UUID DCU002.201 Change the serial number [Documentation] This test case verifies that the serial number encoded ... in the DMI table of an image can be changed using DCU. + ... Previous IDs: DCU002.001 Skip If not ${DCU_SERIAL_SUPPORT} DCU002.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DCU002.201 not supported Change The Serial Number ${ENV_ID_UBUNTU} @@ -50,6 +52,7 @@ DCU003.201 Change the bootsplash logo ... into an image can be changed using DCU. ... PLEASE NOTE that a display device needs to be physically connected ... to the DUT for this test to work. + ... Previous IDs: DCU003.001 Skip If not ${CUSTOM_LOGO_SUPPORT} DCU003.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DCU003.201 not supported Change The Bootsplash Logo ${ENV_ID_UBUNTU} @@ -60,6 +63,7 @@ DCU004.201 Verify SMMSTORE changes ... Verified using Setup menu where possible. When tested on a device ... which uses DCU for accessing Setup variables the results might not ... be trustworthy. + ... Previous IDs: DCU004.001 Skip If ... '''${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}''' == '''${EMPTY}''' ... DCU004.201 Verify SMMSTORE changes not supported diff --git a/dasharo-compatibility/display-ports-and-lcd-support.robot b/dasharo-compatibility/display-ports-and-lcd-support.robot index 72a539a5c1..e89a9d2ef7 100644 --- a/dasharo-compatibility/display-ports-and-lcd-support.robot +++ b/dasharo-compatibility/display-ports-and-lcd-support.robot @@ -25,6 +25,7 @@ Suite Teardown Log Out And Close Connection DSP001.201 - Internal display in OS (Ubuntu) [Documentation] Check whether an internal display is visible in ... Ubuntu. + ... Previous IDs: DSP001.002 Skip If not ${INTERNAL_LCD_DISPLAY_SUPPORT} DSP001.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP001.201 not supported Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" DSP001.201 not supported @@ -40,6 +41,7 @@ DSP001.202 - Internal display in OS (Fedora) DSP001.301 - Internal display in OS (Windows) [Documentation] Check whether an internal display is visible in ... Windows OS. + ... Previous IDs: DSP001.003 Skip If not ${INTERNAL_LCD_DISPLAY_SUPPORT} DSP001.002 not supported Skip If not ${TESTS_IN_WINDOWS_SUPPORT} DSP001.002 not supported Power On @@ -50,6 +52,7 @@ DSP002.201 - External HDMI display in OS (Ubuntu) [Documentation] Check whether an external HDMI display is visible in ... Linux OS. An external HDMI display must be provided in ... the platform config. + ... Previous IDs: DSP002.002 Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP002.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP002.201 not supported Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" DSP001.201 not supported @@ -67,6 +70,7 @@ DSP002.301 - External HDMI display in OS (Windows) [Documentation] Check whether an external HDMI display is visible in ... Windows OS. An external HDMI display must be provided in ... the platform config. + ... Previous IDs: DSP002.003 Skip If not ${EXTERNAL_HDMI_DISPLAY_SUPPORT} DSP002.301 not supported Skip If not ${TESTS_IN_WINDOWS_SUPPORT} DSP002.301 not supported Power On @@ -77,6 +81,7 @@ DSP003.201 - External DP display in OS (Ubuntu) [Documentation] Check whether an external Display Port is visible in ... Linux OS. An external Display Port must be provided in ... the platform config. + ... Previous IDs: DSP003.001 Skip If not ${EXTERNAL_DISPLAY_PORT_SUPPORT} DSP003.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} DSP003.201 supported Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" DSP001.201 not supported @@ -94,6 +99,7 @@ DSP003.301 - External DP display in OS (Windows) [Documentation] Check whether an external Display Port is visible in ... Windows OS. An external Display Port must be provided in ... the platform config. + ... Previous IDs: DSP003.002 Skip If not ${EXTERNAL_DISPLAY_PORT_SUPPORT} DSP003.301 not supported Skip If not ${TESTS_IN_WINDOWS_SUPPORT} 301.002 not supported Power On diff --git a/dasharo-compatibility/dmidecode.robot b/dasharo-compatibility/dmidecode.robot index 2f70ac2334..7421c2a0a6 100644 --- a/dasharo-compatibility/dmidecode.robot +++ b/dasharo-compatibility/dmidecode.robot @@ -30,6 +30,7 @@ Suite Teardown Run Keyword DMI001.201 Verify the device serial number [Documentation] Check whether the DUT serial number is the same as it is ... expected. + ... Previous IDs: DMI001.001 Skip If not ${SERIAL_NUMBER_VERIFICATION} DMI001.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI001.201 not supported Get SMBIOS Values ${ENV_ID_UBUNTU} @@ -39,6 +40,7 @@ DMI001.201 Verify the device serial number DMI002.201 Verify the firmware version [Documentation] Check whether the firmware version on the DUT is the ... same as it is expected. + ... Previous IDs: DMI002.001 [Tags] minimal-regression Skip If not ${FIRMWARE_NUMBER_VERIFICATION} DMI002.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI002.201 not supported @@ -49,6 +51,7 @@ DMI002.201 Verify the firmware version DMI003.201 Verify the firmware product name [Documentation] Check whether the DUT product name is the same as it is ... expected. + ... Previous IDs: DMI003.001 [Tags] minimal-regression Skip If not ${PRODUCT_NAME_VERIFICATION} DMI003.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI003.201 not supported @@ -58,6 +61,7 @@ DMI003.201 Verify the firmware product name DMI004.201 Verify the firmware release date [Documentation] Check whether the firmware release date on the DUT is ... the same as it is expected. + ... Previous IDs: DMI004.001 Skip If not ${RELEASE_DATE_VERIFICATION} DMI004.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI004.201 not supported Get SMBIOS Values ${ENV_ID_UBUNTU} @@ -66,6 +70,7 @@ DMI004.201 Verify the firmware release date DMI005.201 Verify the firmware manufacturer [Documentation] Check whether the firmware manufacturer on the DUT is ... the same as it is expected. + ... Previous IDs: DMI005.001 Skip If not ${MANUFACTURER_VERIFICATION} DMI005.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI005.201 not supported Get SMBIOS Values ${ENV_ID_UBUNTU} @@ -75,6 +80,7 @@ DMI005.201 Verify the firmware manufacturer DMI006.201 Verify the firmware vendor [Documentation] Check whether the firmware vendor on the DUT is the same ... as it is expected. + ... Previous IDs: DMI006.001 Skip If not ${VENDOR_VERIFICATION} DMI006.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI006.201 not supported Get SMBIOS Values ${ENV_ID_UBUNTU} @@ -83,6 +89,7 @@ DMI006.201 Verify the firmware vendor DMI007.201 Verify the firmware family [Documentation] Check whether the firmware family on the DUT is the same ... as it is expected. + ... Previous IDs: DMI007.001 Skip If not ${FAMILY_VERIFICATION} DMI007.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI007.201 not supported Get SMBIOS Values ${ENV_ID_UBUNTU} @@ -91,6 +98,7 @@ DMI007.201 Verify the firmware family DMI008.201 Verify the firmware type [Documentation] Check whether the firmware type on the DUT is the same ... as it is expected. + ... Previous IDs: DMI008.001 Skip If not ${TYPE_VERIFICATION} DMI008.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} DMI008.201 not supported Get SMBIOS Values ${ENV_ID_UBUNTU} diff --git a/dasharo-compatibility/miniPCIe-slot-verification.robot b/dasharo-compatibility/miniPCIe-slot-verification.robot index c45f316c3a..e95caf62e4 100644 --- a/dasharo-compatibility/miniPCIe-slot-verification.robot +++ b/dasharo-compatibility/miniPCIe-slot-verification.robot @@ -28,6 +28,7 @@ Suite Teardown Run Keyword MWL001.201 Wireless card detection (Ubuntu) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. + ... Previous IDs: MWL001.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL001.201 not supported Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" MWL001.201 not supported Wireless Card Detection ${ENV_ID_UBUNTU} @@ -36,6 +37,7 @@ MWL002.201 Wi-Fi scanning (Ubuntu) [Documentation] Check whether the Wi-Fi functionality of card is ... initialized correctly and can be used from within the ... operating system.. + ... Previous IDs: MWL002.001 Skip If not ${MINI_PC_IE_SLOT_SUPPORT} MWL002.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL002.201 not supported Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" MWL002.201 not supported @@ -45,6 +47,7 @@ MWL003.201 Bluetooth scanning (Ubuntu) [Documentation] Check whether the Bluetooth functionality of card is ... initialized correctly and can be used from within the ... operating system. + ... Previous IDs: MWL003.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL003.201 not supported Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" MWL003.201 not supported Bluetooth Scanning ${ENV_ID_UBUNTU} @@ -52,6 +55,7 @@ MWL003.201 Bluetooth scanning (Ubuntu) MWL004.201 LTE card detection (Ubuntu) [Documentation] Check whether the LTE card is detected correctly in the ... operating system. + ... Previous IDs: MWL004.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MWL004.201 not supported Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" MWL004.201 not supported LTE Card Detection ${ENV_ID_UBUNTU} @@ -87,6 +91,7 @@ MWL004.202 LTE card detection (Fedora) MWL001.301 Wireless card detection (Windows) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. + ... Previous IDs: MWL001.002 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} WLE001.301 not supported Power On Login To Windows @@ -96,6 +101,7 @@ MWL001.301 Wireless card detection (Windows) MWL002.301 Wi-Fi scanning (Windows) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. + ... Previous IDs: MWL002.002 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} MLW002.301 not supported Power On Login To Windows diff --git a/dasharo-compatibility/nvme-support.robot b/dasharo-compatibility/nvme-support.robot index 50519e31be..7d95d7393a 100644 --- a/dasharo-compatibility/nvme-support.robot +++ b/dasharo-compatibility/nvme-support.robot @@ -37,6 +37,7 @@ NVM001.001 NVMe support in firmware NVM001.201 NVMe support in OS (Ubuntu) [Documentation] Check whether the Operating System can boot from NVMe ... disk in M.2 slot. + ... Previous IDs: NVM001.002 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NVM001.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} NVM001.201 not supported NVMe Support In OS ${ENV_ID_UBUNTU} @@ -50,6 +51,7 @@ NVM001.202 NVMe support in OS (Fedora) NVM001.301 NVMe support in OS (Windows) [Documentation] Check whether the Operating System can boot from NVMe ... disk in M.2 slot. + ... Previous IDs: NVM001.003 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} NVM001.301 not supported Power On Login To Windows diff --git a/dasharo-compatibility/sd-card-reader.robot b/dasharo-compatibility/sd-card-reader.robot index 85ae62fc69..2af7c8dbd4 100644 --- a/dasharo-compatibility/sd-card-reader.robot +++ b/dasharo-compatibility/sd-card-reader.robot @@ -28,6 +28,7 @@ Suite Teardown Run Keyword SDC001.201 SD Card reader detection (Ubuntu) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. + ... Previous IDs: SDC001.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SDC001.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SDC001.201 not supported Power On @@ -41,6 +42,7 @@ SDC001.201 SD Card reader detection (Ubuntu) SDC002.201 SD Card read/write (Ubuntu) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. + ... Previous IDs: SDC002.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SDC002.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SDC002.201 not supported Power On @@ -84,6 +86,7 @@ SDC002.202 SD Card read/write (Fedora) SDC001.301 SD Card reader detection (Windows) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. + ... Previous IDs: SDC001.002 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} SDC001.301 not supported Power On Login To Windows @@ -95,6 +98,7 @@ SDC001.301 SD Card reader detection (Windows) SDC002.301 SD Card read/write (Windows) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. + ... Previous IDs: SDC002.002 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} SDC002.301 not supported Power On SSHLibrary.Put File drive_letters.ps1 /C:/Users/user diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 8442cecc1f..54c5c2634a 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -49,6 +49,7 @@ USB002.001 USB keyboard detected in FW USB001.201 USB devices detected by OS (Ubuntu) [Documentation] Check whether the external USB devices are detected ... correctly in Ubuntu OS. + ... Previous IDs: USB001.002 Depends On ${USB_DISKS_DETECTION_SUPPORT} Depends On ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} @@ -57,6 +58,7 @@ USB001.201 USB devices detected by OS (Ubuntu) USB002.201 USB keyboard in OS (Ubuntu) [Documentation] Check whether the external USB keyboard is detected ... correctly by the Ubuntu OS. + ... Previous IDs: USB002.002 Depends On ${USB_KEYBOARD_DETECTION_SUPPORT} Depends On ${HAS_KEYBOARD} Depends On ${TESTS_IN_UBUNTU_SUPPORT} @@ -66,6 +68,7 @@ USB002.201 USB keyboard in OS (Ubuntu) USB003.201 Upload 1GB file on USB storage (Ubuntu) [Documentation] Check whether the 1GB file can be transferred from the ... operating system to the USB storage. + ... Previous IDs: USB003.002 Depends On ${UPLOAD_ON_USB_SUPPORT} Depends On ${HAS_USB_STORAGE} Depends On ${TESTS_IN_UBUNTU_SUPPORT} @@ -99,6 +102,7 @@ USB003.202 Upload 1GB file on USB storage (Fedora) USB001.301 USB devices detected by OS (Windows) [Documentation] Check whether the external USB devices are detected ... correctly in Windows OS. + ... Previous IDs: USB001.003 Depends On ${USB_DISKS_DETECTION_SUPPORT} Depends On ${TESTS_IN_WINDOWS_SUPPORT} Power On @@ -111,6 +115,7 @@ USB001.301 USB devices detected by OS (Windows) USB002.301 USB keyboard in OS (Windows) [Documentation] Check whether the external USB keyboard is detected ... correctly by the Windows OS. + ... Previous IDs: USB002.003 Depends On ${USB_KEYBOARD_DETECTION_SUPPORT} Depends On ${HAS_KEYBOARD} Depends On ${TESTS_IN_WINDOWS_SUPPORT} @@ -123,6 +128,7 @@ USB002.301 USB keyboard in OS (Windows) USB003.301 Upload 1GB file on USB storage (Windows) [Documentation] Check whether the 1GB file can be transferred from the ... operating system to the USB storage. + ... Previous IDs: USB003.003 Depends On ${UPLOAD_ON_USB_SUPPORT} Depends On ${HAS_USB_STORAGE} Depends On ${TESTS_IN_WINDOWS_SUPPORT} diff --git a/dasharo-compatibility/wifi-bluetooth-support.robot b/dasharo-compatibility/wifi-bluetooth-support.robot index 4edf0577c3..e13104095d 100644 --- a/dasharo-compatibility/wifi-bluetooth-support.robot +++ b/dasharo-compatibility/wifi-bluetooth-support.robot @@ -30,6 +30,7 @@ Suite Teardown Run Keyword WLE001.201 Wireless card detection (Ubuntu) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. + ... Previous IDs: WLE001.001 Skip If not ${WIRELESS_CARD_SUPPORT} WLE001.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} WLE001.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} WLE001.201 not supported @@ -39,6 +40,7 @@ WLE002.201 Wi-Fi scanning (Ubuntu) [Documentation] Check whether the Wi-Fi functionality of card is ... initialized correctly and can be used from within the ... operating system.. + ... Previous IDs: WLE002.001 [Tags] minimal-regression Skip If not ${WIRELESS_CARD_WIFI_SUPPORT} WLE002.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} WLE002.201 not supported @@ -49,6 +51,7 @@ WLE003.201 Bluetooth scanning (Ubuntu) [Documentation] Check whether the Bluetooth functionality of card is ... initialized correctly and can be used from within the ... operating system. + ... Previous IDs: WLE003.001 Skip If not ${WIRELESS_CARD_BLUETOOTH_SUPPORT} WLE003.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} WLE003.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} WLE003.201 not supported @@ -81,6 +84,7 @@ WLE003.202 Bluetooth scanning (Fedora) WLE001.301 Wireless card detection (Windows) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. + ... Previous IDs: WLE001.002 Skip If not ${WIRELESS_CARD_SUPPORT} WLE001.301 not supported Skip If not ${TESTS_IN_WINDOWS_SUPPORT} WLE001.301 not supported Log To Console Remember to test all variants of wireless cards. @@ -96,6 +100,7 @@ WLE001.301 Wireless card detection (Windows) WLE002.301 Wi-Fi scanning (Windows) [Documentation] Check whether the Wi-Fi/Bluetooth card is enumerated ... correctly and can be detected from the operating system. + ... Previous IDs: WLE002.002 Skip If not ${WIRELESS_CARD_WIFI_SUPPORT} WLE002.301 not supported Skip If not ${TESTS_IN_WINDOWS_SUPPORT} WLE002.301 not supported Log To Console Remember to test all variants of wireless cards. diff --git a/dasharo-performance/platform-stability.robot b/dasharo-performance/platform-stability.robot index ea5ab56096..5a4fc59d66 100644 --- a/dasharo-performance/platform-stability.robot +++ b/dasharo-performance/platform-stability.robot @@ -57,6 +57,7 @@ STB001.201 Verify if no reboot occurs in the OS (Ubuntu) ... Operating System does not reset. The test is performed in multiple ... iterations - after a defined time an attempt to read the output of ... specific commands confirming the stability of work is repeated. + ... Previous IDs: STB001.002 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} STB001.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} STB001.201 not supported Verify If No Reboot Occurs In Linux ${ENV_ID_UBUNTU} @@ -64,6 +65,7 @@ STB001.201 Verify if no reboot occurs in the OS (Ubuntu) STB002.201 Verify if no unexpected boot errors appear in Linux logs [Documentation] This test aims to verify that there are no unexpected ... error ,essages in Linux kernel logs. + ... Previous IDs: STB002.001 [Tags] minimal-regression Skip If not ${PLATFORM_STABILITY_CHECKING} STB002.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} STB002.201 not supported @@ -93,6 +95,7 @@ STB001.301 Verify if no reboot occurs in the OS (Windows) ... Operating System does not reset. The test is performed in multiple ... iterations - after a defined time an attempt to read the output of ... specific commands confirming the stability of work is repeated. + ... Previous IDs: STB001.003 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} STB001.301 not supported Power On Login To Windows diff --git a/dasharo-security/me-neuter.robot b/dasharo-security/me-neuter.robot index 27c7c25830..256bbe6f44 100644 --- a/dasharo-security/me-neuter.robot +++ b/dasharo-security/me-neuter.robot @@ -41,6 +41,7 @@ MNE001.001 Intel ME mode option is available and has the correct default state MNE002.201 Intel ME mode option Enabled works correctly (Ubuntu) [Documentation] Check whether the Intel ME mode option in state Enabled ... works correctly. + ... Previous IDs: MNE002.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE002.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} MNE002.201 not supported Intel ME Mode Option Enabled Works Correctly ${ENV_ID_UBUNTU} @@ -48,6 +49,7 @@ MNE002.201 Intel ME mode option Enabled works correctly (Ubuntu) MNE003.201 Intel ME mode option Disabled (Soft) works correctly (Ubuntu) [Documentation] Check whether the Intel ME mode option in state ... Disabled (Soft) works correctly + ... Previous IDs: MNE003.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE003.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} MNE003.201 not supported Intel ME Mode Option Disabled (Soft) Works Correctly ${ENV_ID_UBUNTU} @@ -55,6 +57,7 @@ MNE003.201 Intel ME mode option Disabled (Soft) works correctly (Ubuntu) MNE004.201 Intel ME mode option Disabled (HAP) works correctly (Ubuntu) [Documentation] Check whether the Intel ME mode option in state ... Disabled (HAP) works correctly. + ... Previous IDs: MNE004.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE004.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} MNE004.201 not supported Intel ME Mode Option Disabled (HAP) Works Correctly ${ENV_ID_UBUNTU} @@ -63,6 +66,7 @@ MNE006.201 Check Intel ME version (Ubuntu) [Documentation] This test aims to verify that the Intel ME version might ... be read on the Operating System level. The read version should be ... the same as in the release notes. + ... Previous IDs: MNE006.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} MNE006.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} MNE004.201 not supported Check Intel ME Version ${ENV_ID_UBUNTU} diff --git a/dasharo-security/measured-boot.robot b/dasharo-security/measured-boot.robot index 5fde4b4240..0f3332be58 100644 --- a/dasharo-security/measured-boot.robot +++ b/dasharo-security/measured-boot.robot @@ -30,6 +30,7 @@ ${PCRS_TO_CHECK}= [0-79]|14 MBO001.201 Measured Boot support (Ubuntu) [Documentation] Check whether Measured Boot is functional and ... measurements are stored into the TPM. + ... Previous IDs: MBO001.001 Power On Boot Linux And Login To Root ${ENV_ID_UBUNTU} Linux Measured Boot Support @@ -37,6 +38,7 @@ MBO001.201 Measured Boot support (Ubuntu) MBO002.201 Check if event log PCRs match actual values (Ubuntu) [Documentation] Check whether PCRs values calculated from event log match ... actual PCRs values + ... Previous IDs: MBO002.001 Power On Boot Linux And Login To Root ${ENV_ID_UBUNTU} Validate PCRs Against Event Log /sys/kernel/security/tpm0/binary_bios_measurements diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index 7fd42ba010..8cf00d5aed 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -68,6 +68,7 @@ TPM003.001 Check TPM Physical Presence Interface (firmware) TPM001.201 TPM Support (Ubuntu) [Documentation] Check whether the TPM is initialized correctly and the ... PCRs can be accessed from the Linux OS. + ... Previous IDs: TPM001.002 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM001.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} Prepare TPM Test On Linux ${ENV_ID_UBUNTU} @@ -76,6 +77,7 @@ TPM001.201 TPM Support (Ubuntu) TPM002.201 Verify TPM version (Ubuntu) [Documentation] This test aims to verify that the TPM version is ... correctly recognized by the operating system. + ... Previous IDs: TPM002.002 [Tags] minimal-regression Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM002.101 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} TPM002.201 not supported @@ -85,6 +87,7 @@ TPM002.201 Verify TPM version (Ubuntu) TPM003.201 Check TPM Physical Presence Interface (Ubuntu) [Documentation] This test aims to verify that the TPM Physical Presence ... Interface is correctly recognized by the operating system. + ... Previous IDs: TPM003.002 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} TPM003.201 not supported Prepare TPM Test On Linux ${ENV_ID_UBUNTU} @@ -115,6 +118,7 @@ TPM003.202 Check TPM Physical Presence Interface (Fedora) TPM001.301 TPM Support (Windows) [Documentation] Check whether the TPM is initialized correctly and the ... PCRs can be accessed from Windows. + ... Previous IDs: TPM001.003 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} TPM001.301 not supported Power On Login To Windows @@ -129,6 +133,7 @@ TPM001.301 TPM Support (Windows) TPM002.301 Verify TPM version (Windows) [Documentation] This test aims to verify that the TPM version is ... correctly recognized by the operating system. + ... Previous IDs: TPM002.003 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} TPM002.301 not supported Power On Login To Windows @@ -139,6 +144,7 @@ TPM002.301 Verify TPM version (Windows) TPM003.003 Check TPM Physical Presence Interface (Windows) [Documentation] This test aims to verify that the TPM Physical Presence ... Interface is correctly recognized by the operating system. + ... Previous IDs: TPM003.003 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} TPM003.301 not supported Power On Login To Windows From 499f0e567e1826fc823c56aa761fb44e6fea2886 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 31 Mar 2025 13:05:57 +0200 Subject: [PATCH 274/416] osfv: Add performance lib and configs Signed-off-by: Sebastian Czapla --- lib/performance.robot | 99 +++++++++++++++++++ platform-configs/include/default.robot | 3 + .../include/novacustom-common.robot | 2 + platform-configs/novacustom-v540tnd.robot | 2 +- 4 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 lib/performance.robot diff --git a/lib/performance.robot b/lib/performance.robot new file mode 100644 index 0000000000..bdcd8a1243 --- /dev/null +++ b/lib/performance.robot @@ -0,0 +1,99 @@ +*** Settings *** +Documentation A library file for common tasks related to performance testing + +Library Collections +Library OperatingSystem +Library Process +Library String +Library RequestsLibrary +Library SSHLibrary +Resource ../variables.robot +Resource ../keywords.robot +Resource ../keys.robot + + +*** Variables *** +${PTS_LATEST_URL}= +... https://github.com/phoronix-test-suite/phoronix-test-suite/archive/refs/tags/v10.8.4.zip +${PTS_DOWNLOAD_PATH}= C:\pts\pts.zip +${PTS_EXTRACT_PATH}= C:\pts-extracted\ +${PERF_RESULTS_PATH_UBUNTU}= /var/lib/phoronix-test-suite/test-results +${PERF_RESULTS_PATH_WINDOWS}= C:\testing\reports\ + + +*** Keywords *** +Detect Or Install Phoronix Test Suite On Ubuntu + [Documentation] Detects and installs PTS + Detect Or Install Package php-cli + Detect Or Install Package php-xml + # xvfb = x11 virtual frame buffer for GPU testing over SSH + IF ${GPU_PERFORMANCE_TESTS_SUPPORT} Detect Or Install Package xvfb + + ${out}= Execute Command In Terminal test -f /usr/bin/phoronix-test-suite && echo "PTS Installed" + IF '${out}' != 'PTS Installed' + Switch To Root User + Execute Command In Terminal wget ${PTS_LATEST_URL} 60 + Execute Command In Terminal unzip -q -o v10.8.4.zip 120 + ${out}= Execute Command In Terminal + ... cd phoronix-test-suite-10.8.4 && ./install-sh && cd .. 120 + Should Contain ${out} Phoronix Test Suite Installation Completed + Execute Command In Terminal + ... rm v10.8.4.zip && rm -r phoronix-test-suite-10.8.4 + Exit From Root User + END + +Setup Phoronix Batch Mode + [Documentation] Configure batch mode required for more automated tests + Write Into Terminal phoronix-test-suite batch-setup + Read From Terminal Until Save test results when in batch mode (Y/n): + Write Into Terminal y + Read From Terminal Until Open the web browser automatically when in batch mode (y/N): + Write Into Terminal n + Read From Terminal Until Auto upload the results to OpenBenchmarking.org (Y/n): + Write Into Terminal n + Read From Terminal Until Prompt for test identifier (Y/n): + Write Into Terminal n + Read From Terminal Until Prompt for test description (Y/n): + Write Into Terminal n + Read From Terminal Until Prompt for saved results file-name (Y/n): + Write Into Terminal n + Read From Terminal Until Run all test options (Y/n): + Write Into Terminal n + +# Detect Or Install Phoronix Test Suite On Windows +# [Documentation] Detects and installs PTS +# ${out}= Execute Command In Terminal Test-Path -Path C:\phoronix-test-suite +# IF '${out}' != 'True' +# Execute Command In Terminal +# ... Invoke-WebRequest -Uri ${PTS_LATEST_URL} -OutFile ${PTS_DOWNLOAD_PATH} 60 +# Execute Command In Terminal +# ... Expand-Archive -Path ${PTS_DOWNLOAD_PATH} -DestinationPath ${PTS_EXTRACT_PATH} -Force 60 +# Execute Command In Terminal +# ... Start-Process -FilePath ${PTS_EXTRACT_PATH}\install.bat -NoNewWindow -Wait 300 +# Execute Command In Terminal +# ... Remove-Item -Path ${PTS_DOWNLOAD_PATH} -Force +# Execute Command In Terminal +# ... Remove-Item -Path ${PTS_EXTRACT_PATH} -Force +# END + +# Run GPU Performance Benchmark On Windows +# [Documentation] Wrapper for PTS. Run suite, gather and process +# ... results. It assumes DUT is booted into Windows +# ${cmd}= Set Variable +# ... C:\phoronix-test\suite\phoronix-test-suite batch-benchmark +# ${cmd}= Catenate ${cmd} +# ... unigine-super AUTOMATIC=1 RESULT_NAME="gpu_test_unigine" UPLOAD_RESULTS=0 + +# Execute Command In Terminal ${cmd} 3600 + +Run GPU Performance Benchmark On Ubuntu + [Documentation] Wrapper for PTS. Run suite, gather and process + ... results. It assumes DUT is logged in into regular user + ... account on Ubuntu + ${cmd}= Set Variable phoronix-test-suite batch-run + ${cmd}= Catenate ${cmd} + ... unigine-super RESULT_NAME="gpu_test_unigine" UPLOAD_RESULTS=0 + + ${result}= Execute Command In Terminal ${cmd} timeout=1800 + Should Not Contain ${result} The batch mode must first be configured. + Should Not Contain ${result} The following PHP extensions are REQUIRED diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index d419171c85..b71e97565f 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -211,6 +211,9 @@ ${CUSTOM_FAN_CURVE_FILE}= ${TBD} ${ETH_PERF_PAIR_1_G}= ${FALSE} ${ETH_PERF_PAIR_2_G}= ${FALSE} ${ETH_PERF_PAIR_10_G}= ${FALSE} +${DISK_IO_PERFORMANCE_TESTS}= ${FALSE} +${CPU_PERFORMANCE_TESTS_SUPPORT}= ${FALSE} +${GPU_PERFORMANCE_TESTS_SUPPORT}= ${FALSE} ${MAX_ACCEPTABLE_AVERAGE_COLDBOOT_TIME_S}= 10 ${MAX_ACCEPTABLE_COLDBOOT_TIME_STD_DEV_S}= 10 ${MAX_ACCEPTABLE_COLDBOOT_TIME_S}= 20 diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index 6d1f46963e..d3bfc65d07 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -123,6 +123,8 @@ ${PLATFORM_STABILITY_CHECKING}= ${TRUE} ${CUSTOM_FAN_CURVE_SILENT_MODE_SUPPORT}= ${FALSE} ${CUSTOM_FAN_CURVE_PERFORMANCE_MODE_SUPPORT}= ${FALSE} ${TEMPERATURE_TEST_DURATION}= 3600 +${DISK_IO_PERFORMANCE_TESTS}= ${TRUE} +${CPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} # Test module: dasharo-stability ${M2_WIFI_SUPPORT}= ${TRUE} diff --git a/platform-configs/novacustom-v540tnd.robot b/platform-configs/novacustom-v540tnd.robot index b1deec34e7..a9fba21b10 100644 --- a/platform-configs/novacustom-v540tnd.robot +++ b/platform-configs/novacustom-v540tnd.robot @@ -41,7 +41,7 @@ ${TPM_EXPECTED_CHIP}= SLB9672 ${LAPTOP_PLATFORM}= ${TRUE} ${BATTERY_PRESENT}= ${TRUE} -${DISK_IO_PERFORMANCE_TESTS}= ${TRUE} +${GPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} # performance ${ZIP_MULTI_COMPRESSION}= 63476 # MIPS From 9d32cd483fa2e6c3a09f1e638d2351cab3726543 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Mon, 31 Mar 2025 18:42:58 +0200 Subject: [PATCH 275/416] dasharo-performance/disk-io.robot Signed-off-by: Wiktor Mowinski --- dasharo-performance/disk-io.robot | 334 ++++++++++++++++++++++++++++++ 1 file changed, 334 insertions(+) create mode 100644 dasharo-performance/disk-io.robot diff --git a/dasharo-performance/disk-io.robot b/dasharo-performance/disk-io.robot new file mode 100644 index 0000000000..4d9eb5aee0 --- /dev/null +++ b/dasharo-performance/disk-io.robot @@ -0,0 +1,334 @@ +*** Settings *** +Library Telnet timeout=20 seconds connection_timeout=120 seconds +Library SSHLibrary timeout=90 seconds +Resource ../lib/performance/common.robot + +Suite Setup Disk IO Suite Setup +Suite Teardown Log Out And Close Connection + + +*** Variables *** +${FIO_LATEST_RELEASE_URL}= https://api.github.com/repos/axboe/fio/releases/latest +${RESULTS_DIR_UBUNTU}= fio_results +${RESULTS_DIR_WINDOWS}= C:\fio-results + + +*** Test Cases *** +DIO001.001 Sequential Read Performance (Ubuntu) (AC) + [Documentation] Check various scenarios of single threaded read + ... performance, while connected to power supply unit. (Ubuntu) + Sleep 20s + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Power Cycle Into Ubuntu + Run FIO On Ubuntu sequential_with_queues + ... --rw=read --bs=1M --iodepth=32 --numjobs=1 --size=2G + Run FIO On Ubuntu sequential_without_queues + ... --rw=read --bs=1M --iodepth=1 --numjobs=1 --size=2G + ${seq_read_queued}= Parse FIO Result sequential_with_queues.json read + ${seq_read_nonque}= Parse FIO Result sequential_without_queues.json read + Should Be True ${seq_read_queued} >= ${UBU_SEQ_READ_QUEUED}*0.85 Sequential Read Queued is below expected + Should Be True ${seq_read_nonque} >= ${UBU_SEQ_READ_NONQUE}*0.85 Sequential Read Non-Queued is below expected + +DIO001.002 Sequential Read Performance (Ubuntu) (Battery) + [Documentation] Check various scenarios of single threaded read + ... performance, while powered by inbuilt battery. (Ubuntu) + Sleep 20s + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} Battery not present + Power Cycle Into Ubuntu + Switch To Root User + Run FIO On Ubuntu sequential_with_queues + ... --rw=read --bs=1M --iodepth=32 --numjobs=1 --size=4G + Run FIO On Ubuntu sequential_without_queues + ... --rw=read --bs=1M --iodepth=1 --numjobs=1 --size=4G + Run FIO On Ubuntu sequential_with_queues_mt + ... --rw=read --bs=1M --iodepth=32 --numjobs=${DEF_THREADS_TOTAL} --size=4G + ${seq_read_queued}= Parse FIO Result sequential_with_queues.json read + ${seq_read_nonque}= Parse FIO Result sequential_without_queues.json read + Should Be True ${seq_read_queued} >= ${UBU_SEQ_READ_QUEUED}*0.85 Sequential Read Queued is below expected + Should Be True ${seq_read_nonque} >= ${UBU_SEQ_READ_NONQUE}*0.85 Sequential Read Non-Queued is below expected + +DIO002.001 Sequential Write Performance (Ubuntu) (Battery) + [Documentation] Check various scenarios of single threaded write + ... performance, while powered by inbuilt battery. (Ubuntu) + Sleep 20s + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} Battery not present + Power Cycle Into Ubuntu + Switch To Root User + Run FIO On Ubuntu sequential_write_with_queues + ... --rw=write --bs=1M --iodepth=32 --numjobs=1 --size=4G + Run FIO On Ubuntu sequential_write_without_queues + ... --rw=write --bs=1M --iodepth=1 --numjobs=1 --size=4G + Run FIO On Ubuntu sequential_write_with_queues_mt + ... --rw=write --bs=1M --iodepth=32 --numjobs=${DEF_THREADS_TOTAL} --size=4G + ${seq_write_queued}= Parse FIO Result sequential_write_with_queues.json write + ${seq_write_nonque}= Parse FIO Result sequential_write_without_queues.json write + Should Be True ${seq_write_queued} >= ${UBU_SEQ_WRITE_QUEUED}*0.85 Sequential Write Queued is below expected + Should Be True + ... ${seq_write_nonque} >= ${UBU_SEQ_WRITE_NONQUE}*0.85 + ... Sequential Write Non-Queued is below expected + +DIO002.002 Sequential Write Performance (Ubuntu) (AC) + [Documentation] Check various scenarios of single-threaded write + ... performance while powered by AC adapter. (Ubuntu) + Sleep 20s + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Power Cycle Into Ubuntu + Switch To Root User + Run FIO On Ubuntu sequential_write_with_queues + ... --rw=write --bs=1M --iodepth=32 --numjobs=1 --size=4G + Run FIO On Ubuntu sequential_write_without_queues + ... --rw=write --bs=1M --iodepth=1 --numjobs=1 --size=4G + Run FIO On Ubuntu sequential_write_with_queues_mt + ... --rw=write --bs=1M --iodepth=32 --numjobs=${DEF_THREADS_TOTAL} --size=4G + ${seq_write_queued}= Parse FIO Result sequential_write_with_queues.json write + ${seq_write_nonque}= Parse FIO Result sequential_write_without_queues.json write + Should Be True ${seq_write_queued} >= ${UBU_SEQ_WRITE_QUEUED}*0.85 Sequential Write Queued is below expected + Should Be True + ... ${seq_write_nonque} >= ${UBU_SEQ_WRITE_NONQUE}*0.85 + ... Sequential Write Non-Queued is below expected + +DIO003.001 Random Read Performance (Ubuntu) (AC) + [Documentation] Check various scenarios of random read performance + ... while connected to power supply unit. (Ubuntu) + Sleep 20s + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Power Cycle Into Ubuntu + Switch To Root User + Run FIO On Ubuntu random_read_with_queues + ... --rw=randread --bs=1M --iodepth=32 --numjobs=1 --size=4G + Run FIO On Ubuntu random_read_without_queues + ... --rw=randread --bs=1M --iodepth=1 --numjobs=1 --size=4G + Run FIO On Ubuntu random_read_with_queues_mt + ... --rw=randread --bs=1M --iodepth=32 --numjobs=${DEF_THREADS_TOTAL} --size=4G + ${rand_read_queued}= Parse FIO Result random_read_with_queues.json read + ${rand_read_nonque}= Parse FIO Result random_read_without_queues.json read + Should Be True ${rand_read_queued} >= ${UBU_RAND_READ_QUEUED}*0.85 Random Read BW Queued is below expected + Should Be True + ... ${rand_read_nonque} >= ${UBU_RAND_READ_NONQUE}*0.85 + ... Random Read BW Non-Queued is below expected + +DIO003.002 Random Read Performance (Ubuntu) (Battery) + [Documentation] Check various scenarios of random read performance + ... while running on battery power. (Ubuntu) + Sleep 20s + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} Battery not present + Power Cycle Into Ubuntu + Switch To Root User + Run FIO On Ubuntu random_read_with_queues + ... --rw=randread --bs=1M --iodepth=32 --numjobs=1 --size=4G + Run FIO On Ubuntu random_read_without_queues + ... --rw=randread --bs=1M --iodepth=1 --numjobs=1 --size=4G + Run FIO On Ubuntu random_read_with_queues_mt + ... --rw=randread --bs=1M --iodepth=32 --numjobs=${DEF_THREADS_TOTAL} --size=4G + ${rand_read_queued}= Parse FIO Result random_read_with_queues.json read + ${rand_read_nonque}= Parse FIO Result random_read_without_queues.json read + Should Be True ${rand_read_queued} >= ${UBU_RAND_READ_QUEUED}*0.85 Random Read BW Queued is below expected + Should Be True + ... ${rand_read_nonque} >= ${UBU_RAND_READ_NONQUE}*0.85 + ... Random Read BW Non-Queued is below expected + +DIO004.001 Random Write Performance (Ubuntu) (AC) + [Documentation] Check various scenarios of random write performance + ... while connected to power supply unit. (Ubuntu) + Sleep 20s + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Power Cycle Into Ubuntu + Switch To Root User + Run FIO On Ubuntu random_write_with_queues + ... --rw=randwrite --bs=1M --iodepth=32 --numjobs=1 --size=4G + Run FIO On Ubuntu random_write_without_queues + ... --rw=randwrite --bs=1M --iodepth=1 --numjobs=1 --size=4G + Run FIO On Ubuntu random_write_with_queues_mt + ... --rw=randwrite --bs=1M --iodepth=32 --numjobs=${DEF_THREADS_TOTAL} --size=4G + ${rand_write_queued}= Parse FIO Result random_write_with_queues.json write + ${rand_write_nonque}= Parse FIO Result random_write_without_queues.json write + Should Be True ${rand_write_queued} >= ${UBU_RAND_WRITE_QUEUED}*0.85 Random Write BW Queued is below expected + Should Be True + ... ${rand_write_nonque} >= ${UBU_RAND_WRITE_NONQUE}*0.85 + ... Random Write BW Non-Queued is below expected + +DIO004.002 Sequential Write Performance (Ubuntu) (AC) + [Documentation] Check various scenarios of sequential write performance + ... while connected to power supply unit. (Ubuntu) + Sleep 20s + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} Battery not present + Power Cycle Into Ubuntu + Switch To Root User + Run FIO On Ubuntu random_write_with_queues + ... --rw=randwrite --bs=1M --iodepth=32 --numjobs=1 --size=4G + Run FIO On Ubuntu random_write_without_queues + ... --rw=randwrite --bs=1M --iodepth=1 --numjobs=1 --size=4G + Run FIO On Ubuntu random_write_with_queues_mt + ... --rw=randwrite --bs=1M --iodepth=32 --numjobs=${DEF_THREADS_TOTAL} --size=4G + ${rand_write_queued}= Parse FIO Result random_write_with_queues.json write + ${rand_write_nonque}= Parse FIO Result random_write_without_queues.json write + Should Be True ${rand_write_queued} >= ${UBU_RAND_WRITE_QUEUED}*0.85 Random Write BW Queued is below expected + Should Be True + ... ${rand_write_nonque} >= ${UBU_RAND_WRITE_NONQUE}*0.85 + ... Random Write BW Non-Queued is below expected + +DIO001.003 Sequential Read Performance (Windows) (AC) + [Documentation] Check various scenarios of single threaded read + ... performance, while connected to power supply unit. (Windows) + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Power Cycle Into Windows + Run FIO On Windows sequential_with_queues + ... --rw=read --bs=1M --iodepth=32 --numjobs=1 --size=4G + Run FIO On Windows sequential_without_queues + ... --rw=read --bs=1M --iodepth=1 --numjobs=1 --size=4G + Run FIO On Windows sequential_with_queues_mt + ... --rw=read --bs=1M --iodepth=32 --numjobs=${DEF_THREADS_TOTAL} --size=4G + +DIO001.004 Sequential Read Performance (Windows) (Battery) + [Documentation] Check various scenarios of single threaded read + ... performance, while powered by inbuilt battery. (Windows) + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} Battery not present + Power Cycle Into Windows + Run FIO On Windows sequential_with_queues + ... --rw=read --bs=1M --iodepth=32 --numjobs=1 --size=4G + Run FIO On Windows sequential_without_queues + ... --rw=read --bs=1M --iodepth=1 --numjobs=1 --size=4G + Run FIO On Windows sequential_with_queues_mt + ... --rw=read --bs=1M --iodepth=32 --numjobs=${DEF_THREADS_TOTAL} --size=4G + +DIO002.003 Sequential Write Performance (Windows) (AC) + [Documentation] Check various scenarios of multi threaded write + ... performance, while connected to power supply unit. (Windows) + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Power Cycle Into Windows + Run FIO On Windows sequential_write_with_queues + ... --rw=write --bs=1M --iodepth=32 --numjobs=1 --size=4G + Run FIO On Windows sequential_write_without_queues + ... --rw=write --bs=1M --iodepth=1 --numjobs=1 --size=4G + Run FIO On Windows sequential_write_with_queues_mt + ... --rw=write --bs=1M --iodepth=32 --numjobs=${DEF_THREADS_TOTAL} --size=4G + Power Cycle Into Ubuntu # as of march 4 2025, running tests on novacustom is rather + # primitive and default starting point is ubuntu + +DIO002.004 Sequential Write Performance (Windows) (Battery) + [Documentation] Check various scenarios of multi threaded write + ... performance, while powered by inbuilt battery. (Windows) + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} Battery not present + Power Cycle Into Windows + Run FIO On Windows sequential_write_with_queues + ... --rw=write --bs=1M --iodepth=32 --numjobs=1 --size=4G + Run FIO On Windows sequential_write_without_queues + ... --rw=write --bs=1M --iodepth=1 --numjobs=1 --size=4G + Run FIO On Windows sequential_write_with_queues_mt + ... --rw=write --bs=1M --iodepth=32 --numjobs=${DEF_THREADS_TOTAL} --size=4G + Power Cycle Into Ubuntu + +DIO003.003 Random Read Performance (Windows) (AC) + [Documentation] Check various scenarios of single threaded write + ... performance, while connected to power supply unit. (Windows) + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Power Cycle Into Windows + Run FIO On Windows random_read + ... --rw=randread --bs=4K --iodepth=32 --numjobs=1 --size=10G + Power Cycle Into Ubuntu + +DIO003.004 Random Read Performance (Windows) (Battery) + [Documentation] Check various scenarios of single threaded write + ... performance, while powered by inbuilt battery. (Windows) + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} Battery not present + Power Cycle Into Windows + Run FIO On Windows random_read + ... --rw=randread --bs=4K --iodepth=32 --numjobs=1 --size=10G + Power Cycle Into Ubuntu + +DIO004.003 Random Write Performance (Windows) (AC) + [Documentation] Check various scenarios of multi threaded write + ... performance, while connected to power supply unit. (Windows) + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Power Cycle Into Windows + Run FIO On Windows random_write + ... --rw=randwrite --bs=4K --iodepth=32 --numjobs=4 --size=10G + Power Cycle Into Ubuntu + +DIO004.004 Random Write Performance (Windows) (Battery) + [Documentation] Check various scenarios of multi threaded write + ... performance, while powered by inbuilt battery.(Windows) + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} Battery not present + Power Cycle Into Windows + Run FIO On Windows random_write + ... --rw=randwrite --bs=4K --iodepth=32 --numjobs=4 --size=10G + Power Cycle Into Ubuntu + + +*** Keywords *** +Disk IO Suite Setup + [Documentation] Load config and download tooling for both windows + ... ubuntu. + Prepare Test Suite + Skip If not ${DISK_IO_PERFORMANCE_TESTS} + ... Disk IO tests not enabled for this platform config + IF ${TESTS_IN_UBUNTU_SUPPORT} + Power Cycle Into Ubuntu + Switch To Root User + Detect Or Install Package fio + Exit From Root User + Execute Linux Command mkdir ~/${RESULTS_DIR_UBUNTU} + END + # IF ${TESTS_IN_WINDOWS_SUPPORT} + # Power Cycle Into Windows + # Log Hello + # END + +Run FIO On Ubuntu + [Documentation] Wrapper for /usr/bin/fio, with adjusted timeout. + [Arguments] ${fio_test_name} ${fio_args} + # Example arguments we want to pass + # --rw=randread --bs=4K --iodepth=32 --numjobs=4 --size=10G + Execute Linux Command mkdir ~/${RESULTS_DIR_UBUNTU} + Execute Linux Command touch ~/${RESULTS_DIR_UBUNTU}/${fio_test_name}.json + ${cmd}= Set Variable /usr/bin/fio + ${cmd}= Catenate ${cmd} --name=${fio_test_name} + ${cmd}= Catenate ${cmd} --ioengine=libaio --runtime=60s + ${cmd}= Catenate ${cmd} --direct=1 --group_reporting + ${cmd}= Catenate ${cmd} --output=${RESULTS_DIR_UBUNTU}/${fio_test_name}.json + ${cmd}= Catenate ${cmd} --output-format=json + ${cmd}= Catenate ${cmd} --unlink=1 + ${cmd}= Catenate ${cmd} --filename=testfile + + ${cmd}= Catenate ${cmd} ${fio_args} + ${result}= Execute Linux Command ${cmd} 300 + Sleep 10s + +Run FIO On Windows + [Documentation] Wrapper for fio.exe, with adjusted timeout. + [Arguments] ${fio_test_name} ${fio_args} + Execute Command In Terminal ${RESULTS_DIR_WINDOWS} + ${cmd}= Set Variable fio.exe --name=${fio_test_name} + ${cmd}= Set Variable ${cmd} --ioengine=windowsaio --runtime=60s + ${cmd}= Set Variable ${cmd} --direct=1 --group_reporting + ${cmd}= Set Variable ${cmd} --output=${RESULTS_DIR_WINDOWS}/${fio_test_name}.json --output-format=json + ${cmd}= Set Variable ${cmd} ${fio_args} + + ${result}= Execute Command In Terminal ${cmd} 300 + Log To Console ${result} + Sleep 10s + +Parse FIO Result + [Arguments] ${filename} ${operation} + ${json_data}= Execute Linux Command cat ${RESULTS_DIR_UBUNTU}/${filename} + ${parsed}= Evaluate json.loads("""${json_data}""") json + ${bw}= Set Variable + ... ${parsed}[jobs][0][${operation}][bw] + Sleep 10s + RETURN ${bw}/1024 From 94c36feebef60f1d0aca49b96742f4a71e6635f1 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Mon, 31 Mar 2025 20:52:48 +0200 Subject: [PATCH 276/416] platform-configs/novacustom-v560tu.robot:add config variables Signed-off-by: Wiktor Mowinski --- lib/performance/common.robot | 106 +++++++++++++++++++++++ platform-configs/novacustom-v560tu.robot | 2 + 2 files changed, 108 insertions(+) diff --git a/lib/performance/common.robot b/lib/performance/common.robot index 84b21c4452..7aed56b5d5 100644 --- a/lib/performance/common.robot +++ b/lib/performance/common.robot @@ -29,3 +29,109 @@ Power Cycle Into Ubuntu Power On Boot System Or From Connected Disk 201 Login To Linux + +Power Cycle Into Windows + Power On + Login To Windows + +Power Cycle Into Firmware Setup + Power On + Enter Setup Menu Tianocore + +Detect Or Install Phoronix Test Suite On Ubuntu + [Documentation] Detects and installs PTS + ${out}= Execute Command In Terminal test -f /usr/bin/phoronix-test-suite && echo "PTS Installed" + IF '${out}' != 'PTS Installed' + Switch To Root User + Detect Or Install Package php-cli + Execute Command In Terminal wget ${PTS_LATEST_URL} 60 + Execute Command In Terminal unzip -q -o v10.8.4.zip 120 + ${out}= Execute Command In Terminal + ... cd phoronix-test-suite-10.8.4 && ./install-sh && cd .. 60 + Should Contain ${out} Phoronix Test Suite Installation Completed + Execute Command In Terminal + ... cd .. && rm v10.8.4.zip && rm -r phoronix-test-suite-10.8.4 + Exit From Root User + END + +Detect Or Install Phoronix Test Suite On Windows + [Documentation] Detects and installs PTS + ${out}= Execute Command In Terminal Test-Path -Path C:\phoronix-test-suite + IF '${out}' != 'True' + Execute Command In Terminal + ... Invoke-WebRequest -Uri ${PTS_LATEST_URL} -OutFile ${PTS_DOWNLOAD_PATH} 60 + Execute Command In Terminal + ... Expand-Archive -Path ${PTS_DOWNLOAD_PATH} -DestinationPath ${PTS_EXTRACT_PATH} -Force 60 + Execute Command In Terminal + ... Start-Process -FilePath ${PTS_EXTRACT_PATH}\install.bat -NoNewWindow -Wait 300 + Execute Command In Terminal + ... Remove-Item -Path ${PTS_DOWNLOAD_PATH} -Force + Execute Command In Terminal + ... Remove-Item -Path ${PTS_EXTRACT_PATH} -Force + END + +Check Power Supply + ${laptop_platform}= Check The Platform Is A Laptop + Set Suite Variable ${LAPTOP_PLATFORM} ${laptop_platform} + IF ${LAPTOP_PLATFORM} + IF ${TESTS_IN_UBUNTU_SUPPORT} + ${bat0_present} ${ac_online} ${usb_pd_online}= Check Power Supply On Linux + ELSE IF ${TESTS_IN_WINDOWS_SUPPORT} + ${bat0_present} ${ac_online} ${usb_pd_online}= Check Power Supply On Windows + ELSE IF ${HEADS_PAYLOAD_SUPPORT} + Log Check Power Supply on Heads not implemented yet ERROR + ELSE + Fail Fail: Check Power Supply is not implemented enough + END + Set Suite Variable ${BATTERY_PRESENT} ${bat0_present} + Set Suite Variable ${AC_CONNECTED} ${ac_online} + Set Suite Variable ${USB-PD_CONNECTED} ${usb_pd_online} + END + +Check The Platform Is A Laptop + ${laptop_platform}= Run Keyword And Return Status Should Contain Any ${PLATFORM} novacustom tuxedo + RETURN ${laptop_platform} + +Check Power Supply On Linux + Power On + Boot System Or From Connected Disk ubuntu + Login To Linux + ${bat0_present_raw}= Execute Command In Terminal cat /sys/class/power_supply/BAT0/present + ${bat0_present}= Run Keyword And Return Status Should Be Equal ${bat0_present_raw} 1 + + ${ac_online_raw}= Execute Command In Terminal cat /sys/class/power_supply/AC/online + Should Not Contain ${ac_online_raw} No such file or directory + ${ac_online}= Run Keyword And Return Status Should Be Equal ${ac_online_raw} 1 + + # FIXME: USB-PD detection is not yet possible. + ${usb_pd_online_raw}= Execute Command In Terminal cat /sys/class/power_supply/USB-PD/online + Log 'cat /sys/class/power_supply/USB-PD/online' not implemented yet, if implemented, remove # WARN + # Should Not Contain ${usb_pd_online_raw} No such file or directory + ${usb_pd_online}= Run Keyword And Return Status Should Be Equal ${usb_pd_online_raw} 1 + + RETURN ${bat0_present} ${ac_online} ${usb_pd_online} + +Check Power Supply On Windows + Power On + Login To Windows + ${raw_output}= Execute Command In Terminal (Get-WmiObject Win32_Battery).BatteryStatus + ${bat0_present}= Run Keyword And Return Status Should Not Be Empty ${raw_output} + + # ${ac_online_raw}= Execute Command In Terminal (Get-WmiObject Win32_Battery).BatteryStatus + ${ac_online_empty}= Run Keyword And Return Status Should Be Empty ${raw_output} + ${ac_online_equal_2}= Run Keyword And Return Status Should Be Equal ${raw_output} 2 + # IF ${ac_online_raw_empty} or ${ac_online_raw_equal_2} + # Set Local Variable ${AC_ONLINE}= ${TRUE} + # END + ${ac_online}= Set Variable If + ... ${ac_online_empty} ${TRUE} + ... ${ac_online_equal_2} ${TRUE} + + # FIXME: USB-PD detection is not yet possible. + Log Check power supply USB-PD not implemented yet WARN + ${usb_pd_online}= Run Keyword And Return Status + ... Should Be Equal + ... ${raw_output} + ... insert the correct USB-PD detection method here + + RETURN ${bat0_present} ${ac_online} ${usb_pd_online} diff --git a/platform-configs/novacustom-v560tu.robot b/platform-configs/novacustom-v560tu.robot index 296f0146a7..1d430ed234 100644 --- a/platform-configs/novacustom-v560tu.robot +++ b/platform-configs/novacustom-v560tu.robot @@ -28,6 +28,8 @@ ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} ${USB_STACK_SUPPORT}= ${TRUE} ${CLEVO_BATTERY_CAPACITY}= 4602000 +${LAPTOP_PLATFORM}= ${TRUE} +${BATTERY_PRESENT}= ${TRUE} # performance reference for processor ultra 5 125h ${ZIP_MULTI_COMPRESSION}= 15923 # MIPS From 10fef8dea182997e97d4aa990c45adf9058a722a Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Thu, 3 Apr 2025 18:33:50 +0200 Subject: [PATCH 277/416] dasharo-performance/disk-io.robot: ordering fix Signed-off-by: Wiktor Mowinski --- dasharo-performance/disk-io.robot | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/dasharo-performance/disk-io.robot b/dasharo-performance/disk-io.robot index 4d9eb5aee0..b7a877902b 100644 --- a/dasharo-performance/disk-io.robot +++ b/dasharo-performance/disk-io.robot @@ -49,13 +49,11 @@ DIO001.002 Sequential Read Performance (Ubuntu) (Battery) Should Be True ${seq_read_queued} >= ${UBU_SEQ_READ_QUEUED}*0.85 Sequential Read Queued is below expected Should Be True ${seq_read_nonque} >= ${UBU_SEQ_READ_NONQUE}*0.85 Sequential Read Non-Queued is below expected -DIO002.001 Sequential Write Performance (Ubuntu) (Battery) - [Documentation] Check various scenarios of single threaded write - ... performance, while powered by inbuilt battery. (Ubuntu) +DIO002.001 Sequential Write Performance (Ubuntu) (AC) + [Documentation] Check various scenarios of single-threaded write + ... performance while powered by AC adapter. (Ubuntu) Sleep 20s Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If not ${BATTERY_PRESENT} Battery not present Power Cycle Into Ubuntu Switch To Root User Run FIO On Ubuntu sequential_write_with_queues @@ -71,11 +69,13 @@ DIO002.001 Sequential Write Performance (Ubuntu) (Battery) ... ${seq_write_nonque} >= ${UBU_SEQ_WRITE_NONQUE}*0.85 ... Sequential Write Non-Queued is below expected -DIO002.002 Sequential Write Performance (Ubuntu) (AC) - [Documentation] Check various scenarios of single-threaded write - ... performance while powered by AC adapter. (Ubuntu) +DIO002.002 Sequential Write Performance (Ubuntu) (Battery) + [Documentation] Check various scenarios of single threaded write + ... performance, while powered by inbuilt battery. (Ubuntu) Sleep 20s Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} Battery not present Power Cycle Into Ubuntu Switch To Root User Run FIO On Ubuntu sequential_write_with_queues @@ -153,7 +153,7 @@ DIO004.001 Random Write Performance (Ubuntu) (AC) ... ${rand_write_nonque} >= ${UBU_RAND_WRITE_NONQUE}*0.85 ... Random Write BW Non-Queued is below expected -DIO004.002 Sequential Write Performance (Ubuntu) (AC) +DIO004.002 Sequential Write Performance (Ubuntu) (Battery) [Documentation] Check various scenarios of sequential write performance ... while connected to power supply unit. (Ubuntu) Sleep 20s From ccde3a5f8f1a3b849d6d97d5249c1deb31c76224 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Thu, 3 Apr 2025 19:02:56 +0200 Subject: [PATCH 278/416] platform-configs/novacustom-v560tu.robot:fix temp data Signed-off-by: Wiktor Mowinski --- platform-configs/novacustom-v560tu.robot | 2 -- 1 file changed, 2 deletions(-) diff --git a/platform-configs/novacustom-v560tu.robot b/platform-configs/novacustom-v560tu.robot index 1d430ed234..296f0146a7 100644 --- a/platform-configs/novacustom-v560tu.robot +++ b/platform-configs/novacustom-v560tu.robot @@ -28,8 +28,6 @@ ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} ${USB_STACK_SUPPORT}= ${TRUE} ${CLEVO_BATTERY_CAPACITY}= 4602000 -${LAPTOP_PLATFORM}= ${TRUE} -${BATTERY_PRESENT}= ${TRUE} # performance reference for processor ultra 5 125h ${ZIP_MULTI_COMPRESSION}= 15923 # MIPS From 0e462fdffc0bb679b9ab60a8971d8975c5a43184 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Fri, 4 Apr 2025 16:52:44 +0200 Subject: [PATCH 279/416] dasharo-performance/disk-io.robot:title fix Signed-off-by: Wiktor Mowinski --- dasharo-performance/disk-io.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dasharo-performance/disk-io.robot b/dasharo-performance/disk-io.robot index b7a877902b..a48dd9f0b7 100644 --- a/dasharo-performance/disk-io.robot +++ b/dasharo-performance/disk-io.robot @@ -153,7 +153,7 @@ DIO004.001 Random Write Performance (Ubuntu) (AC) ... ${rand_write_nonque} >= ${UBU_RAND_WRITE_NONQUE}*0.85 ... Random Write BW Non-Queued is below expected -DIO004.002 Sequential Write Performance (Ubuntu) (Battery) +DIO004.002 Random Write Performance (Ubuntu) (Battery) [Documentation] Check various scenarios of sequential write performance ... while connected to power supply unit. (Ubuntu) Sleep 20s From aa97887c1f9d0cd79975322ec448704db7fe1f38 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Fri, 28 Mar 2025 12:58:07 +0100 Subject: [PATCH 280/416] osfv: Extend fan state tests Signed-off-by: Sebastian Czapla --- .../cpu-fan-speed-measure.robot | 93 +++++++++++++++++-- platform-configs/include/default.robot | 1 + .../include/novacustom-common.robot | 2 +- 3 files changed, 86 insertions(+), 10 deletions(-) diff --git a/dasharo-compatibility/cpu-fan-speed-measure.robot b/dasharo-compatibility/cpu-fan-speed-measure.robot index 79b2480c0e..2d1093a9ec 100644 --- a/dasharo-compatibility/cpu-fan-speed-measure.robot +++ b/dasharo-compatibility/cpu-fan-speed-measure.robot @@ -16,22 +16,97 @@ Resource ../keys.robot # - document which setup/teardown keywords to use and what are they doing # - go threough them and make sure they are doing what the name suggest (not # exactly the case right now) -Suite Setup Run Keyword -... Prepare Test Suite -Suite Teardown Run Keyword -... Log Out And Close Connection +Suite Setup Prepare CPU Fan Speed Measure Suite +Suite Teardown Log Out And Close Connection *** Test Cases *** -FAN001.001 CPU fan speed measure +FAN001.201 CPU fan speed measure [Documentation] Check whether there's a possibility to measure CPU fan ... current speed. - Skip If not ${FAN_SPEED_MEASURE_SUPPORT} FAN001.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} FAN001.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} FAN001.201 not supported + Skip If not ${FAN_SPEED_MEASURE_SUPPORT} FAN001.201 not supported + Power On + Login To Linux + ${output}= Execute Linux Command + ... sensors | grep "CPU 0:" | awk 'NR==1 {print $3}' + Should Not Be Empty ${output} + Should Not Be Equal ${output} 0 + +FAN002.201 All available fans are running + [Documentation] Check if all available fans are running + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} FAN002.201 not supported + Skip If not ${FAN_SPEED_MEASURE_SUPPORT} FAN002.201 not supported Power On Login To Linux Switch To Root User - Prepare Sensors - ${output}= Get Fan RPM + Stress Test + Exit From Root User + ${output}= Execute Linux Command + ... sensors | grep -E 'GPU|CPU' | grep -E 'RPM$' | awk '{print $3}' + Should Not Be Empty ${output} + @{rpm_values}= Split To Lines ${output} + FOR ${element} IN @{rpm_values} + Should Not Be Equal ${output} 0 + END + +FAN003.201 Fans are turning off during suspend mode with ME Enabled + [Documentation] Check for correct behavior + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} FAN003.201 not supported + Skip If not ${FAN_SPEED_MEASURE_SUPPORT} FAN003.201 not supported + Power On + Set UEFI Option MeMode Enabled + Login To Linux + Switch To Root User + Log To Console \nFan test started, please check fan state manually + Execute Command In Terminal fwts s3 -f -r /tmp/suspend_test_log.log 90 + Log To Console \nFan state test ended, please note the result + +FAN004.201 Fans are turning off during suspend mode with ME Soft disabled + [Documentation] Check for correct behavior + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} FAN004.201 not supported + Skip If not ${FAN_SPEED_MEASURE_SUPPORT} FAN004.201 not supported + Power On + Set UEFI Option MeMode Disabled (Soft) + Login To Linux + Switch To Root User + Log To Console \nFan test started, please check fan state manually + Execute Command In Terminal fwts s3 -f -r /tmp/suspend_test_log.log 90 + Log To Console \nFan state test ended, please note the result + +FAN005.201 Fans are turning off during suspend mode with ME HAP disabled + [Documentation] Check for correct behavior + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} FAN005.201 not supported + Skip If not ${FAN_SPEED_MEASURE_SUPPORT} FAN005.201 not supported + Power On + Set UEFI Option MeMode Disabled (HAP) + Login To Linux + Switch To Root User + Log To Console \nFan test started, please check fan state manually + Execute Command In Terminal fwts s3 -f -r /tmp/suspend_test_log.log 90 + Log To Console \nFan state test ended, please note the result + +FAN006.201 GPU fan speed measure + [Documentation] The fan has been configured to follow a custom curve. + ... This test aims to verify that the fan curve is configured correctly + ... and the fan spins up and down according to the defined values. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} FAN006.201 not supported + Skip If not ${FAN_SPEED_MEASURE_SUPPORT} FAN006.201 not supported + Skip If not ${NVIDIA_GRAPHICS_CARD_SUPPORT} FAN006.201 not supported + Power On + Login To Linux + ${output}= Execute Linux Command + ... sensors | grep "GPU 0:" | awk 'NR==1 {print $3}' Should Not Be Empty ${output} Should Not Be Equal ${output} 0 + + +*** Keywords *** +Prepare CPU Fan Speed Measure Suite + [Documentation] Prepare packages for testing CPU fans + Prepare Test Suite + Power On + Login To Linux + Switch To Root User + Detect Or Install FWTS + Prepare Sensors diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index b71e97565f..40d90763e4 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -176,6 +176,7 @@ ${WATCHDOG_SUPPORT}= ${FALSE} ${DCU_UUID_SUPPORT}= ${FALSE} ${DCU_SERIAL_SUPPORT}= ${FALSE} ${ROMHOLE_SUPPORT}= ${FALSE} +${FAN_RPM_MEASUREMENT_METHOD}= None # Test module: dasharo-security ${TPM_SUPPORTED_VERSION}= ${NONE} diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index d3bfc65d07..c9f270a009 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -87,7 +87,7 @@ ${DOCKING_STATION_NET_INTERFACE}= ${TRUE} ${DOCKING_STATION_HDMI}= ${TRUE} ${DOCKING_STATION_DISPLAY_PORT}= ${TRUE} ${UPLOAD_ON_USB_SUPPORT}= ${TRUE} -${FAN_SPEED_MEASURE_SUPPORT}= ${FALSE} +${FAN_SPEED_MEASURE_SUPPORT}= ${TRUE} ${DOCKING_STATION_SD_CARD_READER_SUPPORT}= ${TRUE} ${BOOT_BLOCKING_SUPPORT}= ${TRUE} ${HIBERNATION_AND_RESUME_SUPPORT}= ${TRUE} From fff54daf6f743c48b6beb34937220562978cada9 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Fri, 4 Apr 2025 17:01:55 +0200 Subject: [PATCH 281/416] platform-configs/include/default.robot: Remove unused variable. Signed-off-by: Sebastian Czapla --- platform-configs/include/default.robot | 1 - 1 file changed, 1 deletion(-) diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 40d90763e4..b71e97565f 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -176,7 +176,6 @@ ${WATCHDOG_SUPPORT}= ${FALSE} ${DCU_UUID_SUPPORT}= ${FALSE} ${DCU_SERIAL_SUPPORT}= ${FALSE} ${ROMHOLE_SUPPORT}= ${FALSE} -${FAN_RPM_MEASUREMENT_METHOD}= None # Test module: dasharo-security ${TPM_SUPPORTED_VERSION}= ${NONE} From b48b20eed40f23c76460170c3bf3658aa9aa3a11 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Fri, 4 Apr 2025 18:00:25 +0200 Subject: [PATCH 282/416] osfv: Change invalid ENV_IDs (#760) Signed-off-by: Sebastian Czapla --- os-config/environment-test-ids.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/os-config/environment-test-ids.py b/os-config/environment-test-ids.py index 9e71a834eb..a41ec5d101 100644 --- a/os-config/environment-test-ids.py +++ b/os-config/environment-test-ids.py @@ -15,11 +15,11 @@ ENV_ID_TRENCHBOOT = "204" # 3xx - Windows -ENV_ID_WINDOWS_11 = "301" +ENV_ID_WINDOWS = "301" ENV_ID_OS_BOOTMENU_NAMES = { ENV_ID_UBUNTU: "ubuntu", ENV_ID_FEDORA: "fedora", - ENV_ID_WINDOWS_11: "Windows Boot", + ENV_ID_WINDOWS: "Windows Boot", ENV_ID_TRENCHBOOT: "trenchboot", } From 57bc5c7314a04cbd735d2db4b6596039df32ea9d Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Tue, 4 Mar 2025 11:55:04 +0100 Subject: [PATCH 283/416] dasharo-performance: Add fast boot testing Signed-off-by: Sebastian Czapla --- dasharo-performance/boot-time-measure.robot | 12 +- dasharo-performance/fast-boot.robot | 133 ++++++++++++++++++ platform-configs/include/default.robot | 1 + .../include/novacustom-common.robot | 1 + 4 files changed, 141 insertions(+), 6 deletions(-) create mode 100644 dasharo-performance/fast-boot.robot diff --git a/dasharo-performance/boot-time-measure.robot b/dasharo-performance/boot-time-measure.robot index 13185cf3ad..b668a34c85 100644 --- a/dasharo-performance/boot-time-measure.robot +++ b/dasharo-performance/boot-time-measure.robot @@ -30,11 +30,11 @@ ${ITERATIONS}= 5 *** Test Cases *** -CBMEM001.001 Serial boot time measure: coreboot booting time after coldboot +CBMEM001.201 Serial boot time measure: coreboot booting time after coldboot [Documentation] Check whether the DUT boots after coldboot and how ... long it takes for coreboot to boot after coldboot if ... CPU is serial initialized. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CBMEM001.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CBMEM001.201 not supported Skip If '${POWER_CTRL}' == 'none' Coldboot automatic tests not supported ${min} ${max} ${average} ${stddev}= @@ -49,11 +49,11 @@ CBMEM001.001 Serial boot time measure: coreboot booting time after coldboot Should Be True ${max} < ${MAX_ACCEPTABLE_COLDBOOT_TIME_S} Should Be True ${stddev} < ${MAX_ACCEPTABLE_COLDBOOT_TIME_STD_DEV_S} -CBMEM002.001 Serial boot time measure: coreboot booting time after warmboot +CBMEM002.201 Serial boot time measure: coreboot booting time after warmboot [Documentation] Check whether the DUT boots after warmboot and how ... long it takes for coreboot to boot after warmboot if ... CPU is serial initialized. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CBMEM002.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CBMEM002.201 not supported ${min} ${max} ${average} ${stddev}= ... Measure Warmboot Time ${ITERATIONS} @@ -67,11 +67,11 @@ CBMEM002.001 Serial boot time measure: coreboot booting time after warmboot Should Be True ${max} < ${MAX_ACCEPTABLE_WARMBOOT_TIME_S} Should Be True ${stddev} < ${MAX_ACCEPTABLE_WARMBOOT_TIME_STD_DEV_S} -CBMEM003.001 Serial boot time measure: coreboot booting time after system reboot +CBMEM003.201 Serial boot time measure: coreboot booting time after system reboot [Documentation] Check whether the DUT boots after system reboot and how ... long it takes for coreboot to boot after system reboot ... if CPU is serial initialized. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CBMEM003.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CBMEM003.201 not supported ${min} ${max} ${average} ${stddev}= ... Measure Reboot Time ${ITERATIONS} diff --git a/dasharo-performance/fast-boot.robot b/dasharo-performance/fast-boot.robot new file mode 100644 index 0000000000..a83720dcbd --- /dev/null +++ b/dasharo-performance/fast-boot.robot @@ -0,0 +1,133 @@ +*** Settings *** +Library Collections +Library OperatingSystem +Library Process +Library String +Library Telnet timeout=20 seconds connection_timeout=120 seconds +Library SSHLibrary timeout=90 seconds +Library RequestsLibrary +# TODO: maybe have a single file to include if we need to include the same +# stuff in all test cases +Resource ../variables.robot +Resource ../keywords.robot +Resource ../keys.robot + +# TODO: +# - document which setup/teardown keywords to use and what are they doing +# - go threough them and make sure they are doing what the name suggest (not +# exactly the case right now) +Suite Setup Run Keywords +... Prepare Test Suite +... AND +... Skip If not ${FAST_AND_QUIET_BOOT_SUPPORT} Boot performance measurement tests not supported +Suite Teardown Run Keyword +... Log Out And Close Connection + + +*** Variables *** +${ITERATIONS}= 5 + + +*** Test Cases *** +FBT001.201 Fast Boot Reduces Boot Time + [Documentation] Check whether the DUT boot time is reduced with + ... fast boot enabled. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} PLB001.201 not supported + Log To Console \nMeasuring boot time with Fast Boot\n + Login To Linux + Switch To Root User + Set Fast Boot State on + ${fast_min} ${fast_max} ${fast_avg} ${fast_stddev}= + ... Measure FW Boot Time On Linux ${ITERATIONS} + + Log To Console \nMeasuring boot time without Fast Boot\n + Login To Linux + Switch To Root User + Set Fast Boot State off + ${slow_min} ${slow_max} ${slow_avg} ${slow_stddev}= + ... Measure FW Boot Time On Linux ${ITERATIONS} + + ${average_gain}= + ... Evaluate ${slow_avg} - ${fast_avg} + ${min_gain}= + ... Evaluate ${slow_min} - ${fast_min} + ${max_gain}= + ... Evaluate ${slow_max} - ${fast_max} + + Log To Console \nAverage (No Fast Boot): ${slow_avg} s + Log To Console \nAverage (With Fast Boot): ${fast_avg} s + Log To Console \nFastboot average time gain: ${average_gain} s + Log To Console \nFastboot longest time gain: ${max_gain} s + Log To Console \nFastboot shortest time gain: ${min_gain} s + ${relative_boot_time}= Evaluate (${fast_avg} / ${slow_avg}) * 100 + Log To Console + ... \nFastboot took ${relative_boot_time}% of regular boot on average + + IF ${relative_boot_time} > 70.0 Fail + + +*** Keywords *** +Set Fast Boot State + [Documentation] Set fast boot to on/off via Linux Shell + [Tags] robot:private + [Arguments] ${state} + + ${var_file_name}= Execute Linux Command + ... ls /sys/firmware/efi/efivars -l | grep "FastBoot" | awk '{print $NF}' + Should Not Be Empty ${var_file_name} + ${var_file_path}= Catenate SEPARATOR= /sys/firmware/efi/efivars/ ${var_file_name} + Execute Linux Command chattr -i ${var_file_path} + + ${new_var_path}= Set Variable /tmp/${var_file_name} + + Execute Linux Command touch ${new_var_path} + IF '${state}' == 'on' + Execute Linux Command printf '\\x07\\x00\\x00\\x00\\x01' \> ${new_var_path} + ELSE IF '${state}' == 'off' + Execute Linux Command printf '\\x07\\x00\\x00\\x00\\x00' \> ${new_var_path} + END + + ${out}= Execute Linux Command + ... dd if=${new_var_path} of=${var_file_path} bs=5 + + Should Not Contain ${out} Operation Not Permitted + Execute Linux Command rm ${new_var_path} + +Measure FW Boot Time On Linux + [Documentation] Performs a measurement of firmware boot time + ... over number of iterations provided as argument. + [Tags] robot:private + [Arguments] ${iterations} + ${durations}= Create List + Log To Console \n + + FOR ${index} IN RANGE 0 ${iterations} + Power Cycle On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + ${boot_time}= Get FW Boot Time From Systemd-analyze + Log To Console (${index}) Boot time: ${boot_time} s + Append To List ${durations} ${boot_time} + END + + ${min} ${max} ${average} ${stddev}= + ... Calculate Boot Time Statistics ${durations} + RETURN ${min} ${max} ${average} ${stddev} + +Get FW Boot Time From Systemd-analyze + [Documentation] Use systemd-analyze to get firmware boot time + [Tags] robot:private + FOR ${index} IN RANGE 0 10 + ${boot_time}= Execute Linux Command + ... systemd-analyze | awk 'NR==1 {print $4}' | sed 's/s//g' + + # ssh opens before GDM might finish loading desktop + ${status}= Run Keyword And Ignore Error + ... Should Not Contain ${boot_time} not yet finished + + IF '${status}[0]' != 'FAIL' RETURN ${boot_time} + + Sleep 5s + END + Fail Could not acquire boot time diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index b71e97565f..9444463993 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -223,6 +223,7 @@ ${MAX_ACCEPTABLE_WARMBOOT_TIME_S}= 20 ${MAX_ACCEPTABLE_AVERAGE_REBOOT_TIME_S}= 10 ${MAX_ACCEPTABLE_REBOOT_TIME_STD_DEV_S}= 10 ${MAX_ACCEPTABLE_REBOOT_TIME_S}= 20 +${FAST_AND_QUIET_BOOT_SUPPORT}= ${FALSE} # Test module: dasharo-stab ${M2_WIFI_SUPPORT}= ${FALSE} diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index c9f270a009..ff70cc677d 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -125,6 +125,7 @@ ${CUSTOM_FAN_CURVE_PERFORMANCE_MODE_SUPPORT}= ${FALSE} ${TEMPERATURE_TEST_DURATION}= 3600 ${DISK_IO_PERFORMANCE_TESTS}= ${TRUE} ${CPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} +${FAST_AND_QUIET_BOOT_SUPPORT}= ${TRUE} # Test module: dasharo-stability ${M2_WIFI_SUPPORT}= ${TRUE} From 43aa5e5dadf4edf037760282fdca8c80df934f09 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Wed, 2 Apr 2025 11:50:53 +0200 Subject: [PATCH 284/416] dasharo-performance/fast-boot.robot: Ensure boot priority Add initialization keyword, in which we setup Ubuntu as first in list, so that with Fast Boot enabled we always boot the correct system. Signed-off-by: Sebastian Czapla --- dasharo-performance/fast-boot.robot | 40 +++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/dasharo-performance/fast-boot.robot b/dasharo-performance/fast-boot.robot index a83720dcbd..afd6aceb05 100644 --- a/dasharo-performance/fast-boot.robot +++ b/dasharo-performance/fast-boot.robot @@ -12,16 +12,8 @@ Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -# TODO: -# - document which setup/teardown keywords to use and what are they doing -# - go threough them and make sure they are doing what the name suggest (not -# exactly the case right now) -Suite Setup Run Keywords -... Prepare Test Suite -... AND -... Skip If not ${FAST_AND_QUIET_BOOT_SUPPORT} Boot performance measurement tests not supported -Suite Teardown Run Keyword -... Log Out And Close Connection +Suite Setup Initialize Fast Boot Suite +Suite Teardown Log Out And Close Connection *** Variables *** @@ -103,7 +95,6 @@ Measure FW Boot Time On Linux FOR ${index} IN RANGE 0 ${iterations} Power Cycle On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User ${boot_time}= Get FW Boot Time From Systemd-analyze @@ -131,3 +122,30 @@ Get FW Boot Time From Systemd-analyze Sleep 5s END Fail Could not acquire boot time + +Initialize Fast Boot Suite + [Documentation] Use efibootmgr to list entries, and set new order, + ... with Ubuntu at the top of the list. + [Tags] robot:private + Prepare Test Suite + Skip If not ${FAST_AND_QUIET_BOOT_SUPPORT} Boot performance measurement tests not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Boot performance measurement tests not supported + + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + + ${ubuntu_boot_id}= Execute Linux Command + ... efibootmgr | grep -i "ubuntu" | awk '{print $1}' | sed 's/Boot//g' | sed 's/*//g' + Should Not Be Empty ${ubuntu_boot_id} + + ${boot_order_no_ubuntu}= Execute Linux Command + ... efibootmgr | grep "BootOrder" | awk '{print $2}' | sed -e 's/${ubuntu_boot_id},//g' + Should Not Be Empty ${boot_order_no_ubuntu} + + ${set_order_cmd}= Set Variable efibootmgr -o + ${set_order_cmd}= Catenate ${set_order_cmd} + ... ${ubuntu_boot_id},${boot_order_no_ubuntu} + + ${out}= Execute Linux Command ${set_order_cmd} + Should Contain ${out} BootCurrent: ${ubuntu_boot_id} From 63b48b0b7bbabb1a833adb2b5e64cf62cb12c645 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Wed, 2 Apr 2025 15:42:22 +0200 Subject: [PATCH 285/416] dasharo-performance/fast-boot.robot: Fix boot order enforcing Signed-off-by: Sebastian Czapla --- dasharo-performance/fast-boot.robot | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/dasharo-performance/fast-boot.robot b/dasharo-performance/fast-boot.robot index afd6aceb05..90861cb9b9 100644 --- a/dasharo-performance/fast-boot.robot +++ b/dasharo-performance/fast-boot.robot @@ -136,16 +136,21 @@ Initialize Fast Boot Suite Switch To Root User ${ubuntu_boot_id}= Execute Linux Command - ... efibootmgr | grep -i "ubuntu" | awk '{print $1}' | sed 's/Boot//g' | sed 's/*//g' + ... efibootmgr | grep -i "ubuntu" | awk 'NR==1 {print $1}' | sed 's/Boot//g' | sed 's/*//g' Should Not Be Empty ${ubuntu_boot_id} - ${boot_order_no_ubuntu}= Execute Linux Command - ... efibootmgr | grep "BootOrder" | awk '{print $2}' | sed -e 's/${ubuntu_boot_id},//g' - Should Not Be Empty ${boot_order_no_ubuntu} + ${check_if_first_out}= Execute Linux Command + ... efibootmgr | grep "BootOrder: ${ubuntu_boot_id}" > /dev/null 2>&1 && echo "Correct Order" - ${set_order_cmd}= Set Variable efibootmgr -o - ${set_order_cmd}= Catenate ${set_order_cmd} - ... ${ubuntu_boot_id},${boot_order_no_ubuntu} + IF '${check_if_first_out}' != 'Correct Order' + ${boot_order_no_ubuntu}= Execute Linux Command + ... efibootmgr | grep "BootOrder" | awk '{print $2}' | sed -e 's/,${ubuntu_boot_id}//g' + Should Not Be Empty ${boot_order_no_ubuntu} - ${out}= Execute Linux Command ${set_order_cmd} - Should Contain ${out} BootCurrent: ${ubuntu_boot_id} + ${set_order_cmd}= Set Variable efibootmgr -o + ${set_order_cmd}= Catenate ${set_order_cmd} + ... ${ubuntu_boot_id},${boot_order_no_ubuntu} + + ${out}= Execute Linux Command ${set_order_cmd} + Should Contain ${out} BootOrder: ${ubuntu_boot_id} + END From bce1a4ab0226a8be8d35842258e5631d04de2d78 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 7 Apr 2025 12:11:01 +0200 Subject: [PATCH 286/416] dasharo-performance/fast-boot.robot: Simplify skip condition Signed-off-by: Sebastian Czapla --- dasharo-performance/fast-boot.robot | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dasharo-performance/fast-boot.robot b/dasharo-performance/fast-boot.robot index 90861cb9b9..9cf0429c3d 100644 --- a/dasharo-performance/fast-boot.robot +++ b/dasharo-performance/fast-boot.robot @@ -139,10 +139,10 @@ Initialize Fast Boot Suite ... efibootmgr | grep -i "ubuntu" | awk 'NR==1 {print $1}' | sed 's/Boot//g' | sed 's/*//g' Should Not Be Empty ${ubuntu_boot_id} - ${check_if_first_out}= Execute Linux Command - ... efibootmgr | grep "BootOrder: ${ubuntu_boot_id}" > /dev/null 2>&1 && echo "Correct Order" + ${order_check}= Execute Linux Command + ... efibootmgr | grep "BootOrder: ${ubuntu_boot_id}" - IF '${check_if_first_out}' != 'Correct Order' + IF '${order_check}' == '${EMPTY}' ${boot_order_no_ubuntu}= Execute Linux Command ... efibootmgr | grep "BootOrder" | awk '{print $2}' | sed -e 's/,${ubuntu_boot_id}//g' Should Not Be Empty ${boot_order_no_ubuntu} From e68f2f700f97125cf79e3fb494020c1d79bac1ff Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 7 Apr 2025 13:12:53 +0200 Subject: [PATCH 287/416] dasharo-compatibility/wifi-bluetooth-support.robot: Fix shell expression Signed-off-by: Sebastian Czapla --- dasharo-compatibility/wifi-bluetooth-support.robot | 4 ++-- platform-configs/protectli-vp2430.robot | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dasharo-compatibility/wifi-bluetooth-support.robot b/dasharo-compatibility/wifi-bluetooth-support.robot index e13104095d..0b2e2b2a90 100644 --- a/dasharo-compatibility/wifi-bluetooth-support.robot +++ b/dasharo-compatibility/wifi-bluetooth-support.robot @@ -92,7 +92,7 @@ WLE001.301 Wireless card detection (Windows) Power On Login To Windows ${out}= Execute Command In Terminal - ... Get-PnpDevice | Where-Object {$_.Class -eq "Net" -and $_.FriendlyName -match "Wireless|Wi-Fi" -and $_.FriendlyName -notmatch "Virtual|Tunnel|TAP"} + ... Get-PnpDevice -PresentOnly | Where-Object {$_.Class -eq "Net" -and $_.FriendlyName -match "Wireless|Wi-Fi" -and $_.FriendlyName -notmatch "Virtual|Tunnel|TAP"} Should Match ${out} *${WIFI_CARD}* Log To Console The test passed for the ${WIFI_CARD} wireless card Log The test passed for the ${WIFI_CARD} wireless card WARN @@ -184,7 +184,7 @@ Bluetooth Scanning Switch To Root User Scan For Bluetooth In Linux - ${current_card}= Execute Command In Terminal lspci | grep "Network controller: | awk -F": " '{print $2}" + ${current_card}= Execute Command In Terminal lspci | grep "Network controller:" | awk -F": " '{print $2}' Exit From Root User Log To Console The test passed for the ${current_card} wireless card Log The test passed for the ${current_card} wireless card WARN diff --git a/platform-configs/protectli-vp2430.robot b/platform-configs/protectli-vp2430.robot index b04b500415..cfa7cee0aa 100644 --- a/platform-configs/protectli-vp2430.robot +++ b/platform-configs/protectli-vp2430.robot @@ -34,11 +34,11 @@ ${CPU}= Intel(R) N100 ${DEVICE_AUDIO1}= Alderlake-P HDMI ${DEVICE_AUDIO1_WIN}= ${TBD} -# On Windows: "Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW)" -${WIFI_CARD}= Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW) +${WIFI_CARD}= Qualcomm Atheros QCA61x4A Wireless Network Adapter +${WIFI_CARD_UBUNTU}= Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32) +${BLUETOOTH_CARD_UBUNTU}= Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32) ${USB_MODEL}= SanDisk ${USB_DEVICE}= SanDisk -${BLUETOOTH_CARD_UBUNTU}= Intel Corp. AX200 Bluetooth @{ATTACHED_USB}= SanDisk ${ESP_SCANNING_SUPPORT}= ${TRUE} From 21cf24db0f11e60e7a94038dbcbcb51eab420473 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 7 Apr 2025 14:26:35 +0200 Subject: [PATCH 288/416] protectli-pro.robot: Enable SATA support in config Signed-off-by: Sebastian Czapla --- dasharo-compatibility/sata-detect.robot | 1 + platform-configs/include/protectli-pro.robot | 1 + 2 files changed, 2 insertions(+) diff --git a/dasharo-compatibility/sata-detect.robot b/dasharo-compatibility/sata-detect.robot index 8e47c9361b..dcf87e93e2 100644 --- a/dasharo-compatibility/sata-detect.robot +++ b/dasharo-compatibility/sata-detect.robot @@ -31,6 +31,7 @@ SAT001.002 SATA support in OS (Ubuntu) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Detect Or Install Package smartmontools ${lsblk_out}= Execute Command In Terminal lsblk -d -o NAME -n @{disks}= Split String ${lsblk_out} \n diff --git a/platform-configs/include/protectli-pro.robot b/platform-configs/include/protectli-pro.robot index a34c7f0c70..a4b42d705d 100644 --- a/platform-configs/include/protectli-pro.robot +++ b/platform-configs/include/protectli-pro.robot @@ -14,3 +14,4 @@ ${SMM_WRITE_PROTECTION_SUPPORT}= ${TRUE} ${DASHARO_CHIPSET_MENU_SUPPORT}= ${FALSE} ${UEFI_PASSWORD_SUPPORT}= ${TRUE} ${ME_STATICALLY_DISABLED}= ${TRUE} +${SATA_SUPPORT}= ${TRUE} From 4e9f1e65926bc9f775b0ee334a47f03d77daf839 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 7 Apr 2025 15:13:21 +0200 Subject: [PATCH 289/416] platform-configs/protectli-vp2430.robot: Add NVMe device to config Signed-off-by: Sebastian Czapla --- platform-configs/protectli-vp2430.robot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platform-configs/protectli-vp2430.robot b/platform-configs/protectli-vp2430.robot index cfa7cee0aa..af064060a3 100644 --- a/platform-configs/protectli-vp2430.robot +++ b/platform-configs/protectli-vp2430.robot @@ -50,3 +50,5 @@ ${ESP_SCANNING_SUPPORT}= ${TRUE} ${ETHERNET_ID}= 8086:125c ${TPM_EXPECTED_CHIP}= SLB9670 +${CLEVO_DISK}= KINGSTON SNV3S500G +${DEVICE_NVME_DISK}= Non-Volatile memory controller: Kingston Technology Company From 6a6a0ced01be7674b6baa9b3c2139fa2bb691177 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 7 Apr 2025 16:26:12 +0200 Subject: [PATCH 290/416] platform-configs/protectli-vp2430.robot: Add ETHPERF port info Signed-off-by: Sebastian Czapla --- platform-configs/protectli-vp2430.robot | 1 + 1 file changed, 1 insertion(+) diff --git a/platform-configs/protectli-vp2430.robot b/platform-configs/protectli-vp2430.robot index af064060a3..6b373edf9a 100644 --- a/platform-configs/protectli-vp2430.robot +++ b/platform-configs/protectli-vp2430.robot @@ -46,6 +46,7 @@ ${ESP_SCANNING_SUPPORT}= ${TRUE} ... 00-e0-97-1b-00-48 ... 00-e0-97-1b-00-49 ... 00-e0-97-1b-00-4a +@{ETH_PERF_PAIR_2_G}= enp3s0 enp4s0 ${ETHERNET_ID}= 8086:125c From 36820e2558af94fd9b3873ae4dcc013750425cb7 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Tue, 8 Apr 2025 11:21:07 +0200 Subject: [PATCH 291/416] platform-configs: Move SATA_SUPPORT flag to board specific cfg Signed-off-by: Sebastian Czapla --- platform-configs/include/protectli-pro.robot | 1 - platform-configs/protectli-vp2430.robot | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-configs/include/protectli-pro.robot b/platform-configs/include/protectli-pro.robot index a4b42d705d..a34c7f0c70 100644 --- a/platform-configs/include/protectli-pro.robot +++ b/platform-configs/include/protectli-pro.robot @@ -14,4 +14,3 @@ ${SMM_WRITE_PROTECTION_SUPPORT}= ${TRUE} ${DASHARO_CHIPSET_MENU_SUPPORT}= ${FALSE} ${UEFI_PASSWORD_SUPPORT}= ${TRUE} ${ME_STATICALLY_DISABLED}= ${TRUE} -${SATA_SUPPORT}= ${TRUE} diff --git a/platform-configs/protectli-vp2430.robot b/platform-configs/protectli-vp2430.robot index 6b373edf9a..7bbc0959ee 100644 --- a/platform-configs/protectli-vp2430.robot +++ b/platform-configs/protectli-vp2430.robot @@ -51,5 +51,6 @@ ${ESP_SCANNING_SUPPORT}= ${TRUE} ${ETHERNET_ID}= 8086:125c ${TPM_EXPECTED_CHIP}= SLB9670 +${SATA_SUPPORT}= ${TRUE} ${CLEVO_DISK}= KINGSTON SNV3S500G ${DEVICE_NVME_DISK}= Non-Volatile memory controller: Kingston Technology Company From bb61b065ab52728d72eca7549fc1b9daf4fbbeea Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Mon, 31 Mar 2025 13:19:20 +0200 Subject: [PATCH 292/416] dasharo-performance/cpu-performance.robot add: dasharo cpu performance tests Signed-off-by: Jakub Redmerski --- dasharo-performance/cpu-performance.robot | 224 ++++++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 dasharo-performance/cpu-performance.robot diff --git a/dasharo-performance/cpu-performance.robot b/dasharo-performance/cpu-performance.robot new file mode 100644 index 0000000000..03c67dfe1c --- /dev/null +++ b/dasharo-performance/cpu-performance.robot @@ -0,0 +1,224 @@ +*** Settings *** +Library Collections +Library OperatingSystem +Library Process +Library String +Library Telnet timeout=20 seconds connection_timeout=120 seconds +Library SSHLibrary timeout=90 seconds +Library RequestsLibrary +Library ../venv/lib/python3.13/site-packages/robot/libraries/DateTime.py +Resource ../lib/performance.robot + +Suite Setup Run Keyword +... CPU Performance Suite Setup +Suite Teardown Run Keyword +... Log Out And Close Connection + + +*** Variables *** +${DEVIATION_UP}= 1.2 # acceptable deviation +/-20% +${DEVIATION_DOWN}= 0.8 + + +*** Test Cases *** +CPP001.001 Single Threaded CPU Benchmark (Ubuntu) (AC) + [Documentation] Test single threaded performance using phoronix + ... test suite, for Ubuntu, while connected to power supply. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPP001.001 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${AC_CONNECTED} The platform is not connected to AC + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + ${render_test_passed}= Run C-Ray Single-thread Render + ${coremark_test_passed}= Run Coremark Single-thread + Should Be True ${render_test_passed} + Should Be True ${coremark_test_passed} + +CPP001.002 Single Threaded CPU Benchmark (Ubuntu) (Battery) + [Documentation] Test single threaded performance using phoronix + ... test suite, for Ubuntu, while powered by inbuilt battery. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPP001.002 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} Battery is not present + Skip If ${AC_CONNECTED} The platform is not connected to AC + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + ${render_test_passed}= Run C-Ray Single-thread Render + ${coremark_test_passed}= Run Coremark Single-thread + Should Be True ${render_test_passed} + Should Be True ${coremark_test_passed} + +CPP002.001 Multi Threaded CPU Benchmark (Ubuntu) (AC) + [Documentation] Test multi threaded performance using phoronix + ... test suite, for Ubuntu, while connected to power supply. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPP001.002 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${AC_CONNECTED} The platform is not connected to AC + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + ${c_7zip_test_passed}= 7-Zip Multi-thread Compression And Decompression Average + Should Be True ${c_7zip_test_passed} + +CPP002.002 Multi Threaded CPU Benchmark (Ubuntu) (Battery) + [Documentation] Test multi threaded performance using phoronix + ... test suite, for Ubuntu, while powered by inbuilt battery. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPP001.002 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} Battery not present + Skip If ${AC_CONNECTED} AC connected + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + ${c_7zip_test_passed}= 7-Zip Multi-thread Compression And Decompression Average + Should Be True ${c_7zip_test_passed} + + +*** Keywords *** +CPU Performance Suite Setup + [Tags] robot:private + Prepare Test Suite + Skip If not ${CPU_PERFORMANCE_TESTS_SUPPORT} + Check Power Supply + IF ${TESTS_IN_UBUNTU_SUPPORT} + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Detect Or Install Phoronix Test Suite On Ubuntu + Execute Linux Command phoronix-test-suite install c-ray 300 + Execute Linux Command phoronix-test-suite install compress-7zip 300 + Execute Linux Command phoronix-test-suite install coremark 300 + END + Log To Console The result of the benchmarks depends on the processor and + ... RAM in the device. Please make sure that the hardware under test is + ... compatible with the one given in the reference values. + + # Date and hour of the start of the test the same for all the tests + ${get_date}= Get Current Date result_format=%d%m%Y%H%M%S + Set Global Variable ${CURRENT_DATE} ${get_date} + ${laptop_platform}= Check The Platform Is A Laptop + ${1080p}= Catenate Resolution: 1080p - Rays Per Pixel: 16= ${CRAY_1080_P_RENDER} + ${4k}= Catenate Resolution: 4K - Rays Per Pixel: 16= ${CRAY_4_K_RENDER} + ${5k}= Catenate Resolution: 5K - Rays Per Pixel: 16= ${CRAY_5_K_RENDER} + @{sginle_thread_res_tests}= Create List ${1080p} ${4k} ${5k} + Set Global Variable @{SGINLE_THREAD_RES_TESTS} + ${comp}= Catenate Test: Compression Rating=${ZIP_MULTI_COMPRESSION} + ${decomp}= Catenate Test: Decompression Rating=${ZIP_MULTI_DECOMPRESSION} + @{multi_thread_tests}= Create List ${comp} ${decomp} + Set Global Variable @{MULTI_THREAD_TESTS} + +Run C-Ray Single-thread Render + [Documentation] Run C-Ray benchmark with all resolutions (1080p, 4K, 5K) on single thread + [Tags] robot:private + Log To Console \n # new line for readability + ${test_name_to_path}= Set Variable cpuperformance + ${test_name_to_path}= Catenate SEPARATOR= ${test_name_to_path} ${CURRENT_DATE} + + ${result}= Execute Command In Terminal + ... echo 4 | phoronix-test-suite batch-run pts/c-ray TEST_RESULTS_NAME=${test_name_to_path} + ... timeout=18000 + Should Not Contain ${result} The batch mode must first be configured. + + ${test_passed}= Validate Multiple Results + ... ${PERF_RESULTS_PATH_UBUNTU} + ... ${test_name_to_path} + ... @{SGINLE_THREAD_RES_TESTS} + RETURN ${test_passed} + +Run Coremark Single-thread + [Documentation] Run Coremark benchmark on single thread + [Tags] robot:private + ${test_name_to_path}= Set Variable cpuperformance + ${test_name_to_path}= Catenate SEPARATOR= ${test_name_to_path} ${CURRENT_DATE} + + ${result}= Execute Command In Terminal + ... phoronix-test-suite batch-run pts/coremark TEST_RESULTS_NAME=${test_name_to_path} + ... timeout=1800 + Should Not Contain ${result} The batch mode must first be configured. + + ${test_result_values}= Read The Results + ... ${PERF_RESULTS_PATH_UBUNTU} + ... ${test_name_to_path} + ... CoreMark Size 666 - Iterations Per Second + Log To Console \nResults of the CoreMark Size 666 - Iterations Per Second:\n + ${test_passed}= Validate The Results ${test_result_values} ${COREMARK_SINGLE} + RETURN ${test_passed} + +7-Zip Multi-thread Compression And Decompression Average + [Documentation] Run 7-Zip Multi-thread Compression and Decompression benchmark on multiple threads + [Tags] robot:private + Log To Console \n # new line for readability + ${test_name_to_path}= Set Variable cpuperformance + ${test_name_to_path}= Catenate SEPARATOR= ${test_name_to_path} ${CURRENT_DATE} + + ${result}= Execute Command In Terminal + ... phoronix-test-suite batch-run pts/compress-7zip TEST_RESULTS_NAME=${test_name_to_path} + ... timeout=1800 + Should Not Contain ${result} The batch mode must first be configured. + + ${test_passed}= Validate Multiple Results + ... ${PERF_RESULTS_PATH_UBUNTU} + ... ${test_name_to_path} + ... @{MULTI_THREAD_TESTS} + RETURN ${test_passed} + +Read The Results + [Tags] robot:private + [Arguments] ${perf_results_path_ubuntu} ${test_name_to_path} ${test_description} + ${awk_commmand}= Catenate + ... awk -F '[<>]' '/${test_description}<\\/Description>/ + ... {found=1} found && // + ... {print $3; found=0}' ${perf_results_path_ubuntu}/${test_name_to_path}/composite.xml + ${test_result_values}= Execute Command In Terminal ${awk_commmand} + RETURN ${test_result_values} + +Validate The Results + [Tags] robot:private + [Arguments] ${nums} ${combined_ref_val} + ${ref_val}= Convert To Number ${combined_ref_val} + ${min}= Evaluate ${ref_val} * ${DEVIATION_DOWN} + ${max}= Evaluate ${ref_val} * ${DEVIATION_UP} + ${num_list}= Split String ${nums} separator=: + ${return_val}= Set Variable ${True} + + ${qtty}= Get Length ${num_list} + FOR ${i} IN RANGE ${qtty} + ${num}= Convert To Number ${num_list}[${i}] + ${i_plus_one}= Evaluate ${i} + 1 + IF ${num} < ${min} or ${num} > ${max} + Log To Console ${i_plus_one}. ${num} is out of acceptable range of (${min} - ${max}). + ${return_val}= Set Variable ${False} + ELSE + Log To Console ${i_plus_one}. ${num} + END + END + RETURN ${return_val} + +Validate Multiple Results + [Tags] robot:private + [Arguments] ${perf_results_path_ubuntu} ${test_name_to_path} @{reference_data} + Should Not Be Empty ${reference_data} + ${test_passed}= Set Variable ${True} + FOR ${compare_values} IN @{reference_data} + ${description_string} ${expected_value}= Split String ${compare_values} = + Log To Console \nResults of the ${description_string}: + + ${test_result_values}= Read The Results + ... ${perf_results_path_ubuntu} + ... ${test_name_to_path} + ... ${description_string} + + ${result}= Validate The Results ${test_result_values} ${expected_value} + IF ${result} == ${False} + ${test_passed}= Set Variable ${False} + Log To Console Test Failed for the: ${description_string}. + END + END + RETURN ${test_passed} From 195daf19d55aff9dd52e8859f326c6cd3b021e5e Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Thu, 13 Mar 2025 17:16:21 +0100 Subject: [PATCH 293/416] dasharo-security/tpm2-commands.robot uodate: add TPM004.201 Change EPS Signed-off-by: Jakub Redmerski --- dasharo-security/tpm2-commands.robot | 86 ++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/dasharo-security/tpm2-commands.robot b/dasharo-security/tpm2-commands.robot index 3113c4ce3f..9187b3249a 100644 --- a/dasharo-security/tpm2-commands.robot +++ b/dasharo-security/tpm2-commands.robot @@ -236,8 +236,94 @@ TPMCMD011.001 Performing HMAC operation on the file (Ubuntu) Should Contain ${out1} hmac.out Should Not Contain ${out2} hmac.out +TPM004.201 Change EPS (Ubuntu) + [Documentation] Try to trigger the TPM_RC_INTEGRITY error + Execute Linux Tpm2 Tools Command tpm2_createprimary -C e -c primary_key.ctx 60 + Execute Linux Tpm2 Tools Command tpm2_create -u key.pub -r key.priv -C primary_key.ctx + Flush TPM Contexts + Execute Linux Tpm2 Tools Command tpm2_load -C primary_key.ctx -u key.pub -r key.priv -c key.ctx + Execute Linux Command echo "my secret" > secret.data + Execute Linux Tpm2 Tools Command tpm2_sign -c key.ctx -o sig.rssa secret.data + Flush TPM Contexts + Execute Linux Tpm2 Tools Command tpm2_verifysignature -c key.ctx -s sig.rssa -m secret.data + Execute Linux Command rm -f primary_key.ctx sig.rssa secret.data + Execute Reboot Command + ${setup_menu}= Enter Setup Menu Tianocore And Return Construction + # Log To Console \nsetup_menu: + # Count Menu Items ${setup_menu} + # Log To Console ${setup_menu} + # Log To Console \n\n + ${device_manager_menu}= Enter Submenu From Snapshot And Return Construction + ... ${setup_menu} + ... Device Manager + # Log To Console \nevice_manager_menu: + # Count Menu Items ${device_manager_menu} + # Log To Console ${device_manager_menu} + # Log To Console \n\n + ${TPM_menu}= Enter Submenu From Snapshot And Return Construction + ... ${device_manager_menu} + ... TCG2 Configuration + ${target_option_index}= Search For Option Not Visible After Entering Menu TPM2 Operation + Reenter Menu + Press Key N Times And Enter ${target_option_index} ${ARROW_DOWN} + ${checkpoint}= Set Variable + ... \---------------------------------------------------------------------/ + ${tpm2_operation_menu}= Get Menu Construction ${checkpoint} 0 0 + Enter Submenu From Snapshot ${tpm2_operation_menu} TPM2 ChangeEPS + Save Changes And Reset + Read From Terminal Until + ... Press F12 to clear and change identity of the TPM + Press Key N Times 1 ${F12} + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Execute Linux Tpm2 Tools Command tpm2_createprimary -C e -c primary_key.ctx 60 + Flush TPM Contexts + ${result}= Run Keyword And Ignore Error Execute Linux Tpm2 Tools Command + ... tpm2_load -C primary_key.ctx -u key.pub -r key.priv -c key.ctx + IF '${result}[0]' == 'FAIL' + Should Contain ${result}[1] 0x1DF + ELSE + FAIL msg=tpm2_load should result in an error.\n + END *** Keywords *** +Count Menu Items + [Arguments] ${menu} + ${count} Evaluate len(${menu}) + Log To Console item count: ${count} + RETURN ${count} + +Search BIOS Menu For Option + [Arguments] ${target_option} + + # init + ${found} Set Variable ${False} + ${target_option_index} Set Variable 0 + Log To Console target_option_index:${target_option_index} + # ${visible_options}= Get Boot Menu Construction + Press Key N Times 1 ${ARROW_DOWN} + ${visible_options}= Get Submenu Construction checkpoint=LCtrl+LAlt+F12=Save + Log To Console ${visible_options} + ${first_item} Set Variable ${visible_options}[0] + ${current_item} Set Variable ${first_item} + Log To Console First item: ${first_item} + FOR ${i} IN RANGE 100 #asuming menu is no bigger than 100 items + IF ${current_item} != ${target_option} + ${target_option_index}= Evaluate ${target_option_index} + 1 + Press Key N Times And Enter 1 ${ARROW_DOWN} + ${visible_options}= Get Boot Menu Construction + ${current_item} Set Variable ${visible_options}[0] + ELSE IF ${first_item} == ${current_item} + Log To Console Option: ${target_option} not found\n + RETURN + ELSE IF ${current_item} == ${target_option} + RETURN ${target_option_index} + ELSE + Log To Console Unexpected condition!\n + END + END + Flush TPM Contexts Execute Linux Tpm2 Tools Command tpm2_flushcontext -t Execute Linux Tpm2 Tools Command tpm2_flushcontext -l From 8626671cb6af136d99a2c52ea34a5cf7614d7874 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Thu, 20 Mar 2025 10:26:47 +0100 Subject: [PATCH 294/416] lib/bios/ update: fully functional option finder Signed-off-by: Jakub Redmerski --- dasharo-security/tpm2-commands.robot | 47 +------------------ lib/bios/menus.robot | 70 ++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 45 deletions(-) diff --git a/dasharo-security/tpm2-commands.robot b/dasharo-security/tpm2-commands.robot index 9187b3249a..8bd0b950e0 100644 --- a/dasharo-security/tpm2-commands.robot +++ b/dasharo-security/tpm2-commands.robot @@ -248,19 +248,12 @@ TPM004.201 Change EPS (Ubuntu) Execute Linux Tpm2 Tools Command tpm2_verifysignature -c key.ctx -s sig.rssa -m secret.data Execute Linux Command rm -f primary_key.ctx sig.rssa secret.data Execute Reboot Command + ${setup_menu}= Enter Setup Menu Tianocore And Return Construction - # Log To Console \nsetup_menu: - # Count Menu Items ${setup_menu} - # Log To Console ${setup_menu} - # Log To Console \n\n ${device_manager_menu}= Enter Submenu From Snapshot And Return Construction ... ${setup_menu} ... Device Manager - # Log To Console \nevice_manager_menu: - # Count Menu Items ${device_manager_menu} - # Log To Console ${device_manager_menu} - # Log To Console \n\n - ${TPM_menu}= Enter Submenu From Snapshot And Return Construction + Enter Submenu From Snapshot ... ${device_manager_menu} ... TCG2 Configuration ${target_option_index}= Search For Option Not Visible After Entering Menu TPM2 Operation @@ -288,42 +281,6 @@ TPM004.201 Change EPS (Ubuntu) END *** Keywords *** -Count Menu Items - [Arguments] ${menu} - ${count} Evaluate len(${menu}) - Log To Console item count: ${count} - RETURN ${count} - -Search BIOS Menu For Option - [Arguments] ${target_option} - - # init - ${found} Set Variable ${False} - ${target_option_index} Set Variable 0 - Log To Console target_option_index:${target_option_index} - # ${visible_options}= Get Boot Menu Construction - Press Key N Times 1 ${ARROW_DOWN} - ${visible_options}= Get Submenu Construction checkpoint=LCtrl+LAlt+F12=Save - Log To Console ${visible_options} - ${first_item} Set Variable ${visible_options}[0] - ${current_item} Set Variable ${first_item} - Log To Console First item: ${first_item} - FOR ${i} IN RANGE 100 #asuming menu is no bigger than 100 items - IF ${current_item} != ${target_option} - ${target_option_index}= Evaluate ${target_option_index} + 1 - Press Key N Times And Enter 1 ${ARROW_DOWN} - ${visible_options}= Get Boot Menu Construction - ${current_item} Set Variable ${visible_options}[0] - ELSE IF ${first_item} == ${current_item} - Log To Console Option: ${target_option} not found\n - RETURN - ELSE IF ${current_item} == ${target_option} - RETURN ${target_option_index} - ELSE - Log To Console Unexpected condition!\n - END - END - Flush TPM Contexts Execute Linux Tpm2 Tools Command tpm2_flushcontext -t Execute Linux Tpm2 Tools Command tpm2_flushcontext -l diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index 50a35c42cb..0c72cedae1 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -99,6 +99,76 @@ Get Boot Menu Construction END END RETURN ${construction} +Search For Option Not Visible After Entering Menu + [Documentation] + ... Reads the serial output in search for the first occurrence of + ... ${option} when it fidns it, the function returns the + ... qantity of ${ARROW_DOWN} presses required to reach that ${option}. + ... It works only if the ${option} is not visible after entering menu. + ... + ... === Requirements === + ... - Boot menu has to be entered using ``Enter Boot Menu Tianocore`` + ... - (?)The serial must not have been read after entering the boot menu + ... + ... === Arguments === + ... ``${option}``: ``string`` The first line of the option you want + ... to find. In case options are split into multiple lines make sure to + ... put only the first line of the option as argument. + ... ``${re_enter}``: ``boolean`` - if ``${TRUE}``, reenters menu at + ... the start of the Key Word + ... + ... === Return Value === + ... - ``int`` - The qantity of ${ARROW_DOWN} presses required to + ... reach that ${option} + ... + ... === Effects === + ... - The submenu is read from the serial buffer + [Arguments] ${option} ${re_enter}=${TRUE} + + IF ${re_enter} + Reenter Menu + END + ${menu}= Read From Terminal Until Exit + # Lines to strip: + # UP + # Devices List - in Device Manager + # BOTTOM + # v to move selection + ${construction}= Parse Menu Snapshot Into Construction ${menu} 1 3 + + # The maximum number of entries in boot menu is 11 right now. When we have + # more, the list can be scrolled. + + ${no_entries}= Get Length ${construction} + IF ${no_entries} >= 11 + + Read From Terminal + #50 is random number itassumes that you need lest than 50 arrow down + # clicks to go through entire menu + FOR ${key_down_qtty} IN RANGE 1 50 + Press Key N Times 1 ${ARROW_DOWN} + ${out}= Read From Terminal Until LCtrl+LAlt+F12=Save + ${contains}= Run Keyword And Ignore Error + ... Should Contain ${out} ${option} + IF '${contains}[0]' == 'PASS' + IF ${key_down_qtty} < 8 + FAIL msg=This option is visible after entering the menu. Use another Key Word. + END + RETURN ${key_down_qtty} + END + END + #When the menu doesn't require scrolling. Then this KWD is not needed. + # Added for compatibility. + ELSE + # This is the only that has additional menu title + Remove Values From List ${construction} Devices List + ${key_down_qtty}= + ... Get Index Of Matching Option In Menu ${construction} ${option} + Should Not Be Equal As Integers ${key_down_qtty} -1 + ... msg=Option '${option}' not found in menu + RETURN ${key_down_qtty} + END + Fail msg=Option '${option}' not found in menu. Enter Boot Menu Tianocore And Return Construction [Documentation] From 4b9301a6d25903d3839d3de050f315b53c77beb7 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Thu, 20 Mar 2025 18:00:02 +0100 Subject: [PATCH 295/416] docs/qemu.md fix: correct the sentence in documentation Signed-off-by: Jakub Redmerski --- docs/qemu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/qemu.md b/docs/qemu.md index ebad0cf69a..6f8373fdde 100644 --- a/docs/qemu.md +++ b/docs/qemu.md @@ -30,7 +30,7 @@ environment variable (`DIR`). You may also decide to not use graphics user interface for QEMU. In that case choose mode `nographic`. If you run QEMU on a remote machine you may consider -to use mode `vnc` with default port for graphical output being `5900`. +using the `vnc` mode with default port for graphical output being `5900`. Dasharo (UEFI) in QEMU can be started with: From 8f6233decc80b551c9d8214d83432879c8476e89 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Fri, 21 Mar 2025 13:08:30 +0100 Subject: [PATCH 296/416] self-tests/count-needed-arrow_down-presses.robot add: add self-tests for new KWD 'Search For Option Not Visible After Entering Menu' Signed-off-by: Jakub Redmerski --- .../count-needed-arrow_down-presses.robot | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 self-tests/count-needed-arrow_down-presses.robot diff --git a/self-tests/count-needed-arrow_down-presses.robot b/self-tests/count-needed-arrow_down-presses.robot new file mode 100644 index 0000000000..3ce433b7fe --- /dev/null +++ b/self-tests/count-needed-arrow_down-presses.robot @@ -0,0 +1,66 @@ +*** Settings *** +Documentation This suite verifies the correct operation of the keyword +... "Search For Option Not Visible After Entering Menu" + +Library Collections +Library OperatingSystem +Library Process +Library String +Library Telnet timeout=30 seconds connection_timeout=120 seconds +Library SSHLibrary timeout=90 seconds +Library RequestsLibrary +# TODO: maybe have a single file to include if we need to include the same +# stuff in all test cases +Resource ../variables.robot +Resource ../keywords.robot +Resource ../keys.robot + +Suite Setup Run Keyword +... Prepare Test Suite +Suite Teardown Run Keyword +... Log Out And Close Connection + +*** Test Cases *** +Search For Option Not Visible After Entering Menu - Test + [Documentation] Chcesks if the Key Word "Search For Option Not Visible After Entering Menu" works + ... correctly. + Power On + ${setup_menu}= Enter Setup Menu Tianocore And Return Construction + ${device_manager_menu}= Enter Submenu From Snapshot And Return Construction + ... ${setup_menu} + ... Device Manager + Enter Submenu From Snapshot + ... ${device_manager_menu} + ... TCG2 Configuration + ${target_option_index}= Search For Option Not Visible After Entering Menu Attempt PPI Version re_enter=${FALSE} + ${second_target_option_index}= Search For Option Not Visible After Entering Menu Attempt PPI Version re_enter=${TRUE} + Should Be Equal ${target_option_index} ${second_target_option_index} + +Search For Option Visible At First Menu Entrance + [Documentation] Chcesks if the Key Word "Search For Option Not Visible After Entering Menu" returns + ... a proper message when the searched option is visible at first menu entrance. + Power On + ${setup_menu}= Enter Setup Menu Tianocore And Return Construction + ${device_manager_menu}= Enter Submenu From Snapshot And Return Construction + ... ${setup_menu} + ... Device Manager + Enter Submenu From Snapshot + ... ${device_manager_menu} + ... TCG2 Configuration + ${target_option_index}= Run Keyword And Ignore Error + ... Search For Option Not Visible After Entering Menu Attempt TPM Device re_enter=${FALSE} + ${wxpected_result}= Evaluate ('FAIL', 'This option is visible after entering the menu. Use another Key Word.') + Should Be Equal ${target_option_index} ${wxpected_result} + +Search Option In Menu Smaller Than 11 Entries + [Documentation] Chcesks if the Key Word "Search For Option Not Visible After Entering Menu" returns + ... a proper message when the searched option is visible at first menu entrance. + Power On + ${setup_menu}= Enter Setup Menu Tianocore And Return Construction + ${device_manager_menu}= Enter Submenu From Snapshot And Return Construction + ... ${setup_menu} + ... Device Manager + ${target_option_index}= Search For Option Not Visible After Entering Menu TCG2 Configuration re_enter=${TRUE} + Press Key N Times And Enter ${target_option_index} ${ARROW_DOWN} + ${tpm_menu}= Get Menu Construction checkpoint=Esc=Exit + Should Contain ${tpm_menu} Current TPM Device TPM 2.0 From 2818ba310ac4320d9c9ffb9b6471cd2b3b2370ac Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Wed, 26 Mar 2025 10:09:56 +0100 Subject: [PATCH 297/416] dasharo-security/* change: move Change EPS (Ubuntu) test from tpm2 to tpm various files fix: make changes requested by pre-commit Signed-off-by: Jakub Redmerski --- dasharo-security/tpm-support.robot | 68 ++++++++++++++ dasharo-security/tpm2-commands.robot | 93 +------------------ lib/bios/menus.robot | 27 +++--- lib/tpm2.robot | 52 +++++++++++ .../count-needed-arrow_down-presses.robot | 22 +++-- 5 files changed, 149 insertions(+), 113 deletions(-) create mode 100644 lib/tpm2.robot diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index 8cf00d5aed..0c978f1f6f 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -11,6 +11,7 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../lib/tpm.robot +Resource ../lib/tpm2.robot Resource ../keys.robot # TODO: @@ -151,6 +152,64 @@ TPM003.003 Check TPM Physical Presence Interface (Windows) ${out}= Execute Command In Terminal tpmtool getdeviceinformation Should Contain ${out} PPI Version: 1.3 +# TPM003.004 Change active PCR banks with TPM PPI (firmware) +# [Documentation] This test aims to verify that the TPM Physical Presence +# ... Interface is working properly in the firmware by changing active TPM PCR banks. +# Skip If not ${TPM_SUPPORTED_VERSION} == None TPM003.004 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.004 not supported +# TODO: https://docs.dasharo.com/unified-test-documentation/dasharo-security/200-tpm-support/#tpm003004-change-active-pcr-banks-with-tpm-ppi-firmware + +TPM004.201 Check if the ChangeEPS works (Ubuntu) + [Documentation] Check if the `TPM2 ChangeEPS` setup menu option works properly. + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Verify Presence Of TPM Via Sysfs + Detect Or Install Package tpm2-tools + Flush TPM Contexts + Execute Linux Tpm2 Tools Command tpm2_createprimary -C e -c primary_key.ctx 60 + Execute Linux Tpm2 Tools Command tpm2_create -u key.pub -r key.priv -C primary_key.ctx + Flush TPM Contexts + Execute Linux Tpm2 Tools Command tpm2_load -C primary_key.ctx -u key.pub -r key.priv -c key.ctx + Execute Linux Command echo "my secret" > secret.data + Execute Linux Tpm2 Tools Command tpm2_sign -c key.ctx -o sig.rssa secret.data + Flush TPM Contexts + Execute Linux Tpm2 Tools Command tpm2_verifysignature -c key.ctx -s sig.rssa -m secret.data + Execute Linux Command rm -f primary_key.ctx sig.rssa secret.data + Execute Reboot Command + ${setup_menu}= Enter Setup Menu Tianocore And Return Construction + ${device_manager_menu}= Enter Submenu From Snapshot And Return Construction + ... ${setup_menu} + ... Device Manager + Enter Submenu From Snapshot + ... ${device_manager_menu} + ... TCG2 Configuration + ${target_option_index}= Search For Option Not Visible After Entering Menu TPM2 Operation + Reenter Menu + Press Key N Times And Enter ${target_option_index} ${ARROW_DOWN} + ${checkpoint}= Set Variable + ... \---------------------------------------------------------------------/ + ${tpm2_operation_menu}= Get Menu Construction ${checkpoint} 0 0 + Enter Submenu From Snapshot ${tpm2_operation_menu} TPM2 ChangeEPS + Save Changes And Reset + Read From Terminal Until + ... Press F12 to clear and change identity of the TPM + Press Key N Times 1 ${F12} + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Execute Linux Tpm2 Tools Command tpm2_createprimary -C e -c primary_key.ctx 60 + Flush TPM Contexts + ${result}= Run Keyword And Ignore Error Execute Linux Tpm2 Tools Command + ... tpm2_load -C primary_key.ctx -u key.pub -r key.priv -c key.ctx + Execute Linux Command rm -f primary_key.ctx key.pub key.priv key.ctx + IF '${result}[0]' == 'FAIL' + Should Contain ${result}[1] 0x1DF + ELSE + FAIL msg=tpm2_load should result in an error.\n + END + *** Keywords *** Prepare TPM Test On Linux @@ -171,3 +230,12 @@ Check TPM Physical Presence Interface ELSE Fail Invalid expected version, please verify config END + +Prepare TPM Test On Ubuntu + [Documentation] Run common actions required for TPM tests in Ubuntu + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Get Cbmem + Verify Presence Of TPM Via Sysfs diff --git a/dasharo-security/tpm2-commands.robot b/dasharo-security/tpm2-commands.robot index 8bd0b950e0..f08de2c9f3 100644 --- a/dasharo-security/tpm2-commands.robot +++ b/dasharo-security/tpm2-commands.robot @@ -11,6 +11,7 @@ Library RequestsLibrary Resource ../variables.robot Resource ../keywords.robot Resource ../lib/tpm.robot +Resource ../lib/tpm2.robot Resource ../keys.robot # TODO: @@ -235,95 +236,3 @@ TPMCMD011.001 Performing HMAC operation on the file (Ubuntu) Execute Linux Command rm -f hmac.out hmac.key secret.data primary_key.ctx key.pub key.priv Should Contain ${out1} hmac.out Should Not Contain ${out2} hmac.out - -TPM004.201 Change EPS (Ubuntu) - [Documentation] Try to trigger the TPM_RC_INTEGRITY error - Execute Linux Tpm2 Tools Command tpm2_createprimary -C e -c primary_key.ctx 60 - Execute Linux Tpm2 Tools Command tpm2_create -u key.pub -r key.priv -C primary_key.ctx - Flush TPM Contexts - Execute Linux Tpm2 Tools Command tpm2_load -C primary_key.ctx -u key.pub -r key.priv -c key.ctx - Execute Linux Command echo "my secret" > secret.data - Execute Linux Tpm2 Tools Command tpm2_sign -c key.ctx -o sig.rssa secret.data - Flush TPM Contexts - Execute Linux Tpm2 Tools Command tpm2_verifysignature -c key.ctx -s sig.rssa -m secret.data - Execute Linux Command rm -f primary_key.ctx sig.rssa secret.data - Execute Reboot Command - - ${setup_menu}= Enter Setup Menu Tianocore And Return Construction - ${device_manager_menu}= Enter Submenu From Snapshot And Return Construction - ... ${setup_menu} - ... Device Manager - Enter Submenu From Snapshot - ... ${device_manager_menu} - ... TCG2 Configuration - ${target_option_index}= Search For Option Not Visible After Entering Menu TPM2 Operation - Reenter Menu - Press Key N Times And Enter ${target_option_index} ${ARROW_DOWN} - ${checkpoint}= Set Variable - ... \---------------------------------------------------------------------/ - ${tpm2_operation_menu}= Get Menu Construction ${checkpoint} 0 0 - Enter Submenu From Snapshot ${tpm2_operation_menu} TPM2 ChangeEPS - Save Changes And Reset - Read From Terminal Until - ... Press F12 to clear and change identity of the TPM - Press Key N Times 1 ${F12} - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Execute Linux Tpm2 Tools Command tpm2_createprimary -C e -c primary_key.ctx 60 - Flush TPM Contexts - ${result}= Run Keyword And Ignore Error Execute Linux Tpm2 Tools Command - ... tpm2_load -C primary_key.ctx -u key.pub -r key.priv -c key.ctx - IF '${result}[0]' == 'FAIL' - Should Contain ${result}[1] 0x1DF - ELSE - FAIL msg=tpm2_load should result in an error.\n - END - -*** Keywords *** -Flush TPM Contexts - Execute Linux Tpm2 Tools Command tpm2_flushcontext -t - Execute Linux Tpm2 Tools Command tpm2_flushcontext -l - Execute Linux Tpm2 Tools Command tpm2_flushcontext -s - -Check Which TPM2 Banks Are Enabled - [Documentation] Checks which Bank is enabled, returns tuple (bool, bool) - ${out}= Execute Linux Command tpm2_getcap pcrs - ${sha1}= Run Keyword And Return Status - ... Should Contain - ... ${out} - ... sha1: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 ] - ${sha256}= Run Keyword And Return Status - ... Should Contain - ... ${out} - ... sha256: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 ] - RETURN ${sha1} ${sha256} - -Check If SHA1 And SHA256 Banks Are Enabled - ${sha1} ${sha256}= Check Which TPM2 Banks Are Enabled - Should Be True ${sha1} - Should Be True ${sha256} - -TPM2 Suite Setup - Prepare Test Suite - Skip If '${TPM_SUPPORTED_VERSION}' != '2' TPM commands tests supported only TPM2 - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM commands tests supported only on Ubuntu - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Verify Presence Of TPM Via Sysfs - - ${passed}= Run Keyword And Return Status - ... Check If SHA1 And SHA256 Banks Are Enabled - IF not ${passed} - # Restore default allocations in case any bank was disabled and reboot - Execute Linux Command tpm2_pcrallocate - Execute Reboot Command - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - END - ${sha1_enabled} ${sha256_enabled}= Check Which TPM2 Banks Are Enabled - Set Suite Variable $SHA1_ENABLED ${sha1_enabled} - Set Suite Variable $SHA256_ENABLED ${sha256_enabled} diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index 0c72cedae1..919034a0e3 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -99,35 +99,35 @@ Get Boot Menu Construction END END RETURN ${construction} + Search For Option Not Visible After Entering Menu [Documentation] ... Reads the serial output in search for the first occurrence of - ... ${option} when it fidns it, the function returns the - ... qantity of ${ARROW_DOWN} presses required to reach that ${option}. + ... ${option} when it finds the function returns the + ... quantity of ${ARROW_DOWN} presses required to reach that ${option}. ... It works only if the ${option} is not visible after entering menu. ... ... === Requirements === ... - Boot menu has to be entered using ``Enter Boot Menu Tianocore`` - ... - (?)The serial must not have been read after entering the boot menu + ... - The serial must not have been read after entering the boot menu + ... if the ${re_enter} is set to false. ... ... === Arguments === ... ``${option}``: ``string`` The first line of the option you want ... to find. In case options are split into multiple lines make sure to ... put only the first line of the option as argument. - ... ``${re_enter}``: ``boolean`` - if ``${TRUE}``, reenters menu at - ... the start of the Key Word + ... ``${re_enter}``: ``boolean`` - default ``${TRUE}``, skip reentering + ... menu at the start of the keyword when ``${FALSE}``. ... ... === Return Value === - ... - ``int`` - The qantity of ${ARROW_DOWN} presses required to + ... - ``int`` - The quantity of ${ARROW_DOWN} presses required to ... reach that ${option} ... ... === Effects === ... - The submenu is read from the serial buffer [Arguments] ${option} ${re_enter}=${TRUE} - IF ${re_enter} - Reenter Menu - END + IF ${re_enter} Reenter Menu ${menu}= Read From Terminal Until Exit # Lines to strip: # UP @@ -141,9 +141,8 @@ Search For Option Not Visible After Entering Menu ${no_entries}= Get Length ${construction} IF ${no_entries} >= 11 - Read From Terminal - #50 is random number itassumes that you need lest than 50 arrow down + # 50 is random number itassumes that you need lest than 50 arrow down # clicks to go through entire menu FOR ${key_down_qtty} IN RANGE 1 50 Press Key N Times 1 ${ARROW_DOWN} @@ -152,13 +151,13 @@ Search For Option Not Visible After Entering Menu ... Should Contain ${out} ${option} IF '${contains}[0]' == 'PASS' IF ${key_down_qtty} < 8 - FAIL msg=This option is visible after entering the menu. Use another Key Word. + FAIL msg=This option is visible after entering the menu. Use another keyword. END RETURN ${key_down_qtty} END END - #When the menu doesn't require scrolling. Then this KWD is not needed. - # Added for compatibility. + # When the menu doesn't require scrolling. Then this KWD is not needed. + # Added for compatibility. ELSE # This is the only that has additional menu title Remove Values From List ${construction} Devices List diff --git a/lib/tpm2.robot b/lib/tpm2.robot new file mode 100644 index 0000000000..178165faf6 --- /dev/null +++ b/lib/tpm2.robot @@ -0,0 +1,52 @@ +*** Settings *** +Library OperatingSystem +Library String + + +*** Keywords *** +Flush TPM Contexts + Execute Linux Tpm2 Tools Command tpm2_flushcontext -t + Execute Linux Tpm2 Tools Command tpm2_flushcontext -l + Execute Linux Tpm2 Tools Command tpm2_flushcontext -s + +Check Which TPM2 Banks Are Enabled + [Documentation] Checks which Bank is enabled, returns tuple (bool, bool) + ${out}= Execute Linux Command tpm2_getcap pcrs + ${sha1}= Run Keyword And Return Status + ... Should Contain + ... ${out} + ... sha1: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 ] + ${sha256}= Run Keyword And Return Status + ... Should Contain + ... ${out} + ... sha256: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 ] + RETURN ${sha1} ${sha256} + +Check If SHA1 And SHA256 Banks Are Enabled + ${sha1} ${sha256}= Check Which TPM2 Banks Are Enabled + Should Be True ${sha1} + Should Be True ${sha256} + +TPM2 Suite Setup + Prepare Test Suite + Skip If '${TPM_SUPPORTED_VERSION}' != '2' TPM commands tests supported only TPM2 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM commands tests supported only on Ubuntu + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Verify Presence Of TPM Via Sysfs + Detect Or Install Package tpm2-tools + ${passed}= Run Keyword And Return Status + ... Check If SHA1 And SHA256 Banks Are Enabled + IF not ${passed} + # Restore default allocations in case any bank was disabled and reboot + Execute Linux Command tpm2_pcrallocate + Execute Reboot Command + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + END + ${sha1_enabled} ${sha256_enabled}= Check Which TPM2 Banks Are Enabled + Set Suite Variable $SHA1_ENABLED ${sha1_enabled} + Set Suite Variable $SHA256_ENABLED ${sha256_enabled} diff --git a/self-tests/count-needed-arrow_down-presses.robot b/self-tests/count-needed-arrow_down-presses.robot index 3ce433b7fe..0607888c51 100644 --- a/self-tests/count-needed-arrow_down-presses.robot +++ b/self-tests/count-needed-arrow_down-presses.robot @@ -20,6 +20,7 @@ Suite Setup Run Keyword Suite Teardown Run Keyword ... Log Out And Close Connection + *** Test Cases *** Search For Option Not Visible After Entering Menu - Test [Documentation] Chcesks if the Key Word "Search For Option Not Visible After Entering Menu" works @@ -32,13 +33,17 @@ Search For Option Not Visible After Entering Menu - Test Enter Submenu From Snapshot ... ${device_manager_menu} ... TCG2 Configuration - ${target_option_index}= Search For Option Not Visible After Entering Menu Attempt PPI Version re_enter=${FALSE} - ${second_target_option_index}= Search For Option Not Visible After Entering Menu Attempt PPI Version re_enter=${TRUE} + ${target_option_index}= Search For Option Not Visible After Entering Menu + ... Attempt PPI Version + ... re_enter=${FALSE} + ${second_target_option_index}= Search For Option Not Visible After Entering Menu + ... Attempt PPI Version + ... re_enter=${TRUE} Should Be Equal ${target_option_index} ${second_target_option_index} Search For Option Visible At First Menu Entrance [Documentation] Chcesks if the Key Word "Search For Option Not Visible After Entering Menu" returns - ... a proper message when the searched option is visible at first menu entrance. + ... a proper message when the searched option is visible at first menu entrance. Power On ${setup_menu}= Enter Setup Menu Tianocore And Return Construction ${device_manager_menu}= Enter Submenu From Snapshot And Return Construction @@ -49,18 +54,21 @@ Search For Option Visible At First Menu Entrance ... TCG2 Configuration ${target_option_index}= Run Keyword And Ignore Error ... Search For Option Not Visible After Entering Menu Attempt TPM Device re_enter=${FALSE} - ${wxpected_result}= Evaluate ('FAIL', 'This option is visible after entering the menu. Use another Key Word.') - Should Be Equal ${target_option_index} ${wxpected_result} + ${expected_result}= Evaluate + ... ('FAIL', 'This option is visible after entering the menu. Use another keyword.') + Should Be Equal ${target_option_index} ${expected_result} Search Option In Menu Smaller Than 11 Entries [Documentation] Chcesks if the Key Word "Search For Option Not Visible After Entering Menu" returns - ... a proper message when the searched option is visible at first menu entrance. + ... a proper message when the searched option is visible at first menu entrance. Power On ${setup_menu}= Enter Setup Menu Tianocore And Return Construction ${device_manager_menu}= Enter Submenu From Snapshot And Return Construction ... ${setup_menu} ... Device Manager - ${target_option_index}= Search For Option Not Visible After Entering Menu TCG2 Configuration re_enter=${TRUE} + ${target_option_index}= Search For Option Not Visible After Entering Menu + ... TCG2 Configuration + ... re_enter=${TRUE} Press Key N Times And Enter ${target_option_index} ${ARROW_DOWN} ${tpm_menu}= Get Menu Construction checkpoint=Esc=Exit Should Contain ${tpm_menu} Current TPM Device TPM 2.0 From 14c7d1b7661db14f64d691e5ca13852a4a32995c Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Fri, 14 Mar 2025 17:07:44 +0100 Subject: [PATCH 298/416] platform-configs/protectli-vp2410.robot fix: remove LED check from unsupported platform VP2410 Signed-off-by: Jakub Redmerski --- platform-configs/protectli-vp2410.robot | 1 + 1 file changed, 1 insertion(+) diff --git a/platform-configs/protectli-vp2410.robot b/platform-configs/protectli-vp2410.robot index 572c694c75..c699a2d96a 100644 --- a/platform-configs/protectli-vp2410.robot +++ b/platform-configs/protectli-vp2410.robot @@ -13,6 +13,7 @@ ${INITIAL_CPU_FREQUENCY}= 2000 ${MAX_CPU_TEMP}= 77 ${CPU_MAX_FREQUENCY}= 2800 ${CPU_MIN_FREQUENCY}= 300 +${CHECK_POWER_LED_SUPPORT}= ${False} # eMMC driver support ${E_MMC_NAME}= 8GTF4R From f4cdf55d06f481836205df2cfda26c27e78376b8 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Wed, 2 Apr 2025 09:52:26 +0200 Subject: [PATCH 299/416] dasharo-security/tpm-support.robot add: Change active PCR banks with TPM PPI (EDK2 UEFI) test case Signed-off-by: Jakub Redmerski --- dasharo-security/tpm-support.robot | 43 +++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index 0c978f1f6f..ac51c5afd5 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -152,12 +152,43 @@ TPM003.003 Check TPM Physical Presence Interface (Windows) ${out}= Execute Command In Terminal tpmtool getdeviceinformation Should Contain ${out} PPI Version: 1.3 -# TPM003.004 Change active PCR banks with TPM PPI (firmware) -# [Documentation] This test aims to verify that the TPM Physical Presence -# ... Interface is working properly in the firmware by changing active TPM PCR banks. -# Skip If not ${TPM_SUPPORTED_VERSION} == None TPM003.004 not supported -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.004 not supported -# TODO: https://docs.dasharo.com/unified-test-documentation/dasharo-security/200-tpm-support/#tpm003004-change-active-pcr-banks-with-tpm-ppi-firmware +TPM003.101 Change active PCR banks with TPM PPI (EDK2 UEFI) + [Documentation] This test aims to verify that the TPM Physical Presence + ... Interface is working properly in the firmware by changing active TPM PCR banks. + ... Previous IDs: TPM003.004 + Skip If not ${TPM_SUPPORTED_VERSION} == 2 TPM003.101 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.101 not supported + Execute Reboot Command + Enter The TCG2 Configuration Menu + ${sha1_position}= Search For Option Not Visible After Entering Menu PCR Bank: SHA1 + ${sha256_position}= Search For Option Not Visible After Entering Menu PCR Bank: SHA256 + Reenter Menu + # Set all PCR Banks to True + ${target_option_index}= Search For Option Not Visible After Entering Menu TPM2 Operation + Reenter Menu + Press Key N Times And Enter ${target_option_index} ${ARROW_DOWN} + ${checkpoint}= Set Variable + ... \---------------------------------------------------------------------/ + ${tpm2_operation_menu}= Get Menu Construction ${checkpoint} 0 0 + Enter Submenu From Snapshot ${tpm2_operation_menu} TCG2 LogAllDigests + Save Changes And Reset + Enter The TCG2 Configuration Menu + # Order of checks below cannot be changed without changing desired TPM2 Banks states + # sha1 = True, sha256 = False + Press Key N Times And Enter ${sha256_position} ${ARROW_DOWN} + Check TPM2 Banks State After FW Changes ${TRUE} ${FALSE} + Execute Reboot Command + Enter The TCG2 Configuration Menu + # sha1 = False, sha256 = True + Press Key N Times And Enter ${sha256_position} ${ARROW_DOWN} + Reenter Menu + Press Key N Times And Enter ${sha1_position} ${ARROW_DOWN} + Check TPM2 Banks State After FW Changes ${FALSE} ${TRUE} + Execute Reboot Command + Enter The TCG2 Configuration Menu + # Get to the starting state: sha1 = True, sha256 = True + Press Key N Times And Enter ${sha1_position} ${ARROW_DOWN} + Check TPM2 Banks State After FW Changes ${TRUE} ${TRUE} TPM004.201 Check if the ChangeEPS works (Ubuntu) [Documentation] Check if the `TPM2 ChangeEPS` setup menu option works properly. From b0de18d313daa607dd24f2d326975dc42fe931db Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Wed, 2 Apr 2025 09:53:09 +0200 Subject: [PATCH 300/416] lib/tpm.robot add: keywords for Change active PCR banks with TPM PPI (EDK2 UEFI) test case Signed-off-by: Jakub Redmerski --- lib/tpm.robot | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/lib/tpm.robot b/lib/tpm.robot index 7973b811ec..aeaf6ad72c 100644 --- a/lib/tpm.robot +++ b/lib/tpm.robot @@ -102,3 +102,25 @@ Verify Presence Of Any PCRs Via Sysfs [Documentation] Check sysfs interface for presence of any PCR ${pcr_state}= Execute Command In Terminal ls /sys/class/tpm/tpm0/pcr-sha* &>/dev/null && echo "Found PCRs" Should Contain ${pcr_state} Found PCRs + +Check TPM2 Banks State After FW Changes + [Documentation] Verifies the state of TPM Banks. Fails test if they are different than input. + [Arguments] ${sha1_desired} ${sha256_desired} + Save Changes And Reset + Read From Terminal Until Press F12 to change the boot measurements to use PCR bank(s) of the TPM + Press Key N Times 1 ${F12} + Prepare TPM Test On Ubuntu + ${sha1} ${sha256}= Check Which TPM2 Banks Are Enabled + Should Be Equal ${sha1} ${sha1_desired} + Should Be Equal ${sha256} ${sha256_desired} + +Enter The TCG2 Configuration Menu + [Documentation] Following a reboot triggered outside of this KWD, + ... enters the TCG2 Configuration menu. + ${setup_menu}= Enter Setup Menu Tianocore And Return Construction + ${device_manager_menu}= Enter Submenu From Snapshot And Return Construction + ... ${setup_menu} + ... Device Manager + Enter Submenu From Snapshot + ... ${device_manager_menu} + ... TCG2 Configuration From f3ce9d8eeca34922267d9f74ac2d28aedce1340e Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Fri, 4 Apr 2025 12:08:46 +0200 Subject: [PATCH 301/416] dasharo-security/tpm-support.robot update: change to better reboot version Signed-off-by: Jakub Redmerski --- dasharo-security/tpm-support.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index ac51c5afd5..3ef050939d 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -158,8 +158,8 @@ TPM003.101 Change active PCR banks with TPM PPI (EDK2 UEFI) ... Previous IDs: TPM003.004 Skip If not ${TPM_SUPPORTED_VERSION} == 2 TPM003.101 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPM003.101 not supported - Execute Reboot Command - Enter The TCG2 Configuration Menu + Power On + Enter The TCG Configuration Menu ${sha1_position}= Search For Option Not Visible After Entering Menu PCR Bank: SHA1 ${sha256_position}= Search For Option Not Visible After Entering Menu PCR Bank: SHA256 Reenter Menu From 4c7b741f4df6c513f089eb5583277c34130be044 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Fri, 4 Apr 2025 12:08:04 +0200 Subject: [PATCH 302/416] lib/ change: move one keyword to another resource file, add conditional for multiple tpm menus lib/tpm.robot update: documentation so it mentions both TPM versions Signed-off-by: Jakub Redmerski --- dasharo-security/tpm-support.robot | 6 +++--- lib/tpm.robot | 28 ++++++++++++---------------- lib/tpm2.robot | 11 +++++++++++ 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index 3ef050939d..dd516c630b 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -172,20 +172,20 @@ TPM003.101 Change active PCR banks with TPM PPI (EDK2 UEFI) ${tpm2_operation_menu}= Get Menu Construction ${checkpoint} 0 0 Enter Submenu From Snapshot ${tpm2_operation_menu} TCG2 LogAllDigests Save Changes And Reset - Enter The TCG2 Configuration Menu + Enter The TCG Configuration Menu # Order of checks below cannot be changed without changing desired TPM2 Banks states # sha1 = True, sha256 = False Press Key N Times And Enter ${sha256_position} ${ARROW_DOWN} Check TPM2 Banks State After FW Changes ${TRUE} ${FALSE} Execute Reboot Command - Enter The TCG2 Configuration Menu + Enter The TCG Configuration Menu # sha1 = False, sha256 = True Press Key N Times And Enter ${sha256_position} ${ARROW_DOWN} Reenter Menu Press Key N Times And Enter ${sha1_position} ${ARROW_DOWN} Check TPM2 Banks State After FW Changes ${FALSE} ${TRUE} Execute Reboot Command - Enter The TCG2 Configuration Menu + Enter The TCG Configuration Menu # Get to the starting state: sha1 = True, sha256 = True Press Key N Times And Enter ${sha1_position} ${ARROW_DOWN} Check TPM2 Banks State After FW Changes ${TRUE} ${TRUE} diff --git a/lib/tpm.robot b/lib/tpm.robot index aeaf6ad72c..f42b46e33b 100644 --- a/lib/tpm.robot +++ b/lib/tpm.robot @@ -103,24 +103,20 @@ Verify Presence Of Any PCRs Via Sysfs ${pcr_state}= Execute Command In Terminal ls /sys/class/tpm/tpm0/pcr-sha* &>/dev/null && echo "Found PCRs" Should Contain ${pcr_state} Found PCRs -Check TPM2 Banks State After FW Changes - [Documentation] Verifies the state of TPM Banks. Fails test if they are different than input. - [Arguments] ${sha1_desired} ${sha256_desired} - Save Changes And Reset - Read From Terminal Until Press F12 to change the boot measurements to use PCR bank(s) of the TPM - Press Key N Times 1 ${F12} - Prepare TPM Test On Ubuntu - ${sha1} ${sha256}= Check Which TPM2 Banks Are Enabled - Should Be Equal ${sha1} ${sha1_desired} - Should Be Equal ${sha256} ${sha256_desired} - -Enter The TCG2 Configuration Menu +Enter The TCG Configuration Menu [Documentation] Following a reboot triggered outside of this KWD, - ... enters the TCG2 Configuration menu. + ... enters the TCG or TCG2 Configuration menu. ${setup_menu}= Enter Setup Menu Tianocore And Return Construction ${device_manager_menu}= Enter Submenu From Snapshot And Return Construction ... ${setup_menu} ... Device Manager - Enter Submenu From Snapshot - ... ${device_manager_menu} - ... TCG2 Configuration + + IF 'TCG2 Configuration' in '''${device_manager_menu}''' + Enter Submenu From Snapshot + ... ${device_manager_menu} + ... TCG2 Configuration + ELSE + Enter Submenu From Snapshot + ... ${device_manager_menu} + ... TCG Configuration + END diff --git a/lib/tpm2.robot b/lib/tpm2.robot index 178165faf6..a52a2966d1 100644 --- a/lib/tpm2.robot +++ b/lib/tpm2.robot @@ -50,3 +50,14 @@ TPM2 Suite Setup ${sha1_enabled} ${sha256_enabled}= Check Which TPM2 Banks Are Enabled Set Suite Variable $SHA1_ENABLED ${sha1_enabled} Set Suite Variable $SHA256_ENABLED ${sha256_enabled} + +Check TPM2 Banks State After FW Changes + [Documentation] Verifies the state of TPM Banks. Fails test if they are different than input. + [Arguments] ${sha1_desired} ${sha256_desired} + Save Changes And Reset + Read From Terminal Until Press F12 to change the boot measurements to use PCR bank(s) of the TPM + Press Key N Times 1 ${F12} + Prepare TPM Test On Ubuntu + ${sha1} ${sha256}= Check Which TPM2 Banks Are Enabled + Should Be Equal ${sha1} ${sha1_desired} + Should Be Equal ${sha256} ${sha256_desired} From bbcab216350426552fa8646253261906348a5cc4 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Tue, 8 Apr 2025 15:42:47 +0200 Subject: [PATCH 303/416] dasharo-security/tpm-support.robot fix: change to a proper test ID in TPM003.301 Signed-off-by: Jakub Redmerski --- dasharo-security/tpm-support.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index dd516c630b..1a00e8dfc0 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -142,7 +142,7 @@ TPM002.301 Verify TPM version (Windows) ... wmic /namespace:\\\\root\\cimv2\\security\\microsofttpm path win32_tpm get * /format:textvaluelist.xsl Should Contain ${out} SpecVersion=2.0 -TPM003.003 Check TPM Physical Presence Interface (Windows) +TPM003.301 Check TPM Physical Presence Interface (Windows) [Documentation] This test aims to verify that the TPM Physical Presence ... Interface is correctly recognized by the operating system. ... Previous IDs: TPM003.003 From d2f9a850a876084ec8ae319e242a2850d8482135 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Tue, 8 Apr 2025 15:52:03 +0200 Subject: [PATCH 304/416] lib/tpm2.robot update: integrate two keywords into one Signed-off-by: Jakub Redmerski --- dasharo-security/tpm-support.robot | 11 +---------- lib/tpm2.robot | 2 +- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/dasharo-security/tpm-support.robot b/dasharo-security/tpm-support.robot index 1a00e8dfc0..be0b305264 100644 --- a/dasharo-security/tpm-support.robot +++ b/dasharo-security/tpm-support.robot @@ -244,7 +244,7 @@ TPM004.201 Check if the ChangeEPS works (Ubuntu) *** Keywords *** Prepare TPM Test On Linux - [Documentation] Run common actions required for TPM tests in Ubuntu + [Documentation] Run common actions required for TPM tests in Linux [Arguments] ${env_id}=${DEFAULT_BOOT_OS_ID} Power On Boot System Or From Connected Disk ${env_id} @@ -261,12 +261,3 @@ Check TPM Physical Presence Interface ELSE Fail Invalid expected version, please verify config END - -Prepare TPM Test On Ubuntu - [Documentation] Run common actions required for TPM tests in Ubuntu - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Get Cbmem - Verify Presence Of TPM Via Sysfs diff --git a/lib/tpm2.robot b/lib/tpm2.robot index a52a2966d1..246aebb61b 100644 --- a/lib/tpm2.robot +++ b/lib/tpm2.robot @@ -57,7 +57,7 @@ Check TPM2 Banks State After FW Changes Save Changes And Reset Read From Terminal Until Press F12 to change the boot measurements to use PCR bank(s) of the TPM Press Key N Times 1 ${F12} - Prepare TPM Test On Ubuntu + Prepare TPM Test On Linux ${sha1} ${sha256}= Check Which TPM2 Banks Are Enabled Should Be Equal ${sha1} ${sha1_desired} Should Be Equal ${sha256} ${sha256_desired} From c760dc63f88243c61be8646750c1f031e8776edc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 7 Mar 2025 10:15:09 +0100 Subject: [PATCH 305/416] scripts/lib/robot.sh: Allow no RTE_IP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- scripts/lib/robot.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/scripts/lib/robot.sh b/scripts/lib/robot.sh index 6f7b3a1205..38e913200b 100644 --- a/scripts/lib/robot.sh +++ b/scripts/lib/robot.sh @@ -84,9 +84,15 @@ execute_robot() { # Check if the required environment variables are set - check_env_variable "RTE_IP" check_env_variable "CONFIG" + # RTE_IP environment variable is not required for some platforms + if [ -n "${RTE_IP}" ]; then + rte_ip_option="-v rte_ip:${RTE_IP}" + else + fw_file_option="" + fi + # FW_FILE environment variable is optional for some tests if [ -n "${FW_FILE}" ]; then fw_file_option="-v fw_file:${FW_FILE}" @@ -148,7 +154,7 @@ execute_robot() { -r ${_report_file} \ -o ${_output_file} \ -b ${_debug_file} \ - -v rte_ip:${RTE_IP} \ + ${rte_ip_option} \ -v config:${CONFIG} \ -v logs_dir:${_logs_dir} \ ${device_ip_option} \ @@ -159,7 +165,7 @@ execute_robot() { ${_robot_args[*]} \ ${_test_name} " - #echo "$command" + echo "$command" eval "$command" done } From 742bbceea560d7f3cc350eab6d847c185c921a81 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Wed, 9 Apr 2025 12:22:24 +0200 Subject: [PATCH 306/416] scripts/lib/robot.sh: Fix incorrect variable name (#775) Signed-off-by: Sebastian Czapla --- scripts/lib/robot.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/lib/robot.sh b/scripts/lib/robot.sh index 38e913200b..645ad6560d 100644 --- a/scripts/lib/robot.sh +++ b/scripts/lib/robot.sh @@ -90,7 +90,7 @@ execute_robot() { if [ -n "${RTE_IP}" ]; then rte_ip_option="-v rte_ip:${RTE_IP}" else - fw_file_option="" + rte_ip_option="" fi # FW_FILE environment variable is optional for some tests From 79deefba60c94f88995078b27b4dd2bd01f16023 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Mon, 31 Mar 2025 20:52:48 +0200 Subject: [PATCH 307/416] platform-configs/novacustom-v560tu.robot:add config variables Signed-off-by: Wiktor Mowinski --- platform-configs/novacustom-v560tu.robot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platform-configs/novacustom-v560tu.robot b/platform-configs/novacustom-v560tu.robot index 296f0146a7..1d430ed234 100644 --- a/platform-configs/novacustom-v560tu.robot +++ b/platform-configs/novacustom-v560tu.robot @@ -28,6 +28,8 @@ ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} ${USB_STACK_SUPPORT}= ${TRUE} ${CLEVO_BATTERY_CAPACITY}= 4602000 +${LAPTOP_PLATFORM}= ${TRUE} +${BATTERY_PRESENT}= ${TRUE} # performance reference for processor ultra 5 125h ${ZIP_MULTI_COMPRESSION}= 15923 # MIPS From dfb9ebe935022e61265333399431c96134a4c422 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Tue, 8 Apr 2025 14:04:16 +0200 Subject: [PATCH 308/416] dasharo-performance/disk-io.robot: update ID Signed-off-by: Wiktor Mowinski --- dasharo-performance/disk-io.robot | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/dasharo-performance/disk-io.robot b/dasharo-performance/disk-io.robot index a48dd9f0b7..40df27889f 100644 --- a/dasharo-performance/disk-io.robot +++ b/dasharo-performance/disk-io.robot @@ -14,7 +14,7 @@ ${RESULTS_DIR_WINDOWS}= C:\fio-results *** Test Cases *** -DIO001.001 Sequential Read Performance (Ubuntu) (AC) +DIO001.201 Sequential Read Performance (Ubuntu) (AC) [Documentation] Check various scenarios of single threaded read ... performance, while connected to power supply unit. (Ubuntu) Sleep 20s @@ -29,7 +29,7 @@ DIO001.001 Sequential Read Performance (Ubuntu) (AC) Should Be True ${seq_read_queued} >= ${UBU_SEQ_READ_QUEUED}*0.85 Sequential Read Queued is below expected Should Be True ${seq_read_nonque} >= ${UBU_SEQ_READ_NONQUE}*0.85 Sequential Read Non-Queued is below expected -DIO001.002 Sequential Read Performance (Ubuntu) (Battery) +DIO001.202 Sequential Read Performance (Ubuntu) (Battery) [Documentation] Check various scenarios of single threaded read ... performance, while powered by inbuilt battery. (Ubuntu) Sleep 20s @@ -49,7 +49,7 @@ DIO001.002 Sequential Read Performance (Ubuntu) (Battery) Should Be True ${seq_read_queued} >= ${UBU_SEQ_READ_QUEUED}*0.85 Sequential Read Queued is below expected Should Be True ${seq_read_nonque} >= ${UBU_SEQ_READ_NONQUE}*0.85 Sequential Read Non-Queued is below expected -DIO002.001 Sequential Write Performance (Ubuntu) (AC) +DIO002.201 Sequential Write Performance (Ubuntu) (AC) [Documentation] Check various scenarios of single-threaded write ... performance while powered by AC adapter. (Ubuntu) Sleep 20s @@ -69,7 +69,7 @@ DIO002.001 Sequential Write Performance (Ubuntu) (AC) ... ${seq_write_nonque} >= ${UBU_SEQ_WRITE_NONQUE}*0.85 ... Sequential Write Non-Queued is below expected -DIO002.002 Sequential Write Performance (Ubuntu) (Battery) +DIO002.202 Sequential Write Performance (Ubuntu) (Battery) [Documentation] Check various scenarios of single threaded write ... performance, while powered by inbuilt battery. (Ubuntu) Sleep 20s @@ -91,7 +91,7 @@ DIO002.002 Sequential Write Performance (Ubuntu) (Battery) ... ${seq_write_nonque} >= ${UBU_SEQ_WRITE_NONQUE}*0.85 ... Sequential Write Non-Queued is below expected -DIO003.001 Random Read Performance (Ubuntu) (AC) +DIO003.201 Random Read Performance (Ubuntu) (AC) [Documentation] Check various scenarios of random read performance ... while connected to power supply unit. (Ubuntu) Sleep 20s @@ -111,7 +111,7 @@ DIO003.001 Random Read Performance (Ubuntu) (AC) ... ${rand_read_nonque} >= ${UBU_RAND_READ_NONQUE}*0.85 ... Random Read BW Non-Queued is below expected -DIO003.002 Random Read Performance (Ubuntu) (Battery) +DIO003.202 Random Read Performance (Ubuntu) (Battery) [Documentation] Check various scenarios of random read performance ... while running on battery power. (Ubuntu) Sleep 20s @@ -133,7 +133,7 @@ DIO003.002 Random Read Performance (Ubuntu) (Battery) ... ${rand_read_nonque} >= ${UBU_RAND_READ_NONQUE}*0.85 ... Random Read BW Non-Queued is below expected -DIO004.001 Random Write Performance (Ubuntu) (AC) +DIO004.201 Random Write Performance (Ubuntu) (AC) [Documentation] Check various scenarios of random write performance ... while connected to power supply unit. (Ubuntu) Sleep 20s @@ -153,7 +153,7 @@ DIO004.001 Random Write Performance (Ubuntu) (AC) ... ${rand_write_nonque} >= ${UBU_RAND_WRITE_NONQUE}*0.85 ... Random Write BW Non-Queued is below expected -DIO004.002 Random Write Performance (Ubuntu) (Battery) +DIO004.202 Random Write Performance (Ubuntu) (Battery) [Documentation] Check various scenarios of sequential write performance ... while connected to power supply unit. (Ubuntu) Sleep 20s From 6406d774e231dab9879024628f837314b8c01da5 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Tue, 8 Apr 2025 17:35:08 +0200 Subject: [PATCH 309/416] platform-configs/novacustom-v5*:clear configs Signed-off-by: Wiktor Mowinski --- platform-configs/novacustom-v540tnd.robot | 2 -- platform-configs/novacustom-v560tnd.robot | 2 -- platform-configs/novacustom-v560tu.robot | 2 -- 3 files changed, 6 deletions(-) diff --git a/platform-configs/novacustom-v540tnd.robot b/platform-configs/novacustom-v540tnd.robot index a9fba21b10..820d47905c 100644 --- a/platform-configs/novacustom-v540tnd.robot +++ b/platform-configs/novacustom-v540tnd.robot @@ -39,8 +39,6 @@ ${VERIFIED_BOOT_SUPPORT}= ${TRUE} ${TPM_SUPPORTED_VERSION}= 2 ${TPM_EXPECTED_CHIP}= SLB9672 -${LAPTOP_PLATFORM}= ${TRUE} -${BATTERY_PRESENT}= ${TRUE} ${GPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} # performance diff --git a/platform-configs/novacustom-v560tnd.robot b/platform-configs/novacustom-v560tnd.robot index 1ef31dba8a..6ee4eb043e 100644 --- a/platform-configs/novacustom-v560tnd.robot +++ b/platform-configs/novacustom-v560tnd.robot @@ -28,8 +28,6 @@ ${POWER_CTRL}= none ${DGPU_ONLY_SUPPORT}= ${TRUE} -${LAPTOP_PLATFORM}= ${TRUE} -${BATTERY_PRESENT}= ${TRUE} ${DISK_IO_PERFORMANCE_TESTS}= ${TRUE} # performance diff --git a/platform-configs/novacustom-v560tu.robot b/platform-configs/novacustom-v560tu.robot index 1d430ed234..296f0146a7 100644 --- a/platform-configs/novacustom-v560tu.robot +++ b/platform-configs/novacustom-v560tu.robot @@ -28,8 +28,6 @@ ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} ${USB_STACK_SUPPORT}= ${TRUE} ${CLEVO_BATTERY_CAPACITY}= 4602000 -${LAPTOP_PLATFORM}= ${TRUE} -${BATTERY_PRESENT}= ${TRUE} # performance reference for processor ultra 5 125h ${ZIP_MULTI_COMPRESSION}= 15923 # MIPS From c724de866901d09e06486a3852fa4e7a14dc23f1 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Tue, 8 Apr 2025 17:35:43 +0200 Subject: [PATCH 310/416] dasharo-performance/disk-io.robot: add check power Signed-off-by: Wiktor Mowinski --- dasharo-performance/disk-io.robot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dasharo-performance/disk-io.robot b/dasharo-performance/disk-io.robot index 40df27889f..b427d8c3e1 100644 --- a/dasharo-performance/disk-io.robot +++ b/dasharo-performance/disk-io.robot @@ -1,6 +1,7 @@ *** Settings *** Library Telnet timeout=20 seconds connection_timeout=120 seconds Library SSHLibrary timeout=90 seconds +Resource ../lib/performance.robot Resource ../lib/performance/common.robot Suite Setup Disk IO Suite Setup @@ -285,6 +286,7 @@ Disk IO Suite Setup Exit From Root User Execute Linux Command mkdir ~/${RESULTS_DIR_UBUNTU} END + Check Power Supply # IF ${TESTS_IN_WINDOWS_SUPPORT} # Power Cycle Into Windows # Log Hello From f84159fd6cd6ae8d0baed15ee111e72a0b9c62a4 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Tue, 8 Apr 2025 17:36:24 +0200 Subject: [PATCH 311/416] lib/performance/common.robot: remove redundant kwds Signed-off-by: Wiktor Mowinski --- lib/performance/common.robot | 98 ------------------------------------ 1 file changed, 98 deletions(-) diff --git a/lib/performance/common.robot b/lib/performance/common.robot index 7aed56b5d5..bd069e3e43 100644 --- a/lib/performance/common.robot +++ b/lib/performance/common.robot @@ -37,101 +37,3 @@ Power Cycle Into Windows Power Cycle Into Firmware Setup Power On Enter Setup Menu Tianocore - -Detect Or Install Phoronix Test Suite On Ubuntu - [Documentation] Detects and installs PTS - ${out}= Execute Command In Terminal test -f /usr/bin/phoronix-test-suite && echo "PTS Installed" - IF '${out}' != 'PTS Installed' - Switch To Root User - Detect Or Install Package php-cli - Execute Command In Terminal wget ${PTS_LATEST_URL} 60 - Execute Command In Terminal unzip -q -o v10.8.4.zip 120 - ${out}= Execute Command In Terminal - ... cd phoronix-test-suite-10.8.4 && ./install-sh && cd .. 60 - Should Contain ${out} Phoronix Test Suite Installation Completed - Execute Command In Terminal - ... cd .. && rm v10.8.4.zip && rm -r phoronix-test-suite-10.8.4 - Exit From Root User - END - -Detect Or Install Phoronix Test Suite On Windows - [Documentation] Detects and installs PTS - ${out}= Execute Command In Terminal Test-Path -Path C:\phoronix-test-suite - IF '${out}' != 'True' - Execute Command In Terminal - ... Invoke-WebRequest -Uri ${PTS_LATEST_URL} -OutFile ${PTS_DOWNLOAD_PATH} 60 - Execute Command In Terminal - ... Expand-Archive -Path ${PTS_DOWNLOAD_PATH} -DestinationPath ${PTS_EXTRACT_PATH} -Force 60 - Execute Command In Terminal - ... Start-Process -FilePath ${PTS_EXTRACT_PATH}\install.bat -NoNewWindow -Wait 300 - Execute Command In Terminal - ... Remove-Item -Path ${PTS_DOWNLOAD_PATH} -Force - Execute Command In Terminal - ... Remove-Item -Path ${PTS_EXTRACT_PATH} -Force - END - -Check Power Supply - ${laptop_platform}= Check The Platform Is A Laptop - Set Suite Variable ${LAPTOP_PLATFORM} ${laptop_platform} - IF ${LAPTOP_PLATFORM} - IF ${TESTS_IN_UBUNTU_SUPPORT} - ${bat0_present} ${ac_online} ${usb_pd_online}= Check Power Supply On Linux - ELSE IF ${TESTS_IN_WINDOWS_SUPPORT} - ${bat0_present} ${ac_online} ${usb_pd_online}= Check Power Supply On Windows - ELSE IF ${HEADS_PAYLOAD_SUPPORT} - Log Check Power Supply on Heads not implemented yet ERROR - ELSE - Fail Fail: Check Power Supply is not implemented enough - END - Set Suite Variable ${BATTERY_PRESENT} ${bat0_present} - Set Suite Variable ${AC_CONNECTED} ${ac_online} - Set Suite Variable ${USB-PD_CONNECTED} ${usb_pd_online} - END - -Check The Platform Is A Laptop - ${laptop_platform}= Run Keyword And Return Status Should Contain Any ${PLATFORM} novacustom tuxedo - RETURN ${laptop_platform} - -Check Power Supply On Linux - Power On - Boot System Or From Connected Disk ubuntu - Login To Linux - ${bat0_present_raw}= Execute Command In Terminal cat /sys/class/power_supply/BAT0/present - ${bat0_present}= Run Keyword And Return Status Should Be Equal ${bat0_present_raw} 1 - - ${ac_online_raw}= Execute Command In Terminal cat /sys/class/power_supply/AC/online - Should Not Contain ${ac_online_raw} No such file or directory - ${ac_online}= Run Keyword And Return Status Should Be Equal ${ac_online_raw} 1 - - # FIXME: USB-PD detection is not yet possible. - ${usb_pd_online_raw}= Execute Command In Terminal cat /sys/class/power_supply/USB-PD/online - Log 'cat /sys/class/power_supply/USB-PD/online' not implemented yet, if implemented, remove # WARN - # Should Not Contain ${usb_pd_online_raw} No such file or directory - ${usb_pd_online}= Run Keyword And Return Status Should Be Equal ${usb_pd_online_raw} 1 - - RETURN ${bat0_present} ${ac_online} ${usb_pd_online} - -Check Power Supply On Windows - Power On - Login To Windows - ${raw_output}= Execute Command In Terminal (Get-WmiObject Win32_Battery).BatteryStatus - ${bat0_present}= Run Keyword And Return Status Should Not Be Empty ${raw_output} - - # ${ac_online_raw}= Execute Command In Terminal (Get-WmiObject Win32_Battery).BatteryStatus - ${ac_online_empty}= Run Keyword And Return Status Should Be Empty ${raw_output} - ${ac_online_equal_2}= Run Keyword And Return Status Should Be Equal ${raw_output} 2 - # IF ${ac_online_raw_empty} or ${ac_online_raw_equal_2} - # Set Local Variable ${AC_ONLINE}= ${TRUE} - # END - ${ac_online}= Set Variable If - ... ${ac_online_empty} ${TRUE} - ... ${ac_online_equal_2} ${TRUE} - - # FIXME: USB-PD detection is not yet possible. - Log Check power supply USB-PD not implemented yet WARN - ${usb_pd_online}= Run Keyword And Return Status - ... Should Be Equal - ... ${raw_output} - ... insert the correct USB-PD detection method here - - RETURN ${bat0_present} ${ac_online} ${usb_pd_online} From 1c7c62cf7c636caec45b4215c0e1243f3170420b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 28 Mar 2025 18:37:11 +0100 Subject: [PATCH 312/416] os-specific-tasks/202.yaml: Downgrade kernel from 6.13 on Fedora MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- os-config/ansible/os-specific-tasks/202.yaml | 32 ++++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/os-config/ansible/os-specific-tasks/202.yaml b/os-config/ansible/os-specific-tasks/202.yaml index c080f9df1e..4703517709 100644 --- a/os-config/ansible/os-specific-tasks/202.yaml +++ b/os-config/ansible/os-specific-tasks/202.yaml @@ -3,25 +3,25 @@ # SPDX-License-Identifier: Apache-2.0 # acpi_call package is not available in fedora repos -# - name: "Download acpi_call rpm package" -# ansible.builtin.get_url: -# url: https://github.com/MiMillieuh/acpi_call-fedora/releases/download/1.2.2-1/acpi_call-1.2.2-1.x86_64.rpm -# dest: /tmp/acpi_call.rpm +- name: "Download acpi_call rpm package" + ansible.builtin.get_url: + url: https://github.com/MiMillieuh/acpi_call-fedora/releases/download/1.2.2-1/acpi_call-1.2.2-1.x86_64.rpm + dest: /tmp/acpi_call.rpm -# - name: "Install acpi_call rpm package" -# ansible.builtin.dnf: -# name: /tmp/acpi_call.rpm -# state: present -# disable_gpg_check: true +- name: "Install acpi_call rpm package" + ansible.builtin.dnf: + name: /tmp/acpi_call.rpm + state: present + disable_gpg_check: true -# # spi_intel_pci module conflicts with flashrom -# - name: Blacklist spi_intel_pci module -# ansible.builtin.copy: -# dest: /etc/modprobe.d/osfv-blacklist.conf -# content: blacklist spi_intel_pci +# spi_intel_pci module conflicts with flashrom +- name: Blacklist spi_intel_pci module + ansible.builtin.copy: + dest: /etc/modprobe.d/osfv-blacklist.conf + content: blacklist spi_intel_pci -# - name: Unload spi_intel_pci module -# ansible.builtin.command: modprobe -r spi_intel_pci +- name: Unload spi_intel_pci module + ansible.builtin.command: modprobe -r spi_intel_pci # The WiFi/Bt cards of MTL laptops don't work on Fedora 41 with 6.13 kernel - name: Get default kernel From f540eecd03b0c548f7b6c1151f1fdeec9f92a705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Sat, 29 Mar 2025 08:31:39 +0100 Subject: [PATCH 313/416] usb-camera.robot: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/usb-camera.robot | 70 +++++++++++++++++++++----- 1 file changed, 57 insertions(+), 13 deletions(-) diff --git a/dasharo-compatibility/usb-camera.robot b/dasharo-compatibility/usb-camera.robot index 856e7dd4e1..9f4a055a1d 100644 --- a/dasharo-compatibility/usb-camera.robot +++ b/dasharo-compatibility/usb-camera.robot @@ -25,45 +25,89 @@ Suite Teardown Run Keyword *** Test Cases *** -CAM001.001 Integrated webcam (Ubuntu) +CAM001.201 Integrated webcam (Ubuntu) [Documentation] Check whether the integrated USB camera is initialized ... correctly and can be accessed from the Linux OS. Assumption: No ... external cameras connected. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CAM001.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CAM001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CAM001.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Integrated Webcam Linux + Exit From Root User - Device Detection In Linux Camera - ${out0}= Execute Linux Command ffprobe /dev/video0 - Should Contain ${out0} Input #0, video4linux2,v4l2, from '/dev/video0': - Should Contain - ... ${out0} - ... Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422 +CAM001.202 Integrated webcam (Fedora) + [Documentation] Check whether the integrated USB camera is initialized + ... correctly and can be accessed from the Linux OS. Assumption: No + ... external cameras connected. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CAM001.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Integrated Webcam Linux Exit From Root User -CAM001.002 Integrated webcam (Windows) +CAM001.301 Integrated webcam (Windows) [Documentation] Check whether the integrated USB camera is initialized ... correctly and can be accessed from the Windows OS. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CAM001.002 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CAM001.301 not supported Power On Login To Windows ${out}= Get USB Devices Windows Should Contain ${out} Chicony USB2.0 Camera -CAM002.001 Integrated IR Camera (Ubuntu) +CAM002.201 Integrated IR Camera (Ubuntu) [Documentation] Check whether the integrated infrared camera is ... initialized correctly and can be accessed from the Linux OS. ... Assumption: No external camera connected. Camera exposes separate ... devnodes for visible-spectrum and IR modes, in that order. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CAM002.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CAM002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CAM002.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Integrated IR Camera Linux + Exit From Root User +CAM002.202 Integrated IR Camera (Fedora) + [Documentation] Check whether the integrated infrared camera is + ... initialized correctly and can be accessed from the Linux OS. + ... Assumption: No external camera connected. Camera exposes separate + ... devnodes for visible-spectrum and IR modes, in that order. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CAM002.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Integrated IR Camera Linux + Exit From Root User + + +*** Keywords *** +Integrated Webcam Linux + [Documentation] Check whether the integrated USB camera is initialized + ... correctly and can be accessed from the Linux OS. Assumption: No + ... external cameras connected. + [Tags] robot:private + Device Detection In Linux Camera + ${out0}= Execute Linux Command ffprobe /dev/video0 + Should Contain ${out0} Input #0, video4linux2,v4l2, from '/dev/video0': + Should Contain + ... ${out0} + ... Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422 + +Integrated IR Camera Linux + [Documentation] Check whether the integrated infrared camera is + ... initialized correctly and can be accessed from the Linux OS. + ... Assumption: No external camera connected. Camera exposes separate + ... devnodes for visible-spectrum and IR modes, in that order. + [Tags] robot:private Device Detection In Linux Camera ${out0}= Execute Linux Command ffprobe /dev/video2 Should Contain ... ${out0} ... Stream #0:0: Video: rawvideo (Y800 / 0x30303859), gray - Exit From Root User From 14d1bdca4a5af52ccfe4ffaf541a53bb6299aed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Sat, 29 Mar 2025 10:24:15 +0100 Subject: [PATCH 314/416] ec-and-super-IO: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/ec-and-super-IO.robot | 356 +++++++++++++++----- 1 file changed, 263 insertions(+), 93 deletions(-) diff --git a/dasharo-compatibility/ec-and-super-IO.robot b/dasharo-compatibility/ec-and-super-IO.robot index 89c2d75746..7362f17956 100644 --- a/dasharo-compatibility/ec-and-super-IO.robot +++ b/dasharo-compatibility/ec-and-super-IO.robot @@ -25,65 +25,103 @@ Suite Teardown Run Keyword *** Test Cases *** -ECR001.001 Battery monitoring - charge level in OS (Ubuntu) +ECR001.201 Battery monitoring - charge level in OS (Ubuntu) [Documentation] Check whether the battery charge level can be read ... (in mAh) in Linux OS. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR001.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR001.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR001.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Turn On ACPI CALL Module In Linux + Check Charge Level In Linux + Exit From Root User +ECR001.202 Battery monitoring - charge level in OS (Fedora) + [Documentation] Check whether the battery charge level can be read + ... (in mAh) in Linux OS. + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR001.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User Turn On ACPI CALL Module In Linux Check Charge Level In Linux Exit From Root User -ECR001.002 Battery monitoring - charge level in OS (Windows) +ECR001.301 Battery monitoring - charge level in OS (Windows) [Documentation] Check whether battery charge level can be read in ... Windows OS. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR001.002 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR001.301 not supported Power On Login To Windows ${out}= Get Battery Power Level Windows Should Be True ${out} > 0 and ${out} < 101 -ECR002.001 Battery monitoring - charging state in OS (Ubuntu) +ECR002.201 Battery monitoring - charging state in OS (Ubuntu) [Documentation] Check whether the battery state can be read in Linux OS. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR002.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR002.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR002.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Turn On ACPI CALL Module In Linux + Check Charging State In Linux + Exit From Root User +ECR002.202 Battery monitoring - charging state in OS (Fedora) + [Documentation] Check whether the battery state can be read in Linux OS. + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR002.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User Turn On ACPI CALL Module In Linux Check Charging State In Linux Exit From Root User -ECR002.002 Battery monitoring - charging state in OS (Windows) +ECR002.301 Battery monitoring - charging state in OS (Windows) [Documentation] Check whether the battery state can be read in Windows ... OS. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR002.002 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR002.301 not supported Power On Login To Windows Check If Battery Is Charging Windows -ECR003.001 Touchpad in OS - (Ubuntu) +ECR003.201 Touchpad in OS - (Ubuntu) [Documentation] Check whether touchpad is visible in Linux OS. ... Touchpad steering and effect detection must be checked ... manually. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR003.001 not supported - + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR003.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR003.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Turn On ACPI CALL Module In Linux + Device Detection In Linux Touchpad + Exit From Root User +ECR003.202 Touchpad in OS - (Fedora) + [Documentation] Check whether touchpad is visible in Linux OS. + ... Touchpad steering and effect detection must be checked + ... manually. + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR002.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User Turn On ACPI CALL Module In Linux Device Detection In Linux Touchpad Exit From Root User -ECR003.002 Touchpad in OS - (Windows) +ECR003.301 Touchpad in OS - (Windows) [Documentation] Check whether touchpad is visible in Windows OS. ... Touchpad steering and effect detection must be checked ... manually. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR003.002 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR003.301 not supported Power On Login To Windows ${out}= Get Pointing Devices Windows @@ -127,87 +165,104 @@ ECR003.002 Touchpad in OS - (Windows) # No Operation # # TODO: Pi-KVM necessary -ECR014.001 Keyboard (function key: brightness down) in OS (Ubuntu) +ECR014.201 Keyboard (function key: brightness down) in OS (Ubuntu) [Documentation] Check whether function key: brightness down works in ... Linux OS. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR015.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR014.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR0014.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Keyboard Function Key Brightness Down In Linux + Exit From Root User - Turn On ACPI CALL Module In Linux - ${max_brightness}= Get Maximum Brightness In Linux - Set Brightness In Linux ${max_brightness} - ${brightness1}= Get Current Brightness In Linux - Brightness Down Button In Linux - ${brightness2}= Get Current Brightness In Linux - Should Be True ${brightness2} < ${brightness1} +ECR014.202 Keyboard (function key: brightness down) in OS (Fedora) + [Documentation] Check whether function key: brightness down works in + ... Linux OS. + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0014.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Keyboard Function Key Brightness Down In Linux Exit From Root User -ECR015.001 Keyboard (function key: brightness up) in OS (Ubuntu) +ECR015.201 Keyboard (function key: brightness up) in OS (Ubuntu) [Documentation] Check whether function key: brightness up works in ... Linux OS. - IF not ${EC_AND_SUPER_IO_SUPPORT} SKIP ECR015.001 not supported - IF not ${TESTS_IN_UBUNTU_SUPPORT} SKIP ECR015.001 not supported + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR015.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR015.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR0015.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Keyboard Function Key Brightness Up In Linux + Exit From Root User - Turn On ACPI CALL Module In Linux - Set Brightness In Linux 0 - ${brightness1}= Get Current Brightness In Linux - Brightness Up Button In Linux - ${brightness2}= Get Current Brightness In Linux - Should Be True ${brightness2} > ${brightness1} +ECR015.202 Keyboard (function key: brightness up) in OS (Fedora) + [Documentation] Check whether function key: brightness up works in + ... Linux OS. + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR015.202 not supported + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0015.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Keyboard Function Key Brightness Up In Linux Exit From Root User -ECR016.001 Keyboard (function key: camera on/off) in OS (Ubuntu) +ECR016.201 Keyboard (function key: camera on/off) in OS (Ubuntu) [Documentation] Check whether the camera on/off hotkey works correctly. - IF not ${EC_AND_SUPER_IO_SUPPORT} SKIP ECR016.001 not supported - IF not ${USB_CAMERA_DETECTION_SUPPORT} - SKIP ECR016.001 not supported - END - IF not ${TESTS_IN_UBUNTU_SUPPORT} SKIP ECR016.001 not supported + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR016.201 not supported + Skip If not ${USB_CAMERA_DETECTION_SUPPORT} ECR016.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR016.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR0016.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Keyboard Function Key Camera OnOff In Linux + Exit From Root User - Turn On ACPI CALL Module In Linux - ${out}= List Devices In Linux usb - Should Contain Any ${out} Camera BisonCam - Toggle Camera In Linux - ${out}= List Devices In Linux usb - Should Not Contain Any ${out} Camera BisonCam - Toggle Camera In Linux - ${out}= List Devices In Linux usb - Should Contain Any ${out} Camera BisonCam +ECR016.202 Keyboard (function key: camera on/off) in OS (Fedora) + [Documentation] Check whether the camera on/off hotkey works correctly. + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR016.202 not supported + Skip If not ${USB_CAMERA_DETECTION_SUPPORT} ECR016.202 not supported + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0016.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Keyboard Function Key Camera OnOff In Linux Exit From Root User -ECR017.001 Keyboard (function key: flight mode) in OS (Ubuntu) +ECR017.201 Keyboard (function key: flight mode) in OS (Ubuntu) [Documentation] Check whether function key: flight mode works in ... Linux OS. - IF not ${EC_AND_SUPER_IO_SUPPORT} SKIP ECR017.001 not supported - IF not ${TESTS_IN_UBUNTU_SUPPORT} SKIP ECR017.001 not supported - IF not ${WIRELESS_CARD_SUPPORT} SKIP ECR017.001 not supported + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR017.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR017.201 not supported + Skip If not ${WIRELESS_CARD_SUPPORT} ECR017.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR0017.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Keyboard Function Key Flight Mode In Linux + Exit From Root User - Turn On ACPI CALL Module In Linux - ${wifi_status}= Get WiFi Block Status - ${bt_status}= Get Bluetooth Block Status - Should Be True ${wifi_status} == False - Should Be True ${bt_status} == False - Toggle Flight Mode In Linux - ${wifi_status}= Get WiFi Block Status - ${bt_status}= Get Bluetooth Block Status - Should Be True ${wifi_status} == True - Should Be True ${bt_status} == True - Toggle Flight Mode In Linux - ${wifi_status}= Get WiFi Block Status - ${bt_status}= Get Bluetooth Block Status - Should Be True ${wifi_status} == False - Should Be True ${bt_status} == False +ECR017.202 Keyboard (function key: flight mode) in OS (Fedora) + [Documentation] Check whether function key: flight mode works in + ... Linux OS. + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR017.202 not supported + Skip If not ${WIRELESS_CARD_SUPPORT} ECR017.202 not supported + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0017.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Keyboard Function Key Flight Mode In Linux Exit From Root User # ECR018.001 Keyboard (function key: sleep) in OS (Ubuntu) @@ -222,55 +277,85 @@ ECR017.001 Keyboard (function key: flight mode) in OS (Ubuntu) # Wake from sleep mode in Linux # Exit from root user -ECR019.001 Buttons (button: power) in OS (Ubuntu) +ECR019.201 Buttons (button: power) in OS (Ubuntu) [Documentation] Check whether button: power is detected in Linux OS. - IF not ${EC_AND_SUPER_IO_SUPPORT} SKIP ECR019.001 not supported - IF not ${TESTS_IN_UBUNTU_SUPPORT} SKIP ECR019.001 not supported + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR019.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR019.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR0019.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Turn On ACPI CALL Module In Linux + Device Detection In Linux Power + Exit From Root User +ECR019.202 Buttons (button: power) in OS (Fedora) + [Documentation] Check whether button: power is detected in Linux OS. + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR019.202 not supported + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0019.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User Turn On ACPI CALL Module In Linux Device Detection In Linux Power Exit From Root User -ECR020.001 Charging until 98% level in OS (Ubuntu) +ECR020.201 Charging until 98% level in OS (Ubuntu) [Documentation] Check whether the DUT stops charging the battery when the ... 98% threshold is reached. - Skip If '${POWER_CTRL}' != 'sonoff' ECR020.001 not supported - IF not ${EC_AND_SUPER_IO_SUPPORT} SKIP ECR020.001 not supported - IF not ${TESTS_IN_UBUNTU_SUPPORT} SKIP ECR020.001 not supported + Skip If '${POWER_CTRL}' != 'sonoff' ECR020.201 not supported + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR020.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR020.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR0020.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - Sonoff On - Charge Battery Until Target Level In Linux 98 - Sonoff Off + Charging Until 98% Level In Linux Check Charging State Not Charging In Linux -ECR021.001 Not charging between 95% and 98% in OS (Ubuntu) +ECR020.202 Charging until 98% level in OS (Fedora) + [Documentation] Check whether the DUT stops charging the battery when the + ... 98% threshold is reached. + Skip If '${POWER_CTRL}' != 'sonoff' ECR020.202 not supported + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR020.202 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR020.202 not supported + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0020.201 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Charging Until 98% Level In Linux + Check Charging State Not Charging In Linux + +ECR021.201 Not charging between 95% and 98% in OS (Ubuntu) [Documentation] Check whether the DUT does not charge the battery when ... the charge level is between 95% and 98%. - Skip If '${POWER_CTRL}' != 'sonoff' ECR021.001 not supported - IF not ${EC_AND_SUPER_IO_SUPPORT} SKIP ECR021.001 not supported - IF not ${TESTS_IN_UBUNTU_SUPPORT} SKIP ECR021.001 not supported + Skip If '${POWER_CTRL}' != 'sonoff' ECR021.201 not supported + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR021.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR021.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR0021.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - ${percentage}= Check Battery Percentage In Linux - IF ${percentage} < 95 - Sonoff On - Charge Battery Until Target Level In Linux 96 - Sonoff Off - Sleep 5 - Sonoff On - Check Charging State Not Charging In Linux - ELSE - Sonoff Off - Sleep 5 - Sonoff On - Check Charging State Not Charging In Linux - END + Not Charging Between 95% And 98% In Linux + Exit From Root User + +ECR021.202 Not charging between 95% and 98% in OS (Fedora) + [Documentation] Check whether the DUT does not charge the battery when + ... the charge level is between 95% and 98%. + Skip If '${POWER_CTRL}' != 'sonoff' ECR021.202 not supported + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR021.202 not supported + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0021.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Not Charging Between 95% And 98% In Linux + Exit From Root User ECR022.001 EC sync update with power adapter connected works correctly [Documentation] This test aims to verify whether coreboot update @@ -375,3 +460,88 @@ ECR023.001 EC sync doesn't update with power adapter disconnected ... ${FW_NO_EC_SYNC_VERSION} Check EC Firmware Version ... EXPECTED_VERSION=${EC_NO_SYNC_VERSION} TOOL=dasharo_ectool + + +*** Keywords *** +Keyboard Function Key Brightness Down In Linux + [Documentation] Check whether function key: brightness down works in + ... Linux OS. + [Tags] robot:private + Turn On ACPI CALL Module In Linux + ${max_brightness}= Get Maximum Brightness In Linux + Set Brightness In Linux ${max_brightness} + ${brightness1}= Get Current Brightness In Linux + Brightness Down Button In Linux + ${brightness2}= Get Current Brightness In Linux + Should Be True ${brightness2} < ${brightness1} + +Keyboard Function Key Brightness Up In Linux + [Documentation] Check whether function key: brightness up works in + ... Linux OS. + [Tags] robot:private + Turn On ACPI CALL Module In Linux + Set Brightness In Linux 0 + ${brightness1}= Get Current Brightness In Linux + Brightness Up Button In Linux + ${brightness2}= Get Current Brightness In Linux + Should Be True ${brightness2} > ${brightness1} + Exit From Root User + +Keyboard Function Key Camera OnOff In Linux + [Documentation] Check whether the camera on/off hotkey works correctly. + [Tags] robot:private + Turn On ACPI CALL Module In Linux + ${out}= List Devices In Linux usb + Should Contain Any ${out} Camera BisonCam + Toggle Camera In Linux + ${out}= List Devices In Linux usb + Should Not Contain Any ${out} Camera BisonCam + Toggle Camera In Linux + ${out}= List Devices In Linux usb + Should Contain Any ${out} Camera BisonCam + +Keyboard Function Key Flight Mode In Linux + [Documentation] Check whether function key: flight mode works in + ... Linux OS. + [Tags] robot:private + Turn On ACPI CALL Module In Linux + ${wifi_status}= Get WiFi Block Status + ${bt_status}= Get Bluetooth Block Status + Should Be True ${wifi_status} == False + Should Be True ${bt_status} == False + Toggle Flight Mode In Linux + ${wifi_status}= Get WiFi Block Status + ${bt_status}= Get Bluetooth Block Status + Should Be True ${wifi_status} == True + Should Be True ${bt_status} == True + Toggle Flight Mode In Linux + ${wifi_status}= Get WiFi Block Status + ${bt_status}= Get Bluetooth Block Status + Should Be True ${wifi_status} == False + Should Be True ${bt_status} == False + +Charging Until 98% Level In Linux + [Documentation] Check whether the DUT stops charging the battery when the + ... 98% threshold is reached. + Sonoff On + Charge Battery Until Target Level In Linux 98 + Sonoff Off + Check Charging State Not Charging In Linux + +Not Charging Between 95% And 98% In Linux + [Documentation] Check whether the DUT does not charge the battery when + ... the charge level is between 95% and 98%. + ${percentage}= Check Battery Percentage In Linux + IF ${percentage} < 95 + Sonoff On + Charge Battery Until Target Level In Linux 96 + Sonoff Off + Sleep 5 + Sonoff On + Check Charging State Not Charging In Linux + ELSE + Sonoff Off + Sleep 5 + Sonoff On + Check Charging State Not Charging In Linux + END From b3a52153d46bc2a6f97655b0d83ef8b85940219d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Sat, 29 Mar 2025 10:29:15 +0100 Subject: [PATCH 315/416] nvidia.robot: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/nvidia.robot | 37 +++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/dasharo-compatibility/nvidia.robot b/dasharo-compatibility/nvidia.robot index 5de15a0f21..1e48ec988f 100644 --- a/dasharo-compatibility/nvidia.robot +++ b/dasharo-compatibility/nvidia.robot @@ -25,34 +25,59 @@ Suite Teardown Run Keyword *** Test Cases *** -NVI001.001 NVIDIA Graphics detect (Ubuntu) +NVI001.201 NVIDIA Graphics detect (Ubuntu) [Documentation] Check whether the NVIDIA graphics card is initialized ... correctly and can be detected by the Linux OS. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NVI001.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NVI001.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} NVI001.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + ${out}= Execute Linux Command lspci | grep -i nvidia | cat + Should Contain Any ${out} 3D controller: NVIDIA Corporation VGA compatible controller: NVIDIA Corporation + Exit From Root User +NVI001.202 NVIDIA Graphics detect (Fedora) + [Documentation] Check whether the NVIDIA graphics card is initialized + ... correctly and can be detected by the Linux OS. + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} NVI001.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User ${out}= Execute Linux Command lspci | grep -i nvidia | cat Should Contain Any ${out} 3D controller: NVIDIA Corporation VGA compatible controller: NVIDIA Corporation Exit From Root User -NVI001.002 NVIDIA Graphics detect (Windows) +NVI001.301 NVIDIA Graphics detect (Windows) [Documentation] Check whether the NVIDIA graphics card is initialized ... correctly and can be detected by the Windows 11. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} NVI001.002 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} NVI001.301 not supported Power On Login To Windows ${out}= Get Video Controllers Windows Should Contain ${out} NVIDIA GeForce -NVI002.001 NVIDIA Graphics power management (Ubuntu) +NVI002.201 NVIDIA Graphics power management (Ubuntu) [Documentation] Check whether the NVIDIA graphics power management is ... functional and the card powers on only while it's used. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NVI002.001 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NVI002.201 not supported + Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} NVI002.201 not supported Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Check NVIDIA Power Management In Linux + Exit From Root User +NVI002.202 NVIDIA Graphics power management (Fedora) + [Documentation] Check whether the NVIDIA graphics power management is + ... functional and the card powers on only while it's used. + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} NVI001.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User Check NVIDIA Power Management In Linux Exit From Root User From 753134a67ca238535a5016d290c04db85481d318 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 08:38:27 +0200 Subject: [PATCH 316/416] ansible/linux-packages-playbook: Disable suspend and lock on linux MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- os-config/ansible/linux-packages-playbook.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/os-config/ansible/linux-packages-playbook.yaml b/os-config/ansible/linux-packages-playbook.yaml index bcf09e3937..2fc4bfc580 100644 --- a/os-config/ansible/linux-packages-playbook.yaml +++ b/os-config/ansible/linux-packages-playbook.yaml @@ -37,8 +37,14 @@ - src: "./../../osfv-test-data/coreboot-tools/cbmem" - src: "./../../osfv-test-data/coreboot-tools/cbfstool" - - name: Gnome turn off automatic suspend + - name: Gnome turn off automatic suspend on AC ansible.builtin.command: gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0 + - name: Gnome turn off automatic suspend on battery + ansible.builtin.command: gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 0 + - name: Gnome turn off automatic screen lock + ansible.builtin.command: gsettings set org.gnome.desktop.session idle-delay 0 + - name: Systemd turn off suspend + ansible.builtin.command: systemctl mask suspend.target - name: OS specific tasks hosts: host From e7eac99db9e68b31e3cc6ac40f13322de90d601c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 08:38:54 +0200 Subject: [PATCH 317/416] os-specific-tasks/202: Load acpi_call module automatically MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- os-config/ansible/os-specific-tasks/202.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/os-config/ansible/os-specific-tasks/202.yaml b/os-config/ansible/os-specific-tasks/202.yaml index 4703517709..726811d464 100644 --- a/os-config/ansible/os-specific-tasks/202.yaml +++ b/os-config/ansible/os-specific-tasks/202.yaml @@ -14,6 +14,11 @@ state: present disable_gpg_check: true +- name: "Autoload acpi_call module" + ansible.builtin.copy: + dest: /etc/modules-load.d/acpi_call.conf + content: acpi_call + # spi_intel_pci module conflicts with flashrom - name: Blacklist spi_intel_pci module ansible.builtin.copy: From 42ed0ccec5362f5b472995d5faf07b66f0a6813a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 08:41:52 +0200 Subject: [PATCH 318/416] dasharo-compatibility/ec-and-super-IO: Reorder according to OS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/ec-and-super-IO.robot | 276 ++++++++++---------- 1 file changed, 139 insertions(+), 137 deletions(-) diff --git a/dasharo-compatibility/ec-and-super-IO.robot b/dasharo-compatibility/ec-and-super-IO.robot index 7362f17956..5430f7b4c5 100644 --- a/dasharo-compatibility/ec-and-super-IO.robot +++ b/dasharo-compatibility/ec-and-super-IO.robot @@ -38,27 +38,6 @@ ECR001.201 Battery monitoring - charge level in OS (Ubuntu) Check Charge Level In Linux Exit From Root User -ECR001.202 Battery monitoring - charge level in OS (Fedora) - [Documentation] Check whether the battery charge level can be read - ... (in mAh) in Linux OS. - Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR001.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Switch To Root User - Turn On ACPI CALL Module In Linux - Check Charge Level In Linux - Exit From Root User - -ECR001.301 Battery monitoring - charge level in OS (Windows) - [Documentation] Check whether battery charge level can be read in - ... Windows OS. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR001.301 not supported - Power On - Login To Windows - ${out}= Get Battery Power Level Windows - Should Be True ${out} > 0 and ${out} < 101 - ECR002.201 Battery monitoring - charging state in OS (Ubuntu) [Documentation] Check whether the battery state can be read in Linux OS. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR002.201 not supported @@ -71,25 +50,6 @@ ECR002.201 Battery monitoring - charging state in OS (Ubuntu) Check Charging State In Linux Exit From Root User -ECR002.202 Battery monitoring - charging state in OS (Fedora) - [Documentation] Check whether the battery state can be read in Linux OS. - Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR002.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Switch To Root User - Turn On ACPI CALL Module In Linux - Check Charging State In Linux - Exit From Root User - -ECR002.301 Battery monitoring - charging state in OS (Windows) - [Documentation] Check whether the battery state can be read in Windows - ... OS. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR002.301 not supported - Power On - Login To Windows - Check If Battery Is Charging Windows - ECR003.201 Touchpad in OS - (Ubuntu) [Documentation] Check whether touchpad is visible in Linux OS. ... Touchpad steering and effect detection must be checked @@ -104,29 +64,6 @@ ECR003.201 Touchpad in OS - (Ubuntu) Device Detection In Linux Touchpad Exit From Root User -ECR003.202 Touchpad in OS - (Fedora) - [Documentation] Check whether touchpad is visible in Linux OS. - ... Touchpad steering and effect detection must be checked - ... manually. - Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR002.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Switch To Root User - Turn On ACPI CALL Module In Linux - Device Detection In Linux Touchpad - Exit From Root User - -ECR003.301 Touchpad in OS - (Windows) - [Documentation] Check whether touchpad is visible in Windows OS. - ... Touchpad steering and effect detection must be checked - ... manually. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR003.301 not supported - Power On - Login To Windows - ${out}= Get Pointing Devices Windows - Should Contain ${out} HID-compliant mouse - # ECR005.001 Keyboard (function key: play/pause) in OS (Ubuntu) # [Documentation] Check whether function key: play/pause works in # ... Linux OS. @@ -177,17 +114,6 @@ ECR014.201 Keyboard (function key: brightness down) in OS (Ubuntu) Keyboard Function Key Brightness Down In Linux Exit From Root User -ECR014.202 Keyboard (function key: brightness down) in OS (Fedora) - [Documentation] Check whether function key: brightness down works in - ... Linux OS. - Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0014.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Switch To Root User - Keyboard Function Key Brightness Down In Linux - Exit From Root User - ECR015.201 Keyboard (function key: brightness up) in OS (Ubuntu) [Documentation] Check whether function key: brightness up works in ... Linux OS. @@ -201,18 +127,6 @@ ECR015.201 Keyboard (function key: brightness up) in OS (Ubuntu) Keyboard Function Key Brightness Up In Linux Exit From Root User -ECR015.202 Keyboard (function key: brightness up) in OS (Fedora) - [Documentation] Check whether function key: brightness up works in - ... Linux OS. - Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR015.202 not supported - Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0015.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Switch To Root User - Keyboard Function Key Brightness Up In Linux - Exit From Root User - ECR016.201 Keyboard (function key: camera on/off) in OS (Ubuntu) [Documentation] Check whether the camera on/off hotkey works correctly. Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR016.201 not supported @@ -226,24 +140,13 @@ ECR016.201 Keyboard (function key: camera on/off) in OS (Ubuntu) Keyboard Function Key Camera OnOff In Linux Exit From Root User -ECR016.202 Keyboard (function key: camera on/off) in OS (Fedora) - [Documentation] Check whether the camera on/off hotkey works correctly. - Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR016.202 not supported - Skip If not ${USB_CAMERA_DETECTION_SUPPORT} ECR016.202 not supported - Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0016.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Switch To Root User - Keyboard Function Key Camera OnOff In Linux - Exit From Root User - ECR017.201 Keyboard (function key: flight mode) in OS (Ubuntu) [Documentation] Check whether function key: flight mode works in ... Linux OS. Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR017.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR017.201 not supported Skip If not ${WIRELESS_CARD_SUPPORT} ECR017.201 not supported + Skip If '${DUT_CONNECTION_METHOD}' == 'SSH' ECR017.201 not supported Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR0017.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} @@ -252,19 +155,6 @@ ECR017.201 Keyboard (function key: flight mode) in OS (Ubuntu) Keyboard Function Key Flight Mode In Linux Exit From Root User -ECR017.202 Keyboard (function key: flight mode) in OS (Fedora) - [Documentation] Check whether function key: flight mode works in - ... Linux OS. - Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR017.202 not supported - Skip If not ${WIRELESS_CARD_SUPPORT} ECR017.202 not supported - Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0017.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Switch To Root User - Keyboard Function Key Flight Mode In Linux - Exit From Root User - # ECR018.001 Keyboard (function key: sleep) in OS (Ubuntu) # [Documentation] Check whether function key: sleep works in Linux OS. # IF not ${ec_and_super_io_support} SKIP ECR019.001 not supported @@ -290,18 +180,6 @@ ECR019.201 Buttons (button: power) in OS (Ubuntu) Device Detection In Linux Power Exit From Root User -ECR019.202 Buttons (button: power) in OS (Fedora) - [Documentation] Check whether button: power is detected in Linux OS. - Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR019.202 not supported - Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0019.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Switch To Root User - Turn On ACPI CALL Module In Linux - Device Detection In Linux Power - Exit From Root User - ECR020.201 Charging until 98% level in OS (Ubuntu) [Documentation] Check whether the DUT stops charging the battery when the ... 98% threshold is reached. @@ -316,20 +194,6 @@ ECR020.201 Charging until 98% level in OS (Ubuntu) Charging Until 98% Level In Linux Check Charging State Not Charging In Linux -ECR020.202 Charging until 98% level in OS (Fedora) - [Documentation] Check whether the DUT stops charging the battery when the - ... 98% threshold is reached. - Skip If '${POWER_CTRL}' != 'sonoff' ECR020.202 not supported - Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR020.202 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR020.202 not supported - Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0020.201 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Switch To Root User - Charging Until 98% Level In Linux - Check Charging State Not Charging In Linux - ECR021.201 Not charging between 95% and 98% in OS (Ubuntu) [Documentation] Check whether the DUT does not charge the battery when ... the charge level is between 95% and 98%. @@ -344,6 +208,117 @@ ECR021.201 Not charging between 95% and 98% in OS (Ubuntu) Not Charging Between 95% And 98% In Linux Exit From Root User +ECR001.202 Battery monitoring - charge level in OS (Fedora) + [Documentation] Check whether the battery charge level can be read + ... (in mAh) in Linux OS. + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR001.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Turn On ACPI CALL Module In Linux + Check Charge Level In Linux + Exit From Root User + +ECR002.202 Battery monitoring - charging state in OS (Fedora) + [Documentation] Check whether the battery state can be read in Linux OS. + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR002.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Turn On ACPI CALL Module In Linux + Check Charging State In Linux + Exit From Root User + +ECR003.202 Touchpad in OS - (Fedora) + [Documentation] Check whether touchpad is visible in Linux OS. + ... Touchpad steering and effect detection must be checked + ... manually. + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR002.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Turn On ACPI CALL Module In Linux + Device Detection In Linux Touchpad + Exit From Root User + +ECR014.202 Keyboard (function key: brightness down) in OS (Fedora) + [Documentation] Check whether function key: brightness down works in + ... Linux OS. + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0014.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Keyboard Function Key Brightness Down In Linux + Exit From Root User + +ECR015.202 Keyboard (function key: brightness up) in OS (Fedora) + [Documentation] Check whether function key: brightness up works in + ... Linux OS. + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR015.202 not supported + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0015.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Keyboard Function Key Brightness Up In Linux + Exit From Root User + +ECR016.202 Keyboard (function key: camera on/off) in OS (Fedora) + [Documentation] Check whether the camera on/off hotkey works correctly. + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR016.202 not supported + Skip If not ${USB_CAMERA_DETECTION_SUPPORT} ECR016.202 not supported + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0016.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Keyboard Function Key Camera OnOff In Linux + Exit From Root User + +ECR017.202 Keyboard (function key: flight mode) in OS (Fedora) + [Documentation] Check whether function key: flight mode works in + ... Linux OS. + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR017.202 not supported + Skip If not ${WIRELESS_CARD_SUPPORT} ECR017.202 not supported + Skip If '${DUT_CONNECTION_METHOD}' == 'SSH' ECR017.202 not supported + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0017.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Keyboard Function Key Flight Mode In Linux + Exit From Root User + +ECR019.202 Buttons (button: power) in OS (Fedora) + [Documentation] Check whether button: power is detected in Linux OS. + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR019.202 not supported + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0019.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Turn On ACPI CALL Module In Linux + Device Detection In Linux Power + Exit From Root User + +ECR020.202 Charging until 98% level in OS (Fedora) + [Documentation] Check whether the DUT stops charging the battery when the + ... 98% threshold is reached. + Skip If '${POWER_CTRL}' != 'sonoff' ECR020.202 not supported + Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR020.202 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR020.202 not supported + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0020.201 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Charging Until 98% Level In Linux + Check Charging State Not Charging In Linux + ECR021.202 Not charging between 95% and 98% in OS (Fedora) [Documentation] Check whether the DUT does not charge the battery when ... the charge level is between 95% and 98%. @@ -357,6 +332,33 @@ ECR021.202 Not charging between 95% and 98% in OS (Fedora) Not Charging Between 95% And 98% In Linux Exit From Root User +ECR001.301 Battery monitoring - charge level in OS (Windows) + [Documentation] Check whether battery charge level can be read in + ... Windows OS. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR001.301 not supported + Power On + Login To Windows + ${out}= Get Battery Power Level Windows + Should Be True ${out} > 0 and ${out} < 101 + +ECR002.301 Battery monitoring - charging state in OS (Windows) + [Documentation] Check whether the battery state can be read in Windows + ... OS. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR002.301 not supported + Power On + Login To Windows + Check If Battery Is Charging Windows + +ECR003.301 Touchpad in OS - (Windows) + [Documentation] Check whether touchpad is visible in Windows OS. + ... Touchpad steering and effect detection must be checked + ... manually. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR003.301 not supported + Power On + Login To Windows + ${out}= Get Pointing Devices Windows + Should Contain ${out} HID-compliant mouse + ECR022.001 EC sync update with power adapter connected works correctly [Documentation] This test aims to verify whether coreboot update ... will also update EC firmware when power adapter is connected. From 69d37c9b25f0d9012adfcd25b7284b29424d4465 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 08:42:16 +0200 Subject: [PATCH 319/416] ec-and-super-IO: Fix invalid Exit From Root MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/ec-and-super-IO.robot | 1 - 1 file changed, 1 deletion(-) diff --git a/dasharo-compatibility/ec-and-super-IO.robot b/dasharo-compatibility/ec-and-super-IO.robot index 5430f7b4c5..74301f832d 100644 --- a/dasharo-compatibility/ec-and-super-IO.robot +++ b/dasharo-compatibility/ec-and-super-IO.robot @@ -487,7 +487,6 @@ Keyboard Function Key Brightness Up In Linux Brightness Up Button In Linux ${brightness2}= Get Current Brightness In Linux Should Be True ${brightness2} > ${brightness1} - Exit From Root User Keyboard Function Key Camera OnOff In Linux [Documentation] Check whether the camera on/off hotkey works correctly. From cda0624649eb2c79b65fe0f5c08a37b9f1dc0b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 08:53:09 +0200 Subject: [PATCH 320/416] dasharo-compatibility/usb-camera: Reorder cases according to OS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/usb-camera.robot | 42 +++++++++++++------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/dasharo-compatibility/usb-camera.robot b/dasharo-compatibility/usb-camera.robot index 9f4a055a1d..f1a346d70d 100644 --- a/dasharo-compatibility/usb-camera.robot +++ b/dasharo-compatibility/usb-camera.robot @@ -38,27 +38,6 @@ CAM001.201 Integrated webcam (Ubuntu) Integrated Webcam Linux Exit From Root User -CAM001.202 Integrated webcam (Fedora) - [Documentation] Check whether the integrated USB camera is initialized - ... correctly and can be accessed from the Linux OS. Assumption: No - ... external cameras connected. - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CAM001.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Switch To Root User - Integrated Webcam Linux - Exit From Root User - -CAM001.301 Integrated webcam (Windows) - [Documentation] Check whether the integrated USB camera is initialized - ... correctly and can be accessed from the Windows OS. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CAM001.301 not supported - Power On - Login To Windows - ${out}= Get USB Devices Windows - Should Contain ${out} Chicony USB2.0 Camera - CAM002.201 Integrated IR Camera (Ubuntu) [Documentation] Check whether the integrated infrared camera is ... initialized correctly and can be accessed from the Linux OS. @@ -73,6 +52,18 @@ CAM002.201 Integrated IR Camera (Ubuntu) Integrated IR Camera Linux Exit From Root User +CAM001.202 Integrated webcam (Fedora) + [Documentation] Check whether the integrated USB camera is initialized + ... correctly and can be accessed from the Linux OS. Assumption: No + ... external cameras connected. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CAM001.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Integrated Webcam Linux + Exit From Root User + CAM002.202 Integrated IR Camera (Fedora) [Documentation] Check whether the integrated infrared camera is ... initialized correctly and can be accessed from the Linux OS. @@ -86,6 +77,15 @@ CAM002.202 Integrated IR Camera (Fedora) Integrated IR Camera Linux Exit From Root User +CAM001.301 Integrated webcam (Windows) + [Documentation] Check whether the integrated USB camera is initialized + ... correctly and can be accessed from the Windows OS. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CAM001.301 not supported + Power On + Login To Windows + ${out}= Get USB Devices Windows + Should Contain ${out} Chicony USB2.0 Camera + *** Keywords *** Integrated Webcam Linux From 5e2dd4486d7b1e24988444647dc368f15c8df573 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 08:55:44 +0200 Subject: [PATCH 321/416] dasharo-compatibility/usb-camera: Detect camera using lsusb not libinput MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/usb-camera.robot | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dasharo-compatibility/usb-camera.robot b/dasharo-compatibility/usb-camera.robot index f1a346d70d..f5421e782c 100644 --- a/dasharo-compatibility/usb-camera.robot +++ b/dasharo-compatibility/usb-camera.robot @@ -93,7 +93,8 @@ Integrated Webcam Linux ... correctly and can be accessed from the Linux OS. Assumption: No ... external cameras connected. [Tags] robot:private - Device Detection In Linux Camera + ${out}= List Devices In Linux usb + Should Contain Any ${out} Camera BisonCam ${out0}= Execute Linux Command ffprobe /dev/video0 Should Contain ${out0} Input #0, video4linux2,v4l2, from '/dev/video0': Should Contain @@ -106,7 +107,8 @@ Integrated IR Camera Linux ... Assumption: No external camera connected. Camera exposes separate ... devnodes for visible-spectrum and IR modes, in that order. [Tags] robot:private - Device Detection In Linux Camera + ${out}= List Devices In Linux usb + Should Contain Any ${out} Camera BisonCam ${out0}= Execute Linux Command ffprobe /dev/video2 Should Contain ... ${out0} From 1ac7b674aa721a2fd10d574394c887f3a47222ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 09:31:38 +0200 Subject: [PATCH 322/416] =?UTF-8?q?dasharo-compatibility/nvidia:=20Reorder?= =?UTF-8?q?=20cases=20according=20to=20OS=20Signed-off-by:=20Filip=20Go?= =?UTF-8?q?=C5=82a=C5=9B=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dasharo-compatibility/nvidia.robot | 42 +++++++++++++++--------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/dasharo-compatibility/nvidia.robot b/dasharo-compatibility/nvidia.robot index 1e48ec988f..df2b5cbbb9 100644 --- a/dasharo-compatibility/nvidia.robot +++ b/dasharo-compatibility/nvidia.robot @@ -38,27 +38,6 @@ NVI001.201 NVIDIA Graphics detect (Ubuntu) Should Contain Any ${out} 3D controller: NVIDIA Corporation VGA compatible controller: NVIDIA Corporation Exit From Root User -NVI001.202 NVIDIA Graphics detect (Fedora) - [Documentation] Check whether the NVIDIA graphics card is initialized - ... correctly and can be detected by the Linux OS. - Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} NVI001.202 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_FEDORA} - Login To Linux - Switch To Root User - ${out}= Execute Linux Command lspci | grep -i nvidia | cat - Should Contain Any ${out} 3D controller: NVIDIA Corporation VGA compatible controller: NVIDIA Corporation - Exit From Root User - -NVI001.301 NVIDIA Graphics detect (Windows) - [Documentation] Check whether the NVIDIA graphics card is initialized - ... correctly and can be detected by the Windows 11. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} NVI001.301 not supported - Power On - Login To Windows - ${out}= Get Video Controllers Windows - Should Contain ${out} NVIDIA GeForce - NVI002.201 NVIDIA Graphics power management (Ubuntu) [Documentation] Check whether the NVIDIA graphics power management is ... functional and the card powers on only while it's used. @@ -71,6 +50,18 @@ NVI002.201 NVIDIA Graphics power management (Ubuntu) Check NVIDIA Power Management In Linux Exit From Root User +NVI001.202 NVIDIA Graphics detect (Fedora) + [Documentation] Check whether the NVIDIA graphics card is initialized + ... correctly and can be detected by the Linux OS. + Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} NVI001.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + ${out}= Execute Linux Command lspci | grep -i nvidia | cat + Should Contain Any ${out} 3D controller: NVIDIA Corporation VGA compatible controller: NVIDIA Corporation + Exit From Root User + NVI002.202 NVIDIA Graphics power management (Fedora) [Documentation] Check whether the NVIDIA graphics power management is ... functional and the card powers on only while it's used. @@ -81,3 +72,12 @@ NVI002.202 NVIDIA Graphics power management (Fedora) Switch To Root User Check NVIDIA Power Management In Linux Exit From Root User + +NVI001.301 NVIDIA Graphics detect (Windows) + [Documentation] Check whether the NVIDIA graphics card is initialized + ... correctly and can be detected by the Windows 11. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} NVI001.301 not supported + Power On + Login To Windows + ${out}= Get Video Controllers Windows + Should Contain ${out} NVIDIA GeForce From 7d5353eb0648f89641d48e3b4828ee92bb9268f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 11:24:13 +0200 Subject: [PATCH 323/416] Add IDS of Ubuntu cases renamed when adding package-dependent Fedora tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/ec-and-super-IO.robot | 13 +++++++++++++ dasharo-compatibility/nvidia.robot | 3 +++ dasharo-compatibility/usb-camera.robot | 3 +++ 3 files changed, 19 insertions(+) diff --git a/dasharo-compatibility/ec-and-super-IO.robot b/dasharo-compatibility/ec-and-super-IO.robot index 74301f832d..56bbad21eb 100644 --- a/dasharo-compatibility/ec-and-super-IO.robot +++ b/dasharo-compatibility/ec-and-super-IO.robot @@ -28,6 +28,7 @@ Suite Teardown Run Keyword ECR001.201 Battery monitoring - charge level in OS (Ubuntu) [Documentation] Check whether the battery charge level can be read ... (in mAh) in Linux OS. + ... Previous IDs: ECR001.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR001.201 not supported Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR001.201 not supported Power On @@ -40,6 +41,7 @@ ECR001.201 Battery monitoring - charge level in OS (Ubuntu) ECR002.201 Battery monitoring - charging state in OS (Ubuntu) [Documentation] Check whether the battery state can be read in Linux OS. + ... Previous IDs: ECR002.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR002.201 not supported Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR002.201 not supported Power On @@ -54,6 +56,7 @@ ECR003.201 Touchpad in OS - (Ubuntu) [Documentation] Check whether touchpad is visible in Linux OS. ... Touchpad steering and effect detection must be checked ... manually. + ... Previous IDs: ECR003.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR003.201 not supported Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR003.201 not supported Power On @@ -105,6 +108,7 @@ ECR003.201 Touchpad in OS - (Ubuntu) ECR014.201 Keyboard (function key: brightness down) in OS (Ubuntu) [Documentation] Check whether function key: brightness down works in ... Linux OS. + ... Previous IDs: ECR014.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR014.201 not supported Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR0014.201 not supported Power On @@ -117,6 +121,7 @@ ECR014.201 Keyboard (function key: brightness down) in OS (Ubuntu) ECR015.201 Keyboard (function key: brightness up) in OS (Ubuntu) [Documentation] Check whether function key: brightness up works in ... Linux OS. + ... Previous IDs: ECR015.001 Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR015.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR015.201 not supported Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR0015.201 not supported @@ -129,6 +134,7 @@ ECR015.201 Keyboard (function key: brightness up) in OS (Ubuntu) ECR016.201 Keyboard (function key: camera on/off) in OS (Ubuntu) [Documentation] Check whether the camera on/off hotkey works correctly. + ... Previous IDs: ECR016.001 Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR016.201 not supported Skip If not ${USB_CAMERA_DETECTION_SUPPORT} ECR016.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR016.201 not supported @@ -143,6 +149,7 @@ ECR016.201 Keyboard (function key: camera on/off) in OS (Ubuntu) ECR017.201 Keyboard (function key: flight mode) in OS (Ubuntu) [Documentation] Check whether function key: flight mode works in ... Linux OS. + ... Previous IDs: ECR017.001 Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR017.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR017.201 not supported Skip If not ${WIRELESS_CARD_SUPPORT} ECR017.201 not supported @@ -169,6 +176,7 @@ ECR017.201 Keyboard (function key: flight mode) in OS (Ubuntu) ECR019.201 Buttons (button: power) in OS (Ubuntu) [Documentation] Check whether button: power is detected in Linux OS. + ... Previous IDs: ECR019.001 Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR019.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR019.201 not supported Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR0019.201 not supported @@ -183,6 +191,7 @@ ECR019.201 Buttons (button: power) in OS (Ubuntu) ECR020.201 Charging until 98% level in OS (Ubuntu) [Documentation] Check whether the DUT stops charging the battery when the ... 98% threshold is reached. + ... Previous IDs: ECR020.001 Skip If '${POWER_CTRL}' != 'sonoff' ECR020.201 not supported Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR020.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR020.201 not supported @@ -197,6 +206,7 @@ ECR020.201 Charging until 98% level in OS (Ubuntu) ECR021.201 Not charging between 95% and 98% in OS (Ubuntu) [Documentation] Check whether the DUT does not charge the battery when ... the charge level is between 95% and 98%. + ... Previous IDs: ECR021.001 Skip If '${POWER_CTRL}' != 'sonoff' ECR021.201 not supported Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR021.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR021.201 not supported @@ -335,6 +345,7 @@ ECR021.202 Not charging between 95% and 98% in OS (Fedora) ECR001.301 Battery monitoring - charge level in OS (Windows) [Documentation] Check whether battery charge level can be read in ... Windows OS. + ... Previous IDs: ECR001.002 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR001.301 not supported Power On Login To Windows @@ -344,6 +355,7 @@ ECR001.301 Battery monitoring - charge level in OS (Windows) ECR002.301 Battery monitoring - charging state in OS (Windows) [Documentation] Check whether the battery state can be read in Windows ... OS. + ... Previous IDs: ECR002.002 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR002.301 not supported Power On Login To Windows @@ -353,6 +365,7 @@ ECR003.301 Touchpad in OS - (Windows) [Documentation] Check whether touchpad is visible in Windows OS. ... Touchpad steering and effect detection must be checked ... manually. + ... Previous IDs: ECR003.002 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ECR003.301 not supported Power On Login To Windows diff --git a/dasharo-compatibility/nvidia.robot b/dasharo-compatibility/nvidia.robot index df2b5cbbb9..3635bb1851 100644 --- a/dasharo-compatibility/nvidia.robot +++ b/dasharo-compatibility/nvidia.robot @@ -28,6 +28,7 @@ Suite Teardown Run Keyword NVI001.201 NVIDIA Graphics detect (Ubuntu) [Documentation] Check whether the NVIDIA graphics card is initialized ... correctly and can be detected by the Linux OS. + ... Previous IDs: NVI001.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NVI001.201 not supported Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} NVI001.201 not supported Power On @@ -41,6 +42,7 @@ NVI001.201 NVIDIA Graphics detect (Ubuntu) NVI002.201 NVIDIA Graphics power management (Ubuntu) [Documentation] Check whether the NVIDIA graphics power management is ... functional and the card powers on only while it's used. + ... Previous IDs: NVI002.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NVI002.201 not supported Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} NVI002.201 not supported Power On @@ -76,6 +78,7 @@ NVI002.202 NVIDIA Graphics power management (Fedora) NVI001.301 NVIDIA Graphics detect (Windows) [Documentation] Check whether the NVIDIA graphics card is initialized ... correctly and can be detected by the Windows 11. + ... Previous IDs: NVI001.002 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} NVI001.301 not supported Power On Login To Windows diff --git a/dasharo-compatibility/usb-camera.robot b/dasharo-compatibility/usb-camera.robot index f5421e782c..fca5e33bc9 100644 --- a/dasharo-compatibility/usb-camera.robot +++ b/dasharo-compatibility/usb-camera.robot @@ -29,6 +29,7 @@ CAM001.201 Integrated webcam (Ubuntu) [Documentation] Check whether the integrated USB camera is initialized ... correctly and can be accessed from the Linux OS. Assumption: No ... external cameras connected. + ... Previous IDs: CAM001.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CAM001.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CAM001.201 not supported Power On @@ -43,6 +44,7 @@ CAM002.201 Integrated IR Camera (Ubuntu) ... initialized correctly and can be accessed from the Linux OS. ... Assumption: No external camera connected. Camera exposes separate ... devnodes for visible-spectrum and IR modes, in that order. + ... Previous IDs: CAM002.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CAM002.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CAM002.201 not supported Power On @@ -80,6 +82,7 @@ CAM002.202 Integrated IR Camera (Fedora) CAM001.301 Integrated webcam (Windows) [Documentation] Check whether the integrated USB camera is initialized ... correctly and can be accessed from the Windows OS. + ... Previous IDs: CAM001.002 Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CAM001.301 not supported Power On Login To Windows From 24826038479b961548cc86d8593c4c907c26a24e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 14:00:16 +0200 Subject: [PATCH 324/416] novacustom-common: Remove Camera Switch support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The camera is not turned on/off using ACPI anymore. It's controlled using the embedded controller, and testing it automatically is not supported right now Signed-off-by: Filip Gołaś --- platform-configs/include/novacustom-common.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index ff70cc677d..d44a589cd2 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -111,7 +111,7 @@ ${TCG_OPAL_DISK_PASSWORD_SUPPORT}= ${TRUE} ${BIOS_LOCK_SUPPORT}= ${TRUE} ${SMM_WRITE_PROTECTION_SUPPORT}= ${TRUE} ${WIFI_BLUETOOTH_CARD_SWITCH_SUPPORT}= ${TRUE} -${CAMERA_SWITCH_SUPPORT}= ${TRUE} +${CAMERA_SWITCH_SUPPORT}= ${FALSE} ${EARLY_BOOT_DMA_SUPPORT}= ${TRUE} ${UEFI_PASSWORD_SUPPORT}= ${TRUE} From 18c52ecdbdcd301fb4426cd0fd1277bc51e97f4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 14:03:32 +0200 Subject: [PATCH 325/416] ECR016: Check the CAMERA_SWITCH_SUPPORT config variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit it was unused before... Signed-off-by: Filip Gołaś --- dasharo-compatibility/ec-and-super-IO.robot | 2 ++ platform-configs/include/default.robot | 3 ++- platform-configs/include/novacustom-common.robot | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dasharo-compatibility/ec-and-super-IO.robot b/dasharo-compatibility/ec-and-super-IO.robot index 56bbad21eb..198df5eb65 100644 --- a/dasharo-compatibility/ec-and-super-IO.robot +++ b/dasharo-compatibility/ec-and-super-IO.robot @@ -137,6 +137,7 @@ ECR016.201 Keyboard (function key: camera on/off) in OS (Ubuntu) ... Previous IDs: ECR016.001 Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR016.201 not supported Skip If not ${USB_CAMERA_DETECTION_SUPPORT} ECR016.201 not supported + Skip If not ${ACPI_CAMERA_SWITCH_SUPPORT} ECR016.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ECR016.201 not supported Skip If "${ENV_ID_UBUNTU}" not in ${TESTED_LINUX_DISTROS} ECR0016.201 not supported Power On @@ -281,6 +282,7 @@ ECR016.202 Keyboard (function key: camera on/off) in OS (Fedora) [Documentation] Check whether the camera on/off hotkey works correctly. Skip If not ${EC_AND_SUPER_IO_SUPPORT} ECR016.202 not supported Skip If not ${USB_CAMERA_DETECTION_SUPPORT} ECR016.202 not supported + Skip If not ${ACPI_CAMERA_SWITCH_SUPPORT} ECR016.201 not supported Skip If "${ENV_ID_FEDORA}" not in ${TESTED_LINUX_DISTROS} ECR0016.202 not supported Power On Boot System Or From Connected Disk ${ENV_ID_FEDORA} diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 9444463993..c726970a92 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -176,7 +176,8 @@ ${WATCHDOG_SUPPORT}= ${FALSE} ${DCU_UUID_SUPPORT}= ${FALSE} ${DCU_SERIAL_SUPPORT}= ${FALSE} ${ROMHOLE_SUPPORT}= ${FALSE} - +${IR_CAMERA_SUPPORT}= ${FALSE} +${ACPI_CAMERA_SWITCH_SUPPORT}= ${TRUE} # Test module: dasharo-security ${TPM_SUPPORTED_VERSION}= ${NONE} ${TPM_EXPECTED_CHIP}= FILL_WITH_CORRECT_VALUE_BEFORE_TESTING diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index d44a589cd2..b75d978520 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -97,6 +97,7 @@ ${DEFAULT_POWER_STATE_AFTER_FAIL}= Powered Off ${DTS_FIRMWARE_FLASHING_SUPPORT}= ${TRUE} ${DTS_EC_FLASHING_SUPPORT}= ${TRUE} ${ACPI_DRIVER_SUPPORT}= ${TRUE} +${ACPI_CAMERA_SWITCH_SUPPORT}= ${FALSE} # Test module: dasharo-security ${TPM_SUPPORTED_VERSION}= 2 @@ -111,7 +112,7 @@ ${TCG_OPAL_DISK_PASSWORD_SUPPORT}= ${TRUE} ${BIOS_LOCK_SUPPORT}= ${TRUE} ${SMM_WRITE_PROTECTION_SUPPORT}= ${TRUE} ${WIFI_BLUETOOTH_CARD_SWITCH_SUPPORT}= ${TRUE} -${CAMERA_SWITCH_SUPPORT}= ${FALSE} +${CAMERA_SWITCH_SUPPORT}= ${TRUE} ${EARLY_BOOT_DMA_SUPPORT}= ${TRUE} ${UEFI_PASSWORD_SUPPORT}= ${TRUE} From 76bd6d92cd5dd4512973f61ef6c0e7494d878208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 14:25:14 +0200 Subject: [PATCH 326/416] novacustom-v540tu: Add CLEVO_BATTERY_CAPACITY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit value of 4643000 was read from /sys/class/power_supply/BAT0/charge_full Signed-off-by: Filip Gołaś --- platform-configs/novacustom-v540tu.robot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platform-configs/novacustom-v540tu.robot b/platform-configs/novacustom-v540tu.robot index b1564bd14b..f2c048f0b7 100644 --- a/platform-configs/novacustom-v540tu.robot +++ b/platform-configs/novacustom-v540tu.robot @@ -50,6 +50,8 @@ ${WIN_RAND_WRITE_QUEUED}= 461.3 # MB/s ${WIN_RAND_READ_NONQUE}= 82.8 # MB/s ${WIN_RAND_WRITE_NONQUE}= 239.6 # MB/s +${CLEVO_BATTERY_CAPACITY}= 4643000 # /sys/class/power_supply/BAT0/charge_full + *** Keywords *** Power On From 594e352794dfae40be31cd816bd86345dddba202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 14:26:37 +0200 Subject: [PATCH 327/416] keywords.robot: Check Charging State In Linux: Accept "Not charging" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This state appears when the charge is between the battery start and stop thresholds docs.dasharo.com/dasharo-menu-docs/dasharo-system-features/#power-management-options Signed-off-by: Filip Gołaś --- keywords.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keywords.robot b/keywords.robot index 19791dd0a4..6bb4c98704 100644 --- a/keywords.robot +++ b/keywords.robot @@ -875,7 +875,7 @@ Check Charge Level In Linux Check Charging State In Linux [Documentation] Keyword checks the charging state in Linux OS. ${out}= Execute Linux Command cat /sys/class/power_supply/BAT0/status - Should Contain Any ${out} Charging Full + Should Contain Any ${out} Charging Full Not charging Check Charging State Not Charging In Linux [Documentation] Keyword checks if the battery state is Not charging From c49851172565d22045306ed5214a5f7cba558d5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 16:37:50 +0200 Subject: [PATCH 328/416] usb-camera: Add IR_CAMERA_SUPPORT config variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/usb-camera.robot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dasharo-compatibility/usb-camera.robot b/dasharo-compatibility/usb-camera.robot index fca5e33bc9..4d1053ffe3 100644 --- a/dasharo-compatibility/usb-camera.robot +++ b/dasharo-compatibility/usb-camera.robot @@ -45,6 +45,7 @@ CAM002.201 Integrated IR Camera (Ubuntu) ... Assumption: No external camera connected. Camera exposes separate ... devnodes for visible-spectrum and IR modes, in that order. ... Previous IDs: CAM002.001 + Skip If not ${IR_CAMERA_SUPPORT} CAM002.201 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CAM002.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CAM002.201 not supported Power On @@ -71,6 +72,7 @@ CAM002.202 Integrated IR Camera (Fedora) ... initialized correctly and can be accessed from the Linux OS. ... Assumption: No external camera connected. Camera exposes separate ... devnodes for visible-spectrum and IR modes, in that order. + Skip If not ${IR_CAMERA_SUPPORT} CAM002.202 not supported Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CAM002.202 not supported Power On Boot System Or From Connected Disk ${ENV_ID_FEDORA} From a0e843b1be797ae086a432831fbf074f022e21f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 9 Apr 2025 16:12:28 +0200 Subject: [PATCH 329/416] options-lib_dcu: Boot System...: compare same case entry names (#724) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/options/options-lib_dcu.robot | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index 74fd62a2a5..9d689da75e 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -142,6 +142,7 @@ Set Nextboot ${os_boot_id}= Set Variable ${EMPTY} ${os_bootentry_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} + ${os_bootentry_name}= Convert To Lower Case ${os_bootentry_name} ${boot_entries}= Execute Command In Terminal efibootmgr From 6a41a1abd27ba0866af41f4ae19e10c4382a5c1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 9 Apr 2025 16:16:48 +0200 Subject: [PATCH 330/416] novacustom.md: Mention that switching OSes is now supported (#723) --- docs/novacustom.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/novacustom.md b/docs/novacustom.md index 3942f1f7ae..0785b5a12b 100644 --- a/docs/novacustom.md +++ b/docs/novacustom.md @@ -16,9 +16,10 @@ So far, we have been testing our laptops over SSH with the help of This approach, however, needs some prerequisites to be satisfied: -* If you have multiple OS'es on your platform, you need to ensure that the OS - you wish to test is set as the **first boot option**. Currently, switching - between OSes automatically is not supported. +* If you have multiple OS'es on your platform, you need to ensure that the + **first boot option** is set to a Linux system. Switching between OSes + automatically is only supported if the **first boot option** is a Linux + system. - When a test flashes the firmware, the bootorder will be restored to default. You can prevent this in two ways, although both of them require performing tests for different OS's separately: From f2b7f9e74ae5c591b98c349f68563c15469ee34a Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Thu, 10 Apr 2025 11:50:30 +0200 Subject: [PATCH 331/416] util/basic-platform-setup.robot: connection check in Run Ansible Playbook Added Check Internet Connection On Linux in Run Ansible Playbook keyword, to avoid SSH "host unreachable" error when network interface initialization takes a little longer. Signed-off-by: Mateusz Maciejewski --- util/basic-platform-setup.robot | 1 + 1 file changed, 1 insertion(+) diff --git a/util/basic-platform-setup.robot b/util/basic-platform-setup.robot index 422ae664c0..10cde05d58 100644 --- a/util/basic-platform-setup.robot +++ b/util/basic-platform-setup.robot @@ -237,6 +237,7 @@ Run Ansible Playbooks # ansible will fail no matter the timeouts if host is unreachable # (not booted yet) Login To Linux + Check Internet Connection On Linux # Create temporary inventory file for given platform and OS ${inventory_file}= Catenate [host] \n From 9f79543f45cd52a4f15d0e1c949e1217477e1639 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Wed, 9 Apr 2025 12:30:26 +0200 Subject: [PATCH 332/416] scripts/lib/robot.sh update: more detailed naming convetion of the result test dirs Signed-off-by: Jakub Redmerski --- scripts/lib/robot.sh | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/scripts/lib/robot.sh b/scripts/lib/robot.sh index 645ad6560d..69b109aafd 100644 --- a/scripts/lib/robot.sh +++ b/scripts/lib/robot.sh @@ -86,6 +86,13 @@ execute_robot() { # Check if the required environment variables are set check_env_variable "CONFIG" + # DIR_PREFIX (optional) additional description of test result dir + if [ -n "${DIR_PREFIX}" ]; then + dir_prefix="${DIR_PREFIX}_" + else + dir_prefix="" + fi + # RTE_IP environment variable is not required for some platforms if [ -n "${RTE_IP}" ]; then rte_ip_option="-v rte_ip:${RTE_IP}" @@ -138,12 +145,24 @@ execute_robot() { # Thanks to detecting spacebars in arguments before _robot_args can now # safely be concatenated into a string and these arguments will still be # passed correctly. + # + # Firstly, the provided argument will be parsed to get the proper name + # for the results directory. for _test_name in "${_test_path[@]}"; do - local _logs_dir="logs/${CONFIG}/${RUN_DATE}" - local _log_file="${_logs_dir}/${_test_name}_log.html" - local _report_file="${_logs_dir}/${_test_name}_report.html" - local _output_file="${_logs_dir}/${_test_name}_out.xml" - local _debug_file="${_logs_dir}/${_test_name}_debug.log" + if [[ "$_test_name" == *"/"* && "$_test_name" != */ ]]; then + _test_scope_name="${_test_name##*/}" + if [[ "$_test_scope_name" == *".robot"* ]]; then + _test_scope_name="${_test_scope_name%%.*}" + fi + else + _test_scope_name="${_test_name%%/*}" + fi + + local _logs_dir="logs/${CONFIG}/${dir_prefix}${_test_scope_name}_${RUN_DATE}" + local _log_file="${_logs_dir}/${_test_scope_name}_log.html" + local _report_file="${_logs_dir}/${_test_scope_name}_report.html" + local _output_file="${_logs_dir}/${_test_scope_name}_out.xml" + local _debug_file="${_logs_dir}/${_test_scope_name}_debug.log" echo "Logs will be saved at ${_logs_dir}" echo "Watch \"${_debug_file}\" to monitor the progress of the test" From 0dd27bef9c46ac4c0b4968fc169629ef2a601c81 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Wed, 9 Apr 2025 13:17:04 +0200 Subject: [PATCH 333/416] README.md add: info about DIR_PREFIX to the readme Signed-off-by: Jakub Redmerski --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 5e229abb29..739540cf8d 100644 --- a/README.md +++ b/README.md @@ -253,6 +253,10 @@ SONOFF_IP=$SONOFF_IP PIKVM_IP=$PIKVM_IP 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 From 325e7424626042bc2c8df746b3653661346076c9 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Wed, 9 Apr 2025 14:50:35 +0200 Subject: [PATCH 334/416] scripts add: creating separate direcotry for regresion runs Signed-off-by: Jakub Redmerski --- scripts/lib/robot.sh | 6 +++++- scripts/regression.sh | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/scripts/lib/robot.sh b/scripts/lib/robot.sh index 69b109aafd..2abce8c09a 100644 --- a/scripts/lib/robot.sh +++ b/scripts/lib/robot.sh @@ -158,7 +158,11 @@ execute_robot() { _test_scope_name="${_test_name%%/*}" fi - local _logs_dir="logs/${CONFIG}/${dir_prefix}${_test_scope_name}_${RUN_DATE}" + if [ -n "${_REGRESSION_RUN}" ]; then + local _logs_dir="logs/${CONFIG}/${dir_prefix}regresion_${RUN_DATE}" + else + local _logs_dir="logs/${CONFIG}/${dir_prefix}${_test_scope_name}_${RUN_DATE}" + fi local _log_file="${_logs_dir}/${_test_scope_name}_log.html" local _report_file="${_logs_dir}/${_test_scope_name}_report.html" local _output_file="${_logs_dir}/${_test_scope_name}_out.xml" diff --git a/scripts/regression.sh b/scripts/regression.sh index 271a83727f..1948b4f965 100755 --- a/scripts/regression.sh +++ b/scripts/regression.sh @@ -16,6 +16,9 @@ if [ ! -f "$FW_FILE" ]; then exit 1 fi +_REGRESSION_RUN="True" +export _REGRESSION_RUN + check_test_station_variables if [ -z "$NO_SETUP" ]; then From 03ffe83fee2c59ba864d9f3c06f57d5406b6b14e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Thu, 10 Apr 2025 14:27:46 +0200 Subject: [PATCH 335/416] platform-configs/novacustom-v5*: use correct dock model MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- platform-configs/novacustom-v540tu.robot | 2 ++ platform-configs/novacustom-v560tnd.robot | 1 + platform-configs/novacustom-v560tne.robot | 1 + platform-configs/novacustom-v560tu.robot | 1 + 4 files changed, 5 insertions(+) diff --git a/platform-configs/novacustom-v540tu.robot b/platform-configs/novacustom-v540tu.robot index f2c048f0b7..c3267275de 100644 --- a/platform-configs/novacustom-v540tu.robot +++ b/platform-configs/novacustom-v540tu.robot @@ -21,6 +21,8 @@ ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${FALSE} ${DEFAULT_BOOT_OS_ID}= ${ENV_ID_UBUNTU} @{TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} ${ENV_ID_FEDORA} +${CLEVO_USB_C_HUB}= Thunderbolt 4 Dock + # Benchmark reference data to nvidia model # performance diff --git a/platform-configs/novacustom-v560tnd.robot b/platform-configs/novacustom-v560tnd.robot index 6ee4eb043e..d018084038 100644 --- a/platform-configs/novacustom-v560tnd.robot +++ b/platform-configs/novacustom-v560tnd.robot @@ -22,6 +22,7 @@ ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} # on which OS is first in the bo ${USB_DETECTION_ITERATIONS_NUMBER}= 3 ${BOOT_FROM_USB_ITERATIONS_NUMBER}= 3 ${WIFI_CARD}= Intel(R) Wi-Fi 6E AX211 160MHz +${CLEVO_USB_C_HUB}= Thunderbolt 4 Dock ${OPTIONS_LIB}= options-lib_dcu ${POWER_CTRL}= none diff --git a/platform-configs/novacustom-v560tne.robot b/platform-configs/novacustom-v560tne.robot index e783e9371a..ed048946ce 100644 --- a/platform-configs/novacustom-v560tne.robot +++ b/platform-configs/novacustom-v560tne.robot @@ -23,6 +23,7 @@ ${USB_DETECTION_ITERATIONS_NUMBER}= 3 ${BOOT_FROM_USB_ITERATIONS_NUMBER}= 3 ${WIFI_CARD}= Intel(R) Wi-Fi 6E AX211 160MHz ${DGPU_ONLY_SUPPORT}= ${TRUE} +${CLEVO_USB_C_HUB}= Thunderbolt 4 Dock # performance ${ZIP_MULTI_COMPRESSION}= 79729 # MIPS diff --git a/platform-configs/novacustom-v560tu.robot b/platform-configs/novacustom-v560tu.robot index 296f0146a7..667719f550 100644 --- a/platform-configs/novacustom-v560tu.robot +++ b/platform-configs/novacustom-v560tu.robot @@ -19,6 +19,7 @@ ${CPU_MIN_FREQUENCY}= 300 ${BLUETOOTH_CARD_UBUNTU}= 8087:0033 ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${FALSE} ${WEBCAM_UBUNTU}= USB2.0 Camera +${CLEVO_USB_C_HUB}= Thunderbolt 4 Dock ${POWER_CTRL}= none ${SNIPEIT}= no From b4c3f60ffc2a9bb2922afea82b77ed8a7cee1750 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Thu, 10 Apr 2025 13:14:32 +0200 Subject: [PATCH 336/416] lib/network.robot fix: change wrong terminal write into proper terminal read Signed-off-by: Jakub Redmerski --- lib/network.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/network.robot b/lib/network.robot index 370adb5ded..ebf56101b4 100644 --- a/lib/network.robot +++ b/lib/network.robot @@ -87,7 +87,7 @@ Scan For Wi-Fi In Linux Set DUT Response Timeout 60 seconds Write Into Terminal nmcli device wifi list Read From Terminal Until ${3_MDEB_WIFI_NETWORK} - Write Into Terminal q + Read From Terminal Until Prompt Scan For Bluetooth In Linux [Documentation] Turn on Bluetooth then scan in search of company network. From e004525e4f2edd1fbdcd1335c6f116e52a6aad1d Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Tue, 11 Mar 2025 16:51:24 +0100 Subject: [PATCH 337/416] osfv: Extend Audio tests Signed-off-by: Sebastian Czapla --- dasharo-compatibility/audio-subsystem.robot | 435 ++++++++++++++---- keywords.robot | 7 - platform-configs/include/default.robot | 5 +- .../include/msi-z690-common.robot | 3 - platform-configs/include/novacustom-adl.robot | 5 - .../include/novacustom-common.robot | 1 + platform-configs/include/novacustom-mtl.robot | 5 - platform-configs/include/novacustom-tgl.robot | 5 - .../include/protectli-common.robot | 1 + .../include/protectli-v1x10.robot | 2 - .../include/protectli-vp46xx.robot | 3 - .../include/protectli-vp66xx.robot | 3 - platform-configs/msi-pro-z690-a-ddr5.robot | 2 - .../msi-pro-z690-a-wifi-ddr4.robot | 2 - platform-configs/msi-pro-z790-p-ddr5.robot | 2 - platform-configs/odroid-h4-plus.robot | 2 - platform-configs/optiplex-7010.robot | 1 - platform-configs/protectli-vp2410.robot | 2 - platform-configs/protectli-vp2420.robot | 3 - platform-configs/protectli-vp2430.robot | 2 - platform-configs/protectli-vp3230.robot | 3 - platform-configs/rpi-3b.robot | 3 - scripts/get-robot-variables.sh | 24 +- 23 files changed, 339 insertions(+), 182 deletions(-) diff --git a/dasharo-compatibility/audio-subsystem.robot b/dasharo-compatibility/audio-subsystem.robot index 3e0ce7f4bc..db77fb7ae1 100644 --- a/dasharo-compatibility/audio-subsystem.robot +++ b/dasharo-compatibility/audio-subsystem.robot @@ -12,125 +12,358 @@ Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot -# TODO: -# - document which setup/teardown keywords to use and what are they doing -# - go threough them and make sure they are doing what the name suggest (not -# exactly the case right now) -Suite Setup Run Keyword -... Prepare Test Suite -Suite Teardown Run Keyword -... Log Out And Close Connection +Suite Setup Prepare Audio Subsystem Test Suite +Suite Teardown Log Out And Close Connection + + +*** Variables *** +# Pactl names are uniform for all devices, and in theory +# across multiple Linux distributions +${PACTL_STR_INTERNAL_OUT}= analog-output-speaker +${PACTL_STR_INTERNAL_IN}= analog-input-internal-mic +${PACTL_STR_HEADSET_OUT}= analog-output-headphones +${PACTL_STR_HEADSET_IN}= analog-input-headset-mic +${PACTL_STR_HDMI_OUT}= hdmi-output-0 +# The same is not a guarantee for Windows +${POWERSHELL_STR_INTERNAL_OUT}= Speakers (Realtek(R) Audio) +${POWERSHELL_STR_INTERNAL_IN}= Microphone Array (Realtek(R) Audio) +# Since Realtek driver shows the same device for Headset and Internal audio +# for now we just copy the value, and will need better solution in future. +${POWERSHELL_STR_HEADSET_OUT}= ${POWERSHELL_STR_INTERNAL_OUT} +${POWERSHELL_STR_HEADSET_IN}= Microphone (Realtek(R) Audio) +${POWERSHELL_STR_HDMI_OUT}= Audio Driver for Display Audio *** Test Cases *** -AUD001.201 Audio subsystem detection (Ubuntu) +AUD001.201 Audio subsystem detection [Documentation] Check whether the audio subsystem is initialized correctly - ... and can be detected in Linux OS. - ... Previous IDs: AUD001.001 - Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.201 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} AUD001.201 not supported - Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" AUD001.201 not supported - Audio Subsystem Detection ${ENV_ID_UBUNTU} - -# PI-KVM necessary -# AUD002.001 Audio playback (Ubuntu) -# [Documentation] Check whether the audio subsystem is able to playback -# ... audio recordings. -# Execute Linux command pactl set-sink-mute alsa_output.pci-0000_00_1f.3.analog-stereo 0 -# Telnet.Read Until Prompt -# Execute Linux command pactl set-sink-volume alsa_output.pci-0000_00_1f.3.analog-stereo 65535 -# Telnet.Read Until Prompt -# Execute Linux command speaker-test -# Telnet.Read Until Prompt -# ${out}= Execute Linux command arecord -qd 1 volt && sox volt -n stat &> volt.d && sed '4q;d' volt.d -# Should Contain ${out} #TODO the output - -# in fact tested in AUD002.001 -# AUD003.001 Audio capture (Ubuntu 20.04) -# [Documentation] Check whether the audio subsystem is able to capture -# ... audio. - -AUD004.201 External headset recognition (Ubuntu) - [Documentation] Check whether the external headset is recognized - ... properly after plugging in micro jack into slot. - ... Previous IDs: AUD004.001 - Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD004.201 not supported - Skip If not ${EXTERNAL_HEADSET_SUPPORT} AUD004.201 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} AUD004.201 not supported - Skip If "${ENV_ID_UBUNTU}" not in "${TESTED_LINUX_DISTROS}" AUD004.201 not supported - External Headset Recognition ${ENV_ID_UBUNTU} - -AUD001.202 Audio subsystem detection (Fedora) + ... and can be detected in Ubuntu OS. To do so, we first try to detect + ... audio devices in sysfs. Then, we verify no dummy output is present. + ... Dummy output only appears when no other sound device is available, + ... therefore, presence of it indicate failure to initialize audio for userspace + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ${TEST_NAME} not supported + Boot Into Ubuntu And Ensure Audio Subsystem Is Detected + ${out}= Execute Command In Terminal pactl list sinks + ${result}= Run Keyword And Ignore Error + ... Should Not Contain ${out} device.description = "Dummy Output" + IF '${result}[0]' == 'FAIL' + Log \nSound Card was found, but PulseAudio did not found any device\n WARN + END + +AUD001.301 Audio subsystem detection [Documentation] Check whether the audio subsystem is initialized correctly - ... and can be detected in Linux OS. - Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.202 not supported - Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" AUD001.202 not supported - Audio Subsystem Detection ${ENV_ID_FEDORA} + ... and can be detected in Windows 11. To do so, we attemptt detection + ... of the Audio Service, and verify it is in Running state. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ${TEST_NAME} not supported + Power On + Login To Windows + ${out}= Execute Command Get-Service | Where-Object { $_.Name -eq "Audiosrv" } + Should Contain ${out} Running -AUD004.202 External headset recognition (Fedora) - [Documentation] Check whether the external headset is recognized - ... properly after plugging in micro jack into slot. - Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD004.202 not supported - Skip If not ${EXTERNAL_HEADSET_SUPPORT} AUD004.202 not supported - Skip If "${ENV_ID_FEDORA}" not in "${TESTED_LINUX_DISTROS}" AUD004.202 not supported - External Headset Recognition ${ENV_ID_FEDORA} +AUD002.201 Internal Audio playback + [Documentation] Check whether the audio subsystem in Ubuntu is able + ... toplayback audio recordings. To do so, first determine presence + ... of audio sink. Audio sink must not be a dummy. After it was + ... verified, we verify that sound is not malformed. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ${TEST_NAME} not supported + Skip If not ${INTERNAL_AUDIO_SUPPORT} ${TEST_NAME} not supported + Boot Into Ubuntu And Ensure Audio Subsystem Is Detected + Switch Active Sink Port Using Pactl internal + Verify Active Sink Port Using Pactl internal + # TODO: Test playback and waveforms + # We probably can do it using alsa monitoring device, and capture + # the sound to check if it was malformed in a way. + Log \Internal speakers detected, check validity of sound playback manually\n -AUD001.301 Audio subsystem detection (Windows) - [Documentation] Check whether the audio subsystem is initialized correctly - ... and can be detected in Windows 11. - ... Previous IDs: AUD001.002 - Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} AUD001.301 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} AUD001.301 not supported +AUD002.301 Internal Audio playback + [Documentation] Check whether the audio subsystem is able to playback + ... audio recordings. To do so, first determine presence of audio sink. + ... After that, we verify that sound is not malformed. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ${TEST_NAME} not supported + Skip If not ${INTERNAL_AUDIO_SUPPORT} ${TEST_NAME} not supported Power On Login To Windows - ${out}= Get Sound Devices Windows - Should Contain ${out} ${DEVICE_AUDIO1_WIN} + ${out}= Get Sound Devices In Windows speakers + Should Not Be Empty ${out} + Should Contain ${out} ${POWERSHELL_STR_INTERNAL_OUT} Should Contain ${out} OK -# Work in progress -# AUD004.002 External headset recognition (Windows) -# [Documentation] Check whether the external headset is recognized -# ... properly after plugging in micro jack into slot. -# Skip If not ${audio_subsystem_support} AUD004.002 not supported -# Skip If not ${tests_in_windows_support} AUD004.002 not supported -# Power On -# Login to Windows -# Execute Command In Terminal Install-PackageProvider -Name NuGet -Force -# Execute Command In Terminal Install-Module -Name AudioDeviceCmdlets -Force -# ${out}= Execute Command In Terminal Get-AudioDevice -list | ft Index, Default, Type, Name -# Should Contain ${out} ${headset_string} -# Exit from root user + # TODO: Somehow verify that sound played is proper, no ideas on how to do it + # for windows, besides claiming this test as semi-auto. + Log \Internal speakers detected, check validity of sound playback manually\n +AUD003.201 Internal Audio capture + [Documentation] Check whether the audio subsystem is able to capture + ... audio on Ubuntu. To do so, we first determine presence of internal + ... capture device. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ${TEST_NAME} not supported + Skip If not ${INTERNAL_AUDIO_SUPPORT} ${TEST_NAME} requires internal Microphone + Boot Into Ubuntu And Ensure Audio Subsystem Is Detected + Switch Active Source Port Using Pactl internal + Verify Active Source Port Using Pactl internal + # TODO: Somehow capture sound and confirm it is not malformed. + Log \Internal microphone detected, check validity of sound capture manually\n -*** Keywords *** -Audio Subsystem Detection - [Documentation] Check whether the audio subsystem is initialized correctly - ... and can be detected in Linux OS. - [Tags] robot:private - [Arguments] ${os_id} +AUD003.301 Internal Audio capture + [Documentation] Check whether the audio subsystem is able to capture + ... audio on Windows. To do so, we first determine presence of internal + ... capture device. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ${TEST_NAME} not supported + Skip If not ${INTERNAL_AUDIO_SUPPORT} ${TEST_NAME} requires internal Microphone Power On - Boot System Or From Connected Disk ${os_id} - Login To Linux - Switch To Root User + Login To Windows + ${out}= Get Sound Devices In Windows microphone + Should Not Be Empty ${out} + Should Contain ${out} ${POWERSHELL_STR_INTERNAL_IN} + Should Contain ${out} OK + # TODO: Somehow capture sound and confirm it is not malformed. + Log \Internal microphone detected, check validity of sound capture manually\n + +AUD004.201 External headset recognition + [Documentation] Check whether Ubuntu has recognized external headset, + ... after plugging in micro jack into slot. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ${TEST_NAME} not supported + Skip If not ${EXTERNAL_HEADSET_SUPPORT} ${TEST_NAME} not supported + Boot Into Ubuntu And Ensure Audio Subsystem Is Detected + Verify External Headset Is Plugged In + Switch Active Sink Port Using Pactl headphones + Verify Active Sink Port Using Pactl headphones + +AUD004.301 External headset recognition + [Documentation] Check whether Windows has recognized external headset, + ... after plugging in micro jack into slot. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ${TEST_NAME} not supported + Skip If not ${EXTERNAL_HEADSET_SUPPORT} ${TEST_NAME} not supported + Power On + Login To Windows + ${out}= Get Sound Devices In Windows speakers + Should Not Be Empty ${out} + Should Contain ${out} ${POWERSHELL_STR_HEADSET_OUT} + Should Contain ${out} OK + +AUD005.201 External headset audio playback + [Documentation] Check whether Ubuntu has capability to playback + ... sounds via external headset. + Skip If not ${EXTERNAL_HEADSET_SUPPORT} ${TEST_NAME} not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ${TEST_NAME} not supported + Boot Into Ubuntu And Ensure Audio Subsystem Is Detected + Verify External Headset Is Plugged In + Switch Active Sink Port Using Pactl headphones + Verify Active Sink Port Using Pactl headphones + # TODO: Use pulseaudio to record back the audio and maybe do simple + # waveform analysis. We could use modified headphones, in which + # the microphone is physically attached to the speaker. + Log \nHeadset speakers detected, please verify validity of playback manually\n - ${out}= Execute Linux Command cat /sys/class/sound/card0/hwC0D*/chip_name - Should Not Be Empty - ... ${DEVICE_AUDIO1} - ... msg=At least DEVICE_AUDIO01 must be defined in platform config if audio suite is enabled - Should Contain ${out} ${DEVICE_AUDIO1} - Should Contain ${out} ${DEVICE_AUDIO2} - Exit From Root User +AUD005.301 External headset audio playback + [Documentation] Check whether Windows has capability to playback + ... sounds via external headset. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ${TEST_NAME} not supported + Skip If not ${EXTERNAL_HEADSET_SUPPORT} ${TEST_NAME} not supported + Power On + Login To Windows + ${out}= Get Sound Devices In Windows speakers + Should Not Be Empty ${out} + Should Contain ${out} ${POWERSHELL_STR_HEADSET_OUT} + Should Contain ${out} OK + # TODO: Use some software to record back. We could use modified headphones, + # in which the microphone is physically attached to the speaker. + Log \nHeadset speakers detected, please verify validity of playback manually\n + +AUD006.201 External headset audio capture + [Documentation] Check whether Ubuntu has capability to capture sound + ... via external headset. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ${TEST_NAME} not supported + Skip If not ${EXTERNAL_HEADSET_SUPPORT} ${TEST_NAME} not supported + Boot Into Ubuntu And Ensure Audio Subsystem Is Detected + Verify External Headset Is Plugged In + Switch Active Source Port Using Pactl headphones + Verify Active Source Port Using Pactl headphones + # TODO: Use pulseaudio to record back the audio and maybe do simple + # waveform analysis. We could use modified headphones, in which + # the microphone is physically attached to the speaker. + Log \n Headset microphone detected, check validity of sound capture manually\n -External Headset Recognition +AUD006.301 External headset audio capture [Documentation] Check whether the external headset is recognized ... properly after plugging in micro jack into slot. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ${TEST_NAME} not supported + Skip If not ${EXTERNAL_HEADSET_SUPPORT} ${TEST_NAME} not supported + Power On + Login To Windows + ${out}= Get Sound Devices In Windows microphone + Should Not Be Empty ${out} + Should Contain ${out} ${POWERSHELL_STR_HEADSET_IN} + Should Contain ${out} OK + # TODO: If possible, use some software to capture sound, and compare + # waveforms with original audio, to verify it was not malformed. + Log \n Headset microphone detected, check validity of sound capture manually\n + +AUD007.201 HDMI Audio recognition + [Documentation] Check whether the HDMI audio is recognized + ... properly in Ubuntu after connecting HDMI display. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ${TEST_NAME} not supported + Skip If not ${HDMI_AUDIO_SUPPORT} ${TEST_NAME} not supported + Boot Into Ubuntu And Ensure Audio Subsystem Is Detected + Switch Active Sink Port Using Pactl hdmi + Verify Active Sink Port Using Pactl hdmi + +AUD007.301 HDMI Audio recognition + [Documentation] Check whether the HDMI audio is recognized + ... properly in Windows 11 after connecting HDMI display. + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} ${TEST_NAME} not supported + Skip If not ${HDMI_AUDIO_SUPPORT} ${TEST_NAME} not supported + Power On + Login To Windows + ${out}= Get Sound Devices In Windows display + Should Not Be Empty ${out} + Should Contain ${out} ${POWERSHELL_STR_HDMI_OUT} + Should Contain ${out} OK + + +*** Keywords *** +Prepare Audio Subsystem Test Suite + [Documentation] Run preparation steps for Audio Suite. + ... This includes regular importing platform config, + ... and package installation, separate for each system + [Tags] robot:private + Prepare Test Suite + Skip If not ${AUDIO_SUBSYSTEM_SUPPORT} Audio subsystem tests not supported + + IF ${TESTS_IN_UBUNTU_SUPPORT} + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Detect Or Install Package alsa-utils + Detect Or Install Package pulseaudio-utils + Exit From Root User + END + + # Disclaimer: Support for Fedora OS in future + # IF ${TESTS_IN_FEDORA_SUPPORT} + # Power On + # Boot System Or From Connected Disk ${ENV_ID_FEDORA} + # Login To Linux + # Switch To Root User + # Detect Or Install Package alsa-utils + # Detect Or Install Package pulseaudio-utils + # Exit From Root User + # END + +Boot Into Ubuntu And Ensure Audio Subsystem Is Detected + [Documentation] Ensures Ubuntu is currently active and that the + ... audio chip was detected. [Tags] robot:private - [Arguments] ${os_id} Power On - Boot System Or From Connected Disk ${os_id} + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux - Switch To Root User - ${out}= Execute Linux Command amixer -c 0 contents | grep -A 2 'Headphone' | cat - ${headset_string}= Set Variable values=on - Should Contain ${out} ${headset_string} - Exit From Root User + ${out}= Execute Command In Terminal cat /sys/class/sound/card0/hwC0D*/chip_name + Should Not Contain ${out} No such file or directory + +Get Sound Devices In Windows + [Documentation] Get and return sound devices via PowerShell + ... filtered as all devices, audio-sink only, or microphones only + [Tags] robot:private + [Arguments] ${class}=all + IF '${class}' == 'all' + ${filter_condition}= Set Variable + ... {$_.Class -match "Audio"} + ELSE IF '${class}' == 'speakers' + ${filter_condition}= Set Variable + ... {$_.Class -match "Audio" -and ($_.Name -match "Speaker" -or $_.Name -match "Output")} + ELSE IF '${class}' == 'microphone' + ${filter_condition}= Set Variable + ... {$_.Class -match "Audio" -and $_.Name -match "Microphone"} + ELSE IF '${class}' == 'display' + ${filter_condition}= Set Variable + ... {$_.Class -match "Audio" -and ($_.Name -match "Display" -or $_.Name -match "HDMI")} + END + + ${ps_command}= Evaluate + ... 'Get-PnpDevice -PresentOnly | Where-Object ${filter_condition} | Select-Object Name, Status' + ${out}= Execute Command In Terminal ${ps_command} + RETURN ${out} + +Switch Active Sink Port Using Pactl + [Documentation] Using Pulse Audio Controller (pactl), attempt to switch + ... to specified sink port. + [Tags] robot:private + [Arguments] ${class} + ${sink}= Execute Command In Terminal + ... pactl list short sinks | awk '{print $1}' + ${cmd}= Set Variable pactl set-sink-port ${sink} + + IF '${class}' == 'internal' + ${cmd}= Catenate ${cmd} ${PACTL_STR_INTERNAL_OUT} + ELSE IF '${class}' == 'headphones' + ${cmd}= Catenate ${cmd} ${PACTL_STR_HEADSET_OUT} + ELSE IF '${class}' == 'hdmi' + ${cmd}= Catenate ${cmd} ${PACTL_STR_HDMI_OUT} + ELSE + Fail Invalid audio class. Use: headphones, internal, or hdmi. + END + Execute Command In Terminal ${cmd} + +Switch Active Source Port Using Pactl + [Documentation] Using Pulse Audio Controller (pactl), attempt to switch + ... to specified source port. Due to limitations of audio subsystems, + ... to set a source port, we need to specify device by full name, + ... so we filter it with "grep alsa_input", in contrast to sink change + ... which only requires a numeric ID. + [Tags] robot:private + [Arguments] ${class} + ${source}= Execute Command In Terminal + ... pactl list sources | grep alsa_input | awk 'NR==1 {print $2}' + ${cmd}= Set Variable pactl set-source-port ${source} + + IF '${class}' == 'internal' + ${cmd}= Catenate ${cmd} ${PACTL_STR_INTERNAL_IN} + ELSE IF '${class}' == 'headphones' + ${cmd}= Catenate ${cmd} ${PACTL_STR_HEADSET_IN} + ELSE + Fail Invalid audio class. Use: headphones or internal. + END + Execute Command In Terminal ${cmd} + +Verify Active Sink Port Using Pactl + [Documentation] Using Pulse Audio Controller (pactl), verify that specified + ... class of sink ports aka audio output is available + [Tags] robot:private + [Arguments] ${class} + ${sinks}= Execute Command In Terminal pactl list sinks | grep "Active Port" + Should Not Be Empty ${sinks} + + IF '${class}' == 'internal' + Should Contain ${sinks} ${PACTL_STR_INTERNAL_OUT} + ELSE IF '${class}' == 'hdmi' + Should Contain ${sinks} ${PACTL_STR_HDMI_OUT} + ELSE IF '${class}' == 'headphones' + Should Contain ${sinks} ${PACTL_STR_HEADSET_OUT} + ELSE + Fail Invalid audio class. Use: headphones, internal, or hdmi. + END + +Verify Active Source Port Using Pactl + [Documentation] Using Pulse Audio Controller (pactl), verify that specified + ... class of source ports is available + [Tags] robot:private + [Arguments] ${class} + ${sources}= Execute Command In Terminal pactl list sources | grep "Active Port" + Should Not Be Empty ${sources} + + IF '${class}' == 'internal' + Should Contain ${sources} ${PACTL_STR_INTERNAL_IN} + ELSE IF '${class}' == 'headphones' + Should Contain ${sources} ${PACTL_STR_HEADSET_IN} + ELSE + Fail Invalid audio source class. Use: headphones or internal. + END + +Verify External Headset Is Plugged In + [Documentation] Using Pulse Audio Controller (pactl), verify that + ... external headset is plugged in. + [Tags] robot:private + ${result}= Execute Command In Terminal + ... pactl list sinks | grep analog-output-headphones | awk 'NR==1' + Should Not Contain ${result} not available diff --git a/keywords.robot b/keywords.robot index 6bb4c98704..78c33c0db4 100644 --- a/keywords.robot +++ b/keywords.robot @@ -698,13 +698,6 @@ Get Power Supply State ${state}= Rte Psu Get RETURN ${state} -Get Sound Devices Windows - [Documentation] Get and return all sound devices in Windows OS using - ... PowerShell - ${out}= Execute Command In Terminal - ... Get-PnpDevice -PresentOnly | Where-Object {$_.Class -match "Audio" -or $_.Name -match "Audio"} | Select-Object Name, Status - RETURN ${out} - Get USB Devices Windows [Documentation] Get and return all USB devices in Windows OS using ... PowerShell diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index c726970a92..67efc2b5a0 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -64,9 +64,6 @@ ${DMIDECODE_TYPE}= ${TBD} ${DEVICE_USB_KEYBOARD}= ${TBD} ${DEVICE_NVME_DISK}= ${TBD} -${DEVICE_AUDIO1}= ${TBD} -${DEVICE_AUDIO2}= ${TBD} -${DEVICE_AUDIO1_WIN}= ${TBD} ${WIFI_CARD_UBUNTU}= ${TBD} ${USB_MODEL}= ${TBD} ${USB_DEVICE}= ${TBD} @@ -120,6 +117,8 @@ ${WIRELESS_CARD_BLUETOOTH_SUPPORT}= ${FALSE} ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${FALSE} ${AUDIO_SUBSYSTEM_SUPPORT}= ${FALSE} ${EXTERNAL_HEADSET_SUPPORT}= ${FALSE} +${INTERNAL_AUDIO_SUPPORT}= ${FALSE} +${HDMI_AUDIO_SUPPORT}= ${FALSE} ${SUSPEND_AND_RESUME_SUPPORT}= ${FALSE} ${SERIAL_NUMBER_VERIFICATION}= ${FALSE} ${SERIAL_FROM_MAC}= ${FALSE} diff --git a/platform-configs/include/msi-z690-common.robot b/platform-configs/include/msi-z690-common.robot index 12a32b9989..3139b95870 100644 --- a/platform-configs/include/msi-z690-common.robot +++ b/platform-configs/include/msi-z690-common.robot @@ -34,9 +34,6 @@ ${DMIDECODE_TYPE}= Desktop ${DEVICE_USB_KEYBOARD}= SiGma Micro Keyboard TRACER Gamma Ivory ${DEVICE_NVME_DISK}= Non-Volatile memory controller -${DEVICE_AUDIO1}= ALC897 -${DEVICE_AUDIO2}= Alderlake HDMI -${DEVICE_AUDIO1_WIN}= Realtek High Definition Audio ${WIFI_CARD_UBUNTU}= ${TBD} ${USB_MODEL}= Kingston ${USB_DEVICE}= Multifunction Composite Gadget diff --git a/platform-configs/include/novacustom-adl.robot b/platform-configs/include/novacustom-adl.robot index 366e11d294..5c3b02b0c0 100644 --- a/platform-configs/include/novacustom-adl.robot +++ b/platform-configs/include/novacustom-adl.robot @@ -11,11 +11,6 @@ ${DEF_THREADS_TOTAL}= 16 ${DEF_ONLINE_CPU}= 0-15 ${DEF_SOCKETS}= 1 -# Audio -${DEVICE_AUDIO1}= ALC256 -${DEVICE_AUDIO2}= Alderlake-P HDMI -${DEVICE_AUDIO1_WIN}= Realtek High Definition Audio - # Connectivity ${WIFI_CARD}= Intel(R) Wi-Fi 6 AX201 160MHz ${WIFI_CARD_UBUNTU}= Intel Corporation Alder Lake-P PCH CNVi WiFi (rev 01) diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index b75d978520..9b367a3eac 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -69,6 +69,7 @@ ${WIRELESS_CARD_WIFI_SUPPORT}= ${TRUE} ${WIRELESS_CARD_BLUETOOTH_SUPPORT}= ${TRUE} ${AUDIO_SUBSYSTEM_SUPPORT}= ${TRUE} ${EXTERNAL_HEADSET_SUPPORT}= ${TRUE} +${INTERNAL_AUDIO_SUPPORT}= ${TRUE} ${SUSPEND_AND_RESUME_SUPPORT}= ${TRUE} ${FIRMWARE_NUMBER_VERIFICATION}= ${TRUE} ${PRODUCT_NAME_VERIFICATION}= ${TRUE} diff --git a/platform-configs/include/novacustom-mtl.robot b/platform-configs/include/novacustom-mtl.robot index f77af2df46..43d737aad7 100644 --- a/platform-configs/include/novacustom-mtl.robot +++ b/platform-configs/include/novacustom-mtl.robot @@ -13,11 +13,6 @@ ${DEF_THREADS_TOTAL}= 22 ${DEF_ONLINE_CPU}= 0-21 ${DEF_SOCKETS}= 1 -# Audio -${DEVICE_AUDIO1}= ALC245 -${DEVICE_AUDIO2}= Intel Meteor Lake HDMI -${DEVICE_AUDIO1_WIN}= Realtek High Definition Audio - # Connectivity ${WIFI_CARD}= Intel(R) Wi-Fi 6 AX201 160MHz ${WIFI_CARD_UBUNTU}= Intel Corporation Meteor Lake PCH CNVi WiFi (rev 20) diff --git a/platform-configs/include/novacustom-tgl.robot b/platform-configs/include/novacustom-tgl.robot index d898bf5967..ff29a04276 100644 --- a/platform-configs/include/novacustom-tgl.robot +++ b/platform-configs/include/novacustom-tgl.robot @@ -11,11 +11,6 @@ ${DEF_THREADS_TOTAL}= ${TBD} ${DEF_ONLINE_CPU}= 0-7 ${DEF_SOCKETS}= 1 -# Audio -${DEVICE_AUDIO1}= ALC293 -${DEVICE_AUDIO2}= Tigerlake HDMI -${DEVICE_AUDIO1_WIN}= Realtek High Definition Audio - # Connectivity ${WIFI_CARD}= Intel(R) Wi-Fi 6 AX201 160MHz ${WIFI_CARD_UBUNTU}= Intel Corporation Wi-Fi 6 AX201 (rev 20) diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index b2e6aecbe1..a84060368d 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -74,6 +74,7 @@ ${USB_DISKS_DETECTION_SUPPORT}= ${TRUE} ${USB_KEYBOARD_DETECTION_SUPPORT}= ${TRUE} ${DCU_UUID_SUPPORT}= ${TRUE} ${DCU_SERIAL_SUPPORT}= ${TRUE} +${HDMI_AUDIO_SUPPORT}= ${TRUE} # Test module: dasharo-security ${TPM_SUPPORTED_VERSION}= 2 diff --git a/platform-configs/include/protectli-v1x10.robot b/platform-configs/include/protectli-v1x10.robot index 93ebd0f4d2..ecb885346a 100644 --- a/platform-configs/include/protectli-v1x10.robot +++ b/platform-configs/include/protectli-v1x10.robot @@ -16,8 +16,6 @@ ${MAX_CPU_TEMP}= 77 ${E_MMC_NAME}= BJTD4R -${DEVICE_AUDIO1}= Jasperlake HDMI - ${DMIDECODE_SERIAL_NUMBER}= N/A ${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v ${DMIDECODE_RELEASE_DATE}= ${EMPTY} diff --git a/platform-configs/include/protectli-vp46xx.robot b/platform-configs/include/protectli-vp46xx.robot index e249cb7410..e5ea79e9a9 100644 --- a/platform-configs/include/protectli-vp46xx.robot +++ b/platform-configs/include/protectli-vp46xx.robot @@ -6,9 +6,6 @@ Resource protectli-common.robot *** Variables *** ${FLASH_SIZE}= ${16*1024*1024} -${DEVICE_AUDIO1}= ALC897 -${DEVICE_AUDIO2}= Kabylake HDMI -${DEVICE_AUDIO1_WIN}= High Definition Audio Device ${INITIAL_CPU_FREQUENCY}= 2600 ${MAX_CPU_TEMP}= 82 ${WATCHDOG_SUPPORT}= ${TRUE} diff --git a/platform-configs/include/protectli-vp66xx.robot b/platform-configs/include/protectli-vp66xx.robot index d1668249af..1571101204 100644 --- a/platform-configs/include/protectli-vp66xx.robot +++ b/platform-configs/include/protectli-vp66xx.robot @@ -5,9 +5,6 @@ Resource protectli-common.robot *** Variables *** ${FLASH_SIZE}= ${16*1024*1024} - -${DEVICE_AUDIO1}= Alderlake-P HDMI -${DEVICE_AUDIO1_WIN}= High Definition Audio Device ${INITIAL_CPU_FREQUENCY}= 2600 ${MAX_CPU_TEMP}= 82 diff --git a/platform-configs/msi-pro-z690-a-ddr5.robot b/platform-configs/msi-pro-z690-a-ddr5.robot index bec0ae400a..a917d08611 100644 --- a/platform-configs/msi-pro-z690-a-ddr5.robot +++ b/platform-configs/msi-pro-z690-a-ddr5.robot @@ -9,8 +9,6 @@ ${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) ${FW_VERSION} ${DMIDECODE_PRODUCT_NAME}= MS-7D25 ${DMIDECODE_RELEASE_DATE}= 09/27/2024 -${DEVICE_AUDIO2}= Raptorlake HDMI - ${CPU_MAX_FREQUENCY}= 5200 ${CPU_MIN_FREQUENCY}= 300 diff --git a/platform-configs/msi-pro-z690-a-wifi-ddr4.robot b/platform-configs/msi-pro-z690-a-wifi-ddr4.robot index 8670fcbed7..d736c590cc 100644 --- a/platform-configs/msi-pro-z690-a-wifi-ddr4.robot +++ b/platform-configs/msi-pro-z690-a-wifi-ddr4.robot @@ -19,8 +19,6 @@ ${WIRELESS_CARD_BLUETOOTH_SUPPORT}= ${TRUE} ${CPU_MAX_FREQUENCY}= 5000 ${CPU_MIN_FREQUENCY}= 300 -${DEVICE_AUDIO2}= Raptorlake HDMI - # We have 2 such platforms in the lab and options below are suitable only for one of them as they have different CPUs. ${DEF_THREADS_PER_CORE}= 2 ${DEF_THREADS_TOTAL}= 28 diff --git a/platform-configs/msi-pro-z790-p-ddr5.robot b/platform-configs/msi-pro-z790-p-ddr5.robot index 7cea92b33a..cfa76afe7d 100644 --- a/platform-configs/msi-pro-z790-p-ddr5.robot +++ b/platform-configs/msi-pro-z790-p-ddr5.robot @@ -11,5 +11,3 @@ ${DMIDECODE_RELEASE_DATE}= 11/27/2023 ${CPU_MAX_FREQUENCY}= 5200 ${CPU_MIN_FREQUENCY}= 300 - -${DEVICE_AUDIO2}= Raptorlake HDMI diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index cd7ec59702..4017ceeebc 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -24,8 +24,6 @@ ${DMIDECODE_TYPE}= Desktop ${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 ${DEVICE_NVME_DISK}= Non-Volatile memory controller ${CLEVO_DISK}= Samsung SSD 990 PRO 1TB -${DEVICE_AUDIO1}= ALC897 -${DEVICE_AUDIO2}= Alderlake-P HDMI ${USB_DEVICE}= Multifunction Composite Gadget ${FLASHROM_FLAGS}= ${TBD} ${TESTS_IN_FIRMWARE_SUPPORT}= ${TRUE} diff --git a/platform-configs/optiplex-7010.robot b/platform-configs/optiplex-7010.robot index c961a43a33..92f974843f 100644 --- a/platform-configs/optiplex-7010.robot +++ b/platform-configs/optiplex-7010.robot @@ -24,7 +24,6 @@ ${DEF_CPU}= 2 ${DRAM_SIZE}= ${16384} ${PLATFORM_RAM_SIZE}= 16384 -${DEVICE_AUDIO1}= DA Intel PCH ${DMIDECODE_PRODUCT_NAME}= OptiPlex 9010 ${DMIDECODE_SERIAL_NUMBER}= 123456789 ${DMIDECODE_MANUFACTURER}= Dell Inc. diff --git a/platform-configs/protectli-vp2410.robot b/platform-configs/protectli-vp2410.robot index c699a2d96a..05c7ff92e7 100644 --- a/platform-configs/protectli-vp2410.robot +++ b/platform-configs/protectli-vp2410.robot @@ -27,8 +27,6 @@ ${DMIDECODE_VENDOR}= 3mdeb ${DMIDECODE_FAMILY}= Vault Pro ${DMIDECODE_TYPE}= Desktop -${DEVICE_AUDIO1}= "Gemini Lake HDMI" - ${L3_CACHE_SUPPORT}= ${FALSE} ${DASHARO_SECURITY_MENU_SUPPORT}= ${TRUE} diff --git a/platform-configs/protectli-vp2420.robot b/platform-configs/protectli-vp2420.robot index b2835e168e..5d2be09413 100644 --- a/platform-configs/protectli-vp2420.robot +++ b/platform-configs/protectli-vp2420.robot @@ -46,9 +46,6 @@ ${NVME_DISK_SUPPORT}= ${FALSE} ${TPM_EXPECTED_CHIP}= SLB9670 -${DEVICE_AUDIO1_WIN}= Display Audio -${DEVICE_AUDIO1}= EA244WMi - *** Keywords *** Flash Protectli VP2420 Internal diff --git a/platform-configs/protectli-vp2430.robot b/platform-configs/protectli-vp2430.robot index 7bbc0959ee..a5bca28429 100644 --- a/platform-configs/protectli-vp2430.robot +++ b/platform-configs/protectli-vp2430.robot @@ -32,8 +32,6 @@ ${PLATFORM_RAM_SIZE}= 16384 ${CPU}= Intel(R) N100 -${DEVICE_AUDIO1}= Alderlake-P HDMI -${DEVICE_AUDIO1_WIN}= ${TBD} ${WIFI_CARD}= Qualcomm Atheros QCA61x4A Wireless Network Adapter ${WIFI_CARD_UBUNTU}= Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32) ${BLUETOOTH_CARD_UBUNTU}= Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32) diff --git a/platform-configs/protectli-vp3230.robot b/platform-configs/protectli-vp3230.robot index 6197ebc0b1..738b373eb2 100644 --- a/platform-configs/protectli-vp3230.robot +++ b/platform-configs/protectli-vp3230.robot @@ -34,9 +34,6 @@ ${DEF_THREADS_PER_CORE}= 1 ${DEF_CORES_PER_SOCKET}= 8 ${DEF_SOCKETS}= 1 ${DEF_ONLINE_CPU}= 0-7 -${DEVICE_AUDIO1}= Alderlake-P HDMI -${DEVICE_AUDIO2}= ${EMPTY} -${DEVICE_AUDIO1_WIN}= High Definition Audio Controller ${DEVICE_NVME_DISK}= N/A ${CLEVO_DISK}= N/A diff --git a/platform-configs/rpi-3b.robot b/platform-configs/rpi-3b.robot index 7ab6362c80..3394809121 100644 --- a/platform-configs/rpi-3b.robot +++ b/platform-configs/rpi-3b.robot @@ -33,9 +33,6 @@ ${LAPTOP_EC_SERIAL_WORKAROUND}= ${FALSE} ${DEVICE_USB_KEYBOARD}= ${TBD} ${DEVICE_NVME_DISK}= ${TBD} -${DEVICE_AUDIO1}= ${TBD} -${DEVICE_AUDIO2}= ${TBD} -${DEVICE_AUDIO1_WIN}= ${TBD} ${INITIAL_CPU_FREQUENCY}= ${TBD} # SD Wire config diff --git a/scripts/get-robot-variables.sh b/scripts/get-robot-variables.sh index 82ccf911e0..4cc9928de6 100755 --- a/scripts/get-robot-variables.sh +++ b/scripts/get-robot-variables.sh @@ -150,15 +150,6 @@ DMIDECODE_PRODUCT_NAME=$(sudo dmidecode -t baseboard | grep "Product Name:" | aw DMIDECODE_FAMILY=$(sudo dmidecode -t system | grep Family | awk -F ":" '{print $2}') DMIDECODE_TYPE=$(sudo dmidecode -t chassis | grep Type | awk -F ":" '{print $2}') -# Collecting Audio device information -audio_device_names=$(aplay -l 2>/dev/null | awk -F'[][]' '/card [0-9]+: / {print $2}' | sort -u) - -counter=0 -while IFS= read -r audio_device_name; do - ((counter++)) - eval "DEVICE_AUDIO$counter='$audio_device_name'" -done <<< "$audio_device_names" - # cbmem and TPM detection variables CBMEM_BINARY_PATH="/usr/local/bin/cbmem" CBMEM_EXPECTED_HASH="169c5a5a63699cb37cf08d1eff83e59f146ffa98cf283145f27adecc081ac3f6" @@ -247,12 +238,6 @@ if [ "$PRINT" = true ]; then echo "\${DEF_CORES_PER_SOCKET}= ${DEF_CORES_PER_SOCKET}" echo "\${DEF_SOCKETS}= ${DEF_SOCKETS}" echo "\${DEF_ONLINE_CPU}= ${DEF_ONLINE_CPU}" - echo - echo "-----------------------Audio Devices----------------" - for i in $(seq 1 $counter); do - eval "audio_device_name=\$DEVICE_AUDIO$i" - echo "\${DEVICE_AUDIO$i}= $audio_device_name" - done fi # Create Robot Framework file @@ -317,13 +302,6 @@ fi [[ -n "$TPM_SUPPORTED_VERSION" ]] && echo "\${TPM_SUPPORTED_VERSION}= $TPM_SUPPORTED_VERSION" [[ -n "$TPM_EXPECTED_CHIP" ]] && echo "\${TPM_EXPECTED_CHIP}= $TPM_EXPECTED_CHIP" - for i in $(seq 1 $counter); do - eval "audio_device_name=\$DEVICE_AUDIO$i" - if [[ -n "$audio_device_name" ]]; then - echo "\${DEVICE_AUDIO$i}= $audio_device_name" - fi - done - echo echo "# Default variables" @@ -334,7 +312,7 @@ fi DMIDECODE_MANUFACTURER DMIDECODE_SERIAL_NUMBER DMIDECODE_PRODUCT_NAME \ DMIDECODE_FAMILY DMIDECODE_TYPE \ DEF_THREADS_TOTAL DEF_THREADS_PER_CORE DEF_CORES_PER_SOCKET DEF_SOCKETS \ - DEF_ONLINE_CPU DEVICE_AUDIO1 DEVICE_AUDIO2 DEVICE_AUDIO3" \ + DEF_ONLINE_CPU" \ ' BEGIN { split(keys, arr); for (i in arr) exclude[arr[i]] = 1 } !/^(\$\{.*)=/ { print; next } From e82226be682681a49987aa5255e86435c43b3ff5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 09:39:18 +0200 Subject: [PATCH 338/416] usb-type-a-devices-detection: Add Fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../usb-type-a-devices-detection.robot | 185 +++++++++++++----- 1 file changed, 141 insertions(+), 44 deletions(-) diff --git a/dasharo-stability/usb-type-a-devices-detection.robot b/dasharo-stability/usb-type-a-devices-detection.robot index 5caf540529..a1fb2230e2 100644 --- a/dasharo-stability/usb-type-a-devices-detection.robot +++ b/dasharo-stability/usb-type-a-devices-detection.robot @@ -47,79 +47,146 @@ Suite Teardown Run Keyword # END # Exit from root user -SUD002.001 USB devices detection after warm boot (Ubuntu) +SUD002.201 USB devices detection after warm boot (Ubuntu) [Documentation] Check whether the external USB devices are detected ... correctly after a warm boot. - Skip If not ${USB_TYPE-a_devices_detection_support} SUD002.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUD002.001 not supported + ... Previous IDs: SUD002.001 + Skip If not ${USB_TYPE-a_devices_detection_support} SUD002.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUD002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SUD002.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - ${out}= List Devices In Linux usb - Should Contain ${out} ${USB_DEVICE} - - FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_WARMBOOT_ITERATIONS} - Perform Warmboot Using Rtcwake - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${out}= List Devices In Linux usb - Should Contain ${out} ${USB_DEVICE} - END + USB Devices Detection After Warm Boot Exit From Root User -SUD003.001 USB devices detection after reboot (Ubuntu) +SUD003.201 USB devices detection after reboot (Ubuntu) [Documentation] Check whether the external USB devices are detected ... correctly after a reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUD003.001 not supported + ... Previous IDs: SUD003.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUD003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SUD003.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - ${out}= List Devices In Linux usb - Should Contain ${out} ${USB_DEVICE} - FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} - Execute Reboot Command - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${out}= List Devices In Linux usb - Should Contain ${out} ${USB_DEVICE} - END + USB Devices Detection After Reboot + Exit From Root User -SUD004.001 USB devices detection after suspension (Ubuntu) +SUD004.201 USB devices detection after suspension (Ubuntu) [Documentation] Check whether the external USB devices are detected ... correctly after suspension. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUD004.001 not supported - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUD004.001 not supported - USB Devices Detection After Suspension (Ubuntu) + ... Previous IDs: SUD004.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUD004.201 not supported + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUD004.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SUD004.201 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + USB Devices Detection After Suspension + Exit From Root User -SUD004.002 USB devices detection after suspension (Ubuntu) (S0ix) +SUD005.201 USB devices detection after suspension (Ubuntu) (S0ix) [Documentation] Check whether the external USB devices are detected ... correctly after suspension. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUD004.002 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUD004.002 not supported + ... Previous IDs: SUD004.002 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUD005.201 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUD005.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SUD005.201 not supported Set Platform Sleep Type S0ix - USB Devices Detection After Suspension (Ubuntu) S0ix + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + USB Devices Detection After Suspension S0ix + Exit From Root User -SUD004.003 USB devices detection after suspension (Ubuntu) (S3) +SUD006.201 USB devices detection after suspension (Ubuntu) (S3) [Documentation] Check whether the external USB devices are detected ... correctly after suspension. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUD004.003 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUD004.003 not supported + ... Previous IDs: SUD004.003 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUD006.201 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUD006.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SUD006.201 not supported Set Platform Sleep Type S3 - USB Devices Detection After Suspension (Ubuntu) S3 + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + USB Devices Detection After Suspension S3 + Exit From Root User +SUD002.202 USB devices detection after warm boot (Fedora) + [Documentation] Check whether the external USB devices are detected + ... correctly after a warm boot. + Skip If not ${USB_TYPE-a_devices_detection_support} SUD002.201 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SUD002.201 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + USB Devices Detection After Warm Boot + Exit From Root User -*** Keywords *** -USB Devices Detection After Suspension (Ubuntu) - [Arguments] ${platform_sleep_type}=${EMPTY} +SUD003.202 USB devices detection after reboot (Fedora) + [Documentation] Check whether the external USB devices are detected + ... correctly after a reboot. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SUD003.202 not supported Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + USB Devices Detection After Reboot + Exit From Root User + +SUD004.202 USB devices detection after suspension (Fedora) + [Documentation] Check whether the external USB devices are detected + ... correctly after suspension. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUD004.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SUD004.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + USB Devices Detection After Suspension + Exit From Root User + +SUD005.202 USB devices detection after suspension (Fedora) (S0ix) + [Documentation] Check whether the external USB devices are detected + ... correctly after suspension. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUD005.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SUD005.202 not supported + Set Platform Sleep Type S0ix + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + USB Devices Detection After Suspension S0ix + Exit From Root User + +SUD006.202 USB devices detection after suspension (Fedora) (S3) + [Documentation] Check whether the external USB devices are detected + ... correctly after suspension. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUD006.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SUD006.202 not supported + Set Platform Sleep Type S3 + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} Login To Linux - Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User + USB Devices Detection After Suspension S3 + Exit From Root User + + +*** Keywords *** +USB Devices Detection After Suspension + [Documentation] Check whether the external USB devices are detected + ... correctly after suspension. + [Tags] robot:private + [Arguments] ${platform_sleep_type}=${EMPTY} + Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} ${out}= List Devices In Linux usb Should Contain ${out} ${USB_DEVICE} FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_SUSPEND_ITERATIONS} @@ -127,4 +194,34 @@ USB Devices Detection After Suspension (Ubuntu) ${out}= List Devices In Linux usb Should Contain ${out} ${USB_DEVICE} END - Exit From Root User + +USB Devices Detection After Warm Boot + [Documentation] Check whether the external USB devices are detected + ... correctly after a warm boot. + [Tags] robot:private + ${out}= List Devices In Linux usb + Should Contain ${out} ${USB_DEVICE} + + FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_WARMBOOT_ITERATIONS} + Perform Warmboot Using Rtcwake + Boot System Or From Connected Disk ${BOOTED_OS_ID} + Login To Linux + Switch To Root User + ${out}= List Devices In Linux usb + Should Contain ${out} ${USB_DEVICE} + END + +USB Devices Detection After Reboot + [Documentation] Check whether the external USB devices are detected + ... correctly after a reboot. + [Tags] robot:private + ${out}= List Devices In Linux usb + Should Contain ${out} ${USB_DEVICE} + FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} + Execute Reboot Command + Boot System Or From Connected Disk ${BOOTED_OS_ID} + Login To Linux + Switch To Root User + ${out}= List Devices In Linux usb + Should Contain ${out} ${USB_DEVICE} + END From b614e2698a7f6c12a6ff0332103fe4509b27c771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 10:09:44 +0200 Subject: [PATCH 339/416] novacustom-common: Add dasharo-stability variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- platform-configs/include/novacustom-common.robot | 5 +++++ platform-configs/novacustom-v540tu.robot | 1 + 2 files changed, 6 insertions(+) diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index 9b367a3eac..8e2e6b250b 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -136,6 +136,11 @@ ${USB_TYPE-A_DEVICES_DETECTION_SUPPORT}= ${TRUE} ${TPM_DETECT_SUPPORT}= ${TRUE} ${NETWORK_INTERFACE_AFTER_SUSPEND_SUPPORT}= ${TRUE} +${STABILITY_DETECTION_COLDBOOT_ITERATIONS}= 2 +${STABILITY_DETECTION_WARMBOOT_ITERATIONS}= 2 +${STABILITY_DETECTION_REBOOT_ITERATIONS}= 2 +${STABILITY_DETECTION_SUSPEND_ITERATIONS}= 2 + ${L2_CACHE_SUPPORT}= ${TRUE} diff --git a/platform-configs/novacustom-v540tu.robot b/platform-configs/novacustom-v540tu.robot index c3267275de..27c7e553db 100644 --- a/platform-configs/novacustom-v540tu.robot +++ b/platform-configs/novacustom-v540tu.robot @@ -22,6 +22,7 @@ ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${FALSE} ${DEFAULT_BOOT_OS_ID}= ${ENV_ID_UBUNTU} @{TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} ${ENV_ID_FEDORA} ${CLEVO_USB_C_HUB}= Thunderbolt 4 Dock +${USB_DEVICE}= Linux # Benchmark reference data to nvidia model From f9c00f1cdc4db02c4f44cdb33fdc20edc5566bdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 10:10:19 +0200 Subject: [PATCH 340/416] nvme-detection: Add Fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-stability/nvme-detection.robot | 184 +++++++++++++++++++------ 1 file changed, 139 insertions(+), 45 deletions(-) diff --git a/dasharo-stability/nvme-detection.robot b/dasharo-stability/nvme-detection.robot index c22da2e440..597c700ca1 100644 --- a/dasharo-stability/nvme-detection.robot +++ b/dasharo-stability/nvme-detection.robot @@ -45,79 +45,144 @@ Suite Teardown Run Keyword # END # Exit from root user -SNV0002.001 NVMe detection after warm boot (Ubuntu) +SNV002.201 NVMe detection after warm boot (Ubuntu) [Documentation] Check whether the NVMe disk is detected and working ... correctly after performing a warm boot. - Skip If not ${NVME_DETECTION_SUPPORT} SNV002.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SNV002.001 not supported + ... Previous IDs: SNV002.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SNV002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SNV002.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - ${out}= List Devices In Linux pci - Should Contain ${out} ${DEVICE_NVME_DISK} - FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_WARMBOOT_ITERATIONS} - Perform Warmboot Using Rtcwake - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${out}= List Devices In Linux pci - Should Contain ${out} ${DEVICE_NVME_DISK} - END + NVMe Detection After Warm Boot + Exit From Root User -SNV003.001 NVMe detection after reboot (Ubuntu) +SNV003.201 NVMe detection after reboot (Ubuntu) [Documentation] Check whether the NVMe disk is detected and working ... correctly after performing a reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SNV003.001 not supported + ... Previous IDs: SNV003.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SNV003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SNV003.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - ${out}= List Devices In Linux pci - Should Contain ${out} ${DEVICE_NVME_DISK} - FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} - Execute Reboot Command - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${out}= List Devices In Linux pci - Should Contain ${out} ${DEVICE_NVME_DISK} - END + NVMe Detection After Reboot + Exit From Root User -SNV004.001 NVMe detection after suspension (Ubuntu) +SNV004.201 NVMe detection after suspension (Ubuntu) [Documentation] Check whether the NVMe disk is correctly detected after ... performing suspension. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SNV004.001 not supported - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} SNV004.001 not supported - NVMe Detection After Suspension (Ubuntu) + ... Previous IDs: SNV004.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SNV004.201 not supported + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} SNV004.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SNV004.201 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + NVMe Detection After Suspension + Exit From Root User -SNV004.002 NVMe detection after suspension (Ubuntu) (S0ix) +SNV005.201 NVMe detection after suspension (Ubuntu) (S0ix) [Documentation] Check whether the NVMe disk is correctly detected after ... performing suspension. - Skip If not ${NVME_DETECTION_SUPPORT} SNV004.002 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SNV004.002 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SNV004.002 not supported + ... Previous IDs: SNV004.002 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SNV005.201 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SNV005.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SNV005.201 not supported Set Platform Sleep Type S0ix - NVMe Detection After Suspension (Ubuntu) S0ix + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + NVMe Detection After Suspension S0ix + Exit From Root User -SNV004.003 NVMe detection after suspension (Ubuntu) (S3) +SNV006.201 NVMe detection after suspension (Ubuntu) (S3) [Documentation] Check whether the NVMe disk is correctly detected after ... performing suspension. - Skip If not ${NVME_DETECTION_SUPPORT} SNV004.003 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SNV004.003 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SNV004.003 not supported + ... Previous IDs: SNV004.003 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SNV006.201 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SNV006.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SNV006.201 not supported Set Platform Sleep Type S3 - NVMe Detection After Suspension (Ubuntu) S3 + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + NVMe Detection After Suspension S3 + Exit From Root User +SNV002.202 NVMe detection after warm boot (Fedora) + [Documentation] Check whether the NVMe disk is detected and working + ... correctly after performing a warm boot. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SNV002.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + NVMe Detection After Warm Boot + Exit From Root User -*** Keywords *** -NVMe Detection After Suspension (Ubuntu) - [Arguments] ${platform_sleep_type}=${EMPTY} +SNV003.202 NVMe detection after reboot (Fedora) + [Documentation] Check whether the NVMe disk is detected and working + ... correctly after performing a reboot. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SNV003.202 not supported Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${ENV_ID_FEDORA} Login To Linux - Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User + NVMe Detection After Reboot + Exit From Root User + +SNV004.202 NVMe detection after suspension (Fedora) + [Documentation] Check whether the NVMe disk is correctly detected after + ... performing suspension. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} SNV004.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SNV004.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + NVMe Detection After Suspension + Exit From Root User + +SNV005.202 NVMe detection after suspension (Fedora) (S0ix) + [Documentation] Check whether the NVMe disk is correctly detected after + ... performing suspension. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SNV005.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SNV005.202 not supported + Set Platform Sleep Type S0ix + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + NVMe Detection After Suspension S0ix + Exit From Root User + +SNV006.202 NVMe detection after suspension (Fedora) (S3) + [Documentation] Check whether the NVMe disk is correctly detected after + ... performing suspension. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SNV006.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SNV006.202 not supported + Set Platform Sleep Type S3 + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + NVMe Detection After Suspension S3 + Exit From Root User + + +*** Keywords *** +NVMe Detection After Suspension + [Documentation] Check whether the NVMe disk is correctly detected after + ... performing suspension. + [Tags] robot:private + [Arguments] ${platform_sleep_type}=${EMPTY} + Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} ${out}= List Devices In Linux pci Should Contain ${out} ${DEVICE_NVME_DISK} FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_SUSPEND_ITERATIONS} @@ -125,4 +190,33 @@ NVMe Detection After Suspension (Ubuntu) ${out}= List Devices In Linux pci Should Contain ${out} ${DEVICE_NVME_DISK} END - Exit From Root User + +NVMe Detection After Reboot + [Documentation] Check whether the NVMe disk is detected and working + ... correctly after performing a reboot. + [Tags] robot:private + ${out}= List Devices In Linux pci + Should Contain ${out} ${DEVICE_NVME_DISK} + FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} + Execute Reboot Command + Boot System Or From Connected Disk ${BOOTED_OS_ID} + Login To Linux + Switch To Root User + ${out}= List Devices In Linux pci + Should Contain ${out} ${DEVICE_NVME_DISK} + END + +NVMe Detection After Warm Boot + [Documentation] Check whether the NVMe disk is detected and working + ... correctly after performing a warm boot. + [Tags] robot:private + ${out}= List Devices In Linux pci + Should Contain ${out} ${DEVICE_NVME_DISK} + FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_WARMBOOT_ITERATIONS} + Perform Warmboot Using Rtcwake + Boot System Or From Connected Disk ${BOOTED_OS_ID} + Login To Linux + Switch To Root User + ${out}= List Devices In Linux pci + Should Contain ${out} ${DEVICE_NVME_DISK} + END From f6eaf68d7d6aeb84751db2e01300fed134615853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 11:01:19 +0200 Subject: [PATCH 341/416] platform-suspend-and-resume: Add Fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../platform-suspend-and-resume.robot | 99 +++++++++++++++---- 1 file changed, 78 insertions(+), 21 deletions(-) diff --git a/dasharo-compatibility/platform-suspend-and-resume.robot b/dasharo-compatibility/platform-suspend-and-resume.robot index 572fe118bd..83fd65cb7b 100644 --- a/dasharo-compatibility/platform-suspend-and-resume.robot +++ b/dasharo-compatibility/platform-suspend-and-resume.robot @@ -18,43 +18,100 @@ Suite Teardown Log Out And Close Connection *** Test Cases *** -SUSP005.001 Cyclic platform suspend and resume (Ubuntu) +SUSP005.201 Cyclic platform suspend and resume (Ubuntu) [Documentation] This test aims to verify that the DUT platform suspend ... and resume procedure performed cyclically works correctly - Skip If not ${SUSPEND_AND_RESUME_SUPPORT} SUSP005.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUSP005.001 not supported - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUSP005.001 not supported - Cyclic Platform Suspend And Resume (Ubuntu) + ... Previous IDs: SUSP005.001 + Skip If not ${SUSPEND_AND_RESUME_SUPPORT} SUSP005.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUSP005.201 not supported + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUSP005.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SUSP005.201 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Cyclic Platform Suspend And Resume + Exit From Root User -SUSP005.002 Cyclic platform suspend and resume (Ubuntu) (S0ix) +SUSP006.201 Cyclic platform suspend and resume (Ubuntu) (S0ix) [Documentation] This test aims to verify that the DUT platform suspend ... and resume procedure performed cyclically works correctly - Skip If not ${SUSPEND_AND_RESUME_SUPPORT} SUSP005.002 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUSP005.002 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUSP005.002 not supported + ... Previous IDs: SUSP005.002 + Skip If not ${SUSPEND_AND_RESUME_SUPPORT} SUSP006.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUSP006.201 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUSP006.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SUSP006.201 not supported Set Platform Sleep Type S0ix - Cyclic Platform Suspend And Resume (Ubuntu) S0ix + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Cyclic Platform Suspend And Resume S0ix + Exit From Root User -SUSP005.003 Cyclic platform suspend and resume (Ubuntu) (S3) +SUSP007.201 Cyclic platform suspend and resume (Ubuntu) (S3) [Documentation] This test aims to verify that the DUT platform suspend ... and resume procedure performed cyclically works correctly - Skip If not ${SUSPEND_AND_RESUME_SUPPORT} SUSP005.003 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUSP005.003 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUSP005.003 not supported + ... Previous IDs: SUSP005.003 + Skip If not ${SUSPEND_AND_RESUME_SUPPORT} SUSP007.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SUSP007.201 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUSP007.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SUSP007.201 not supported Set Platform Sleep Type S3 - Cyclic Platform Suspend And Resume (Ubuntu) S3 + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Cyclic Platform Suspend And Resume S3 + Exit From Root User +SUSP005.202 Cyclic platform suspend and resume (Fedora) + [Documentation] This test aims to verify that the DUT platform suspend + ... and resume procedure performed cyclically works correctly + Skip If not ${SUSPEND_AND_RESUME_SUPPORT} SUSP005.202 not supported + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUSP005.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SUSP005.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Cyclic Platform Suspend And Resume + Exit From Root User -*** Keywords *** -Cyclic Platform Suspend And Resume (Ubuntu) - [Arguments] ${platform_sleep_type}=${EMPTY} - ${suspend_detected_fails}= Set Variable ${0} +SUSP006.202 Cyclic platform suspend and resume (Fedora) (S0ix) + [Documentation] This test aims to verify that the DUT platform suspend + ... and resume procedure performed cyclically works correctly + Skip If not ${SUSPEND_AND_RESUME_SUPPORT} SUSP006.202 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUSP006.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SUSP006.202 not supported + Set Platform Sleep Type S0ix Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Cyclic Platform Suspend And Resume S0ix + Exit From Root User + +SUSP007.202 Cyclic platform suspend and resume (Fedora) (S3) + [Documentation] This test aims to verify that the DUT platform suspend + ... and resume procedure performed cyclically works correctly + Skip If not ${SUSPEND_AND_RESUME_SUPPORT} SUSP007.202 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SUSP007.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SUSP007.202 not supported + Set Platform Sleep Type S3 + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} Login To Linux - Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User + Cyclic Platform Suspend And Resume S3 + Exit From Root User + +*** Keywords *** +Cyclic Platform Suspend And Resume + [Arguments] ${platform_sleep_type}=${EMPTY} + ${suspend_detected_fails}= Set Variable ${0} + Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} FOR ${index} IN RANGE 0 ${SUSPEND_ITERATIONS_NUMBER} ${is_suspend_performed_correctly}= Perform Suspend Test Using FWTS IF not ${is_suspend_performed_correctly} From 318d32e0b92883da70740badd2cdbbca4e7aa879 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 11:39:06 +0200 Subject: [PATCH 342/416] m2-wifi: Add Fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-stability/m2-wifi.robot | 212 ++++++++++++++++++++++++-------- 1 file changed, 158 insertions(+), 54 deletions(-) diff --git a/dasharo-stability/m2-wifi.robot b/dasharo-stability/m2-wifi.robot index 8e642abbb7..6139db19cd 100644 --- a/dasharo-stability/m2-wifi.robot +++ b/dasharo-stability/m2-wifi.robot @@ -45,88 +45,157 @@ Suite Teardown Run Keyword # END # Exit from root user -SMW002.001 Wi-fi connection after warm boot (Ubuntu) +SMW002.201 Wi-fi connection after warm boot (Ubuntu) [Documentation] Check whether the Wi-Fi card is detected and working ... correctly after performing a warm boot. - Skip If not ${M2_WIFI_SUPPORT} SMW002.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SMW002.001 not supported + ... Previous IDs: SMW002.001 + Skip If not ${M2_WIFI_SUPPORT} SMW002.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SMW002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SMW002.201 not supported Power On - Boot Operating System ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - ${out}= Execute Command In Terminal lspci | grep "Network controller:" - Should Match ${out} *${WIFI_CARD_UBUNTU}* - Scan For Wi-Fi In Linux - - FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} - Perform Warmboot Using Rtcwake - Boot Operating System ubuntu - Login To Linux - Switch To Root User - ${out}= Execute Command In Terminal lspci | grep "Network controller:" - Should Match ${out} *${WIFI_CARD_UBUNTU}* - Scan For Wi-Fi In Linux - END + Wi-Fi Connection After Warm Boot Exit From Root User -SMW003.001 Wi-fi connection after reboot (Ubuntu) +SMW003.201 Wi-fi connection after reboot (Ubuntu) [Documentation] Check whether the Wi-Fi card is detected and working ... correctly after performing a reboot. - Skip If not ${M2_WIFI_SUPPORT} SMW003.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SMW003.001 not supported + ... Previous IDs: SMW003.001 + Skip If not ${M2_WIFI_SUPPORT} SMW003.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SMW003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SMW003.201 not supported Power On - Boot Operating System ubuntu + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - ${out}= Execute Command In Terminal lspci | grep "Network controller:" - Should Match ${out} *${WIFI_CARD_UBUNTU}* - Scan For Wi-Fi In Linux + Wi-Fi Connection After Reboot + Exit From Root User - FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} - Execute Reboot Command - Boot Operating System ubuntu - Login To Linux - Switch To Root User - ${out}= Execute Command In Terminal lspci | grep "Network controller:" - Should Match ${out} *${WIFI_CARD_UBUNTU}* - Scan For Wi-Fi In Linux - END +SMW004.201 Wi-fi connection after suspension (Ubuntu) + [Documentation] Check whether the Wi-Fi card is detected and working + ... correctly after performing suspension. + ... Previous IDs: SMW004.001 + Skip If not ${M2_WIFI_SUPPORT} SMW004.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SMW004.201 not supported + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} SMW004.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SMW004.201 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Wi-fi Connection After Suspension + Exit From Root User + +SMW005.201 Wi-fi connection after suspension (Ubuntu) (S0ix) + [Documentation] Check whether the Wi-Fi card is detected and working + ... correctly after performing suspension. + ... Previous IDs: SMW004.002 + Skip If not ${M2_WIFI_SUPPORT} SMW005.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SMW005.201 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SMW005.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SMW005.201 not supported + Set Platform Sleep Type S0ix + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Wi-fi Connection After Suspension S0ix + Exit From Root User + +SMW006.201 Wi-fi connection after suspension (Ubuntu) (S3) + [Documentation] Check whether the Wi-Fi card is detected and working + ... correctly after performing suspension. + ... Previous IDs: SMW004.003 + Skip If not ${M2_WIFI_SUPPORT} SMW006.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SMW006.201 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SMW006.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} SMW006.201 not supported + Set Platform Sleep Type S3 + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Wi-fi Connection After Suspension S3 + Exit From Root User + +SMW002.202 Wi-fi connection after warm boot (Fedora) + [Documentation] Check whether the Wi-Fi card is detected and working + ... correctly after performing a warm boot. + ... Previous IDs: SMW002.001 + Skip If not ${M2_WIFI_SUPPORT} SMW002.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SMW002.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Wi-Fi Connection After Warm Boot + Exit From Root User + +SMW003.202 Wi-fi connection after reboot (Fedora) + [Documentation] Check whether the Wi-Fi card is detected and working + ... correctly after performing a reboot. + ... Previous IDs: SMW003.202 + Skip If not ${M2_WIFI_SUPPORT} SMW003.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SMW003.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Wi-Fi Connection After Reboot + Exit From Root User -SMW004.001 Wi-fi connection after suspension (Ubuntu) +SMW004.202 Wi-fi connection after suspension (Fedora) [Documentation] Check whether the Wi-Fi card is detected and working ... correctly after performing suspension. - Skip If not ${M2_WIFI_SUPPORT} SMW004.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SMW004.001 not supported - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} SMW004.001 not supported - Wi-fi Connection After Suspension (Ubuntu) + ... Previous IDs: SMW004.001 + Skip If not ${M2_WIFI_SUPPORT} SMW004.202 not supported + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} SMW004.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SMW004.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Wi-fi Connection After Suspension + Exit From Root User -SMW004.002 Wi-fi connection after suspension (Ubuntu) (S0ix) +SMW005.202 Wi-fi connection after suspension (Fedora) (S0ix) [Documentation] Check whether the Wi-Fi card is detected and working ... correctly after performing suspension. - Skip If not ${M2_WIFI_SUPPORT} SMW004.002 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SMW004.002 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SMW004.002 not supported + ... Previous IDs: SMW004.002 + Skip If not ${M2_WIFI_SUPPORT} SMW005.202 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SMW005.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SMW005.202 not supported Set Platform Sleep Type S0ix - Wi-fi Connection After Suspension (Ubuntu) S0ix + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Wi-fi Connection After Suspension S0ix + Exit From Root User -SMW004.003 Wi-fi connection after suspension (Ubuntu) (S3) +SMW006.202 Wi-fi connection after suspension (Fedora) (S3) [Documentation] Check whether the Wi-Fi card is detected and working ... correctly after performing suspension. - Skip If not ${M2_WIFI_SUPPORT} SMW004.003 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} SMW004.003 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SMW004.002 not supported + ... Previous IDs: SMW004.003 + Skip If not ${M2_WIFI_SUPPORT} SMW006.202 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} SMW006.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} SMW006.202 not supported Set Platform Sleep Type S3 - Wi-fi Connection After Suspension (Ubuntu) S3 + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Wi-fi Connection After Suspension S3 + Exit From Root User *** Keywords *** -Wi-fi Connection After Suspension (Ubuntu) +Wi-fi Connection After Suspension + [Tags] robot:private [Arguments] ${platform_sleep_type}=${EMPTY} - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} - Switch To Root User ${out}= Execute Command In Terminal lspci | grep "Network controller:" Should Match ${out} *${WIFI_CARD_UBUNTU}* @@ -138,4 +207,39 @@ Wi-fi Connection After Suspension (Ubuntu) Should Match ${out} *${WIFI_CARD_UBUNTU}* Scan For Wi-Fi In Linux END - Exit From Root User + +Wi-Fi Connection After Warm Boot + [Documentation] Check whether the Wi-Fi card is detected and working + ... correctly after performing a warm boot. + [Tags] robot:private + ${out}= Execute Command In Terminal lspci | grep "Network controller:" + Should Match ${out} *${WIFI_CARD_UBUNTU}* + Scan For Wi-Fi In Linux + + FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} + Perform Warmboot Using Rtcwake + Boot System Or From Connected Disk ${BOOTED_OS_ID} + Login To Linux + Switch To Root User + ${out}= Execute Command In Terminal lspci | grep "Network controller:" + Should Match ${out} *${WIFI_CARD_UBUNTU}* + Scan For Wi-Fi In Linux + END + +Wi-Fi Connection After Reboot + [Documentation] Check whether the Wi-Fi card is detected and working + ... correctly after performing a reboot. + [Tags] robot:private + ${out}= Execute Command In Terminal lspci | grep "Network controller:" + Should Match ${out} *${WIFI_CARD_UBUNTU}* + Scan For Wi-Fi In Linux + + FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} + Execute Reboot Command + Boot System Or From Connected Disk ${BOOTED_OS_ID} + Login To Linux + Switch To Root User + ${out}= Execute Command In Terminal lspci | grep "Network controller:" + Should Match ${out} *${WIFI_CARD_UBUNTU}* + Scan For Wi-Fi In Linux + END From 1abd43445b6dc92079dbcaa5daf156b34340dca9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 2 Apr 2025 12:12:14 +0200 Subject: [PATCH 343/416] lib/network: Fix using deprecated keywords in two keywords MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The keywords were: Scan For Wifi In Linux & Scan For Bluetooth In Linux Signed-off-by: Filip Gołaś --- lib/network.robot | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/lib/network.robot b/lib/network.robot index ebf56101b4..eef4fa6884 100644 --- a/lib/network.robot +++ b/lib/network.robot @@ -82,19 +82,14 @@ Check Internet Connection On Windows Scan For Wi-Fi In Linux [Documentation] Turn on Wi-Fi then scan in search of company network. - Execute Linux Command Without Output nmcli radio wifi on - Write Into Terminal nmcli device wifi rescan - Set DUT Response Timeout 60 seconds - Write Into Terminal nmcli device wifi list - Read From Terminal Until ${3_MDEB_WIFI_NETWORK} - Read From Terminal Until Prompt + Execute Command In Terminal nmcli radio wifi on + Execute Command In Terminal nmcli device wifi rescan + ${out}= Execute Command In Terminal nmcli --fields SSID device wifi list | cat + Should Contain ${out} ${3_MDEB_WIFI_NETWORK} Scan For Bluetooth In Linux [Documentation] Turn on Bluetooth then scan in search of company network. - ${out}= Execute Linux Command bluetoothctl power on + ${out}= Execute Command In Terminal bluetoothctl power on Should Contain ${out} Changing power on succeeded - Set DUT Response Timeout 60 seconds - Write Into Terminal bluetoothctl --timeout 60 scan on - Sleep 5 - ${out}= Read From Terminal Until Prompt + ${out}= Execute Command In Terminal bluetoothctl --timeout 60 scan on timeout=70s Should Contain Any ${out} Discovery started SetDiscoveryFilter success From 84c0abcd1f485cf53c9baad8f7eaa4dfa799b89b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 13:55:05 +0200 Subject: [PATCH 344/416] lib/options: boot time measurement tests: accept os_id argument MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/options/options-lib_dcu.robot | 17 ++++++++++------- lib/options/options-lib_uefi-setup-menu.robot | 12 ++++++------ lib/options/options.robot | 13 +++++++++---- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index 9d689da75e..01f1df36b3 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -60,25 +60,27 @@ Measure Warmboot Time ... The device does not need to be logged in to Ubuntu if $DUT_CONNETION_METHOD == SSH. ... If $DUT_CONNETION_METHOD == Telnet, then the device must be logged ... off, and the login prompt must be available in the Telnet buffer. - [Arguments] ${iterations} + [Arguments] ${iterations} ${os_id}=${BOOTED_OS_ID} ${durations}= Create List Log To Console \n FOR ${index} IN RANGE 0 ${iterations} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User - # Using "Execute Command In Terimal" will cause the test to wait + # Using "Execute Command In Terminal" will cause the test to wait # for command prompt to appear before continuing but the prompt # will not appear again until we Login after reboot, so the test # would hang here and fail. # Sometimes it may take long to shutdown all systemd services, # so the waiting times have to be excessive to avoid false negatives. + Set Nextboot ${BOOTED_OS_ID} Write Into Terminal rtcwake -m off -s 60 - Set DUT Response Timeout 300s + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User ${boot_time}= Get Boot Time From Cbmem @@ -94,15 +96,16 @@ Measure Reboot Time ... The device does not need to be logged in to Ubuntu if $DUT_CONNETION_METHOD == SSH. ... If $DUT_CONNETION_METHOD == Telnet, then the device must be logged ... off, and the login prompt must be available in the Telnet buffer. - [Arguments] ${iterations} + [Arguments] ${iterations} ${os_id}=${BOOTED_OS_ID} ${durations}= Create List Log To Console \n - FOR ${index} IN RANGE 0 ${iterations} - Login To Linux - Switch To Root User + Boot System Or From Connected Disk ${os_id} + Login To Linux + Switch To Root User + FOR ${index} IN RANGE 0 ${iterations} Execute Reboot Command Sleep 10s diff --git a/lib/options/options-lib_uefi-setup-menu.robot b/lib/options/options-lib_uefi-setup-menu.robot index fe73dcdc76..25591a1197 100644 --- a/lib/options/options-lib_uefi-setup-menu.robot +++ b/lib/options/options-lib_uefi-setup-menu.robot @@ -84,14 +84,14 @@ Get UEFI Boot Manager Entries Measure Coldboot Time [Documentation] Performs a measurement of coldboot ... boot time - [Arguments] ${iterations} + [Arguments] ${iterations} ${os_id}=${BOOTED_OS_ID} Skip If '${POWER_CTRL}' == 'none' Coldboot automatic tests not supported ${durations}= Create List Log To Console \n # Do one more iteration than requested, as we may hit first boot which is always longer. FOR ${index} IN RANGE 0 ${iterations}+1 Power Cycle On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User ${boot_time}= Get Boot Time From Cbmem @@ -106,13 +106,13 @@ Measure Coldboot Time Measure Warmboot Time [Documentation] Performs a measurement of warmboot ... boot time - [Arguments] ${iterations} + [Arguments] ${iterations} ${os_id}=${BOOTED_OS_ID} ${durations}= Create List Log To Console \n # Do one more iteration than requested, as we may hit first boot which is always longer. FOR ${index} IN RANGE 0 ${iterations}+1 Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User ${boot_time}= Get Boot Time From Cbmem @@ -127,7 +127,7 @@ Measure Warmboot Time Measure Reboot Time [Documentation] Performs a measurement of reboot ... boot time - [Arguments] ${iterations} + [Arguments] ${iterations} ${os_id}=${BOOTED_OS_ID} Power On ${average}= Set Variable 0 @@ -135,7 +135,7 @@ Measure Reboot Time Log To Console \n # Do one more iteration than requested, as we may hit first boot which is always longer. FOR ${index} IN RANGE 0 ${iterations}+1 - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User ${boot_time}= Get Boot Time From Cbmem diff --git a/lib/options/options.robot b/lib/options/options.robot index 741c1a8904..b0b310882a 100644 --- a/lib/options/options.robot +++ b/lib/options/options.robot @@ -120,7 +120,8 @@ Measure Coldboot Time ... ... === Arguments === ... - ``${iterations}``: ``integer`` - the amount of coldboots - ... to be tested + ... - ``${os_id}``: ``integer`` - the ID of an OS on which the + ... \ measurements are to be gathered ... ... === Return Value === ... - ``float`` - MIN coldboot time @@ -130,7 +131,7 @@ Measure Coldboot Time ... ... === Effects === ... - The device will be rebooted ${iterations} times - [Arguments] ${iterations} + [Arguments] ${iterations} ${os_id}=${BOOTED_OS_ID} Skip Coldboot not supported without serial connection Measure Warmboot Time @@ -144,6 +145,8 @@ Measure Warmboot Time ... === Arguments === ... - ``${iterations}``: ``integer`` - the amount of warmboots ... to be tested + ... - ``${os_id}``: ``integer`` - the ID of an OS on which the + ... \ measurements are to be gathered ... ... === Return Value === ... - ``float`` - MIN warmboot time @@ -153,7 +156,7 @@ Measure Warmboot Time ... ... === Effects === ... - The device will be rebooted ${iterations} times - [Arguments] ${iterations} + [Arguments] ${iterations} ${os_id}=${BOOTED_OS_ID} Fail Not implemented Measure Reboot Time @@ -167,6 +170,8 @@ Measure Reboot Time ... === Arguments === ... - ``${iterations}``: ``integer`` - the amount of reboots ... to be tested + ... - ``${os_id}``: ``integer`` - the ID of an OS on which the + ... \ measurements are to be gathered ... ... === Return Value === ... - ``float`` - MIN reboot time @@ -176,7 +181,7 @@ Measure Reboot Time ... ... === Effects === ... - The device will be rebooted ${iterations} times - [Arguments] ${iterations} + [Arguments] ${iterations} ${os_id}=${BOOTED_OS_ID} Fail Not implemented Make Sure That Flash Locks Are Disabled From 0b56f75701248bddeea6be1a4d7e261a184e8297 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 13:57:02 +0200 Subject: [PATCH 345/416] tpm-detect: Add fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-stability/tpm-detect.robot | 68 ++++++++++++++++++++++++------ 1 file changed, 54 insertions(+), 14 deletions(-) diff --git a/dasharo-stability/tpm-detect.robot b/dasharo-stability/tpm-detect.robot index 1366f590ed..892a1efe7f 100644 --- a/dasharo-stability/tpm-detect.robot +++ b/dasharo-stability/tpm-detect.robot @@ -17,38 +17,79 @@ Suite Teardown Run Keyword *** Test Cases *** -TPD003.001 Detect TPM after platform reboot (Ubuntu) +TPD003.201 Detect TPM after platform reboot (Ubuntu) [Documentation] This test aims to verify that the TPM is initialized ... correctly after the platform's reboot. - Skip If not ${TPM_DETECT_SUPPORT} TPD003.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPD003.001 not supported + ... Previous IDs: TPD003.001 + Skip If not ${TPM_DETECT_SUPPORT} TPD003.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPD003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} TPD003.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Detect TPM After Platform Reboot + Exit From Root User + +TPD004.201 Detect TPM after platform suspend (Ubuntu) + [Documentation] This test aims to verify that the TPM is initialized + ... correctly after the platform's reboot. + ... Previous IDs: TPD004.001 + Skip If not ${TPM_DETECT_SUPPORT} TPD004.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPD004.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} TPD004.201 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + Detect TPM After Platform Suspend + Exit From Root User + +TPD003.202 Detect TPM after platform reboot (Fedora) + [Documentation] This test aims to verify that the TPM is initialized + ... correctly after the platform's reboot. + Skip If not ${TPM_DETECT_SUPPORT} TPD003.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} TPD003.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Detect TPM After Platform Reboot + Exit From Root User + +TPD004.202 Detect TPM after platform suspend (Fedora) + [Documentation] This test aims to verify that the TPM is initialized + ... correctly after the platform's reboot. + Skip If not ${TPM_DETECT_SUPPORT} TPD004.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} TPD004.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Detect TPM After Platform Suspend + Exit From Root User + + +*** Keywords *** +Detect TPM After Platform Reboot + [Documentation] This test aims to verify that the TPM is initialized + ... correctly after the platform's reboot. + [Tags] robot:private ${out}= List Devices In Linux pci Should Contain ${out} ${DEVICE_NVME_DISK} - FOR ${index} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} Execute Reboot Command - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${BOOTED_OS_ID} Login To Linux Switch To Root User ${out}= Execute Command In Terminal tpm2_pcrread Should Contain ${out} sha1: Should Contain ${out} sha256: END - Exit From Root User -TPD004.001 Detect TPM after platform suspend (Ubuntu) +Detect TPM After Platform Suspend [Documentation] This test aims to verify that the TPM is initialized ... correctly after the platform's reboot. Skip If not ${tests_in_firmware_support} TPD001.001 not supported - Skip If not ${TPM_DETECT_SUPPORT} TPD001.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} TPD004.001 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User ${out}= List Devices In Linux pci Should Contain ${out} ${DEVICE_NVME_DISK} @@ -58,4 +99,3 @@ TPD004.001 Detect TPM after platform suspend (Ubuntu) Should Contain ${out} sha1: Should Contain ${out} sha256: END - Exit From Root User From 6b0c6c17daad4cf5f4d51f0d2857231c8592eb1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 15:08:08 +0200 Subject: [PATCH 346/416] boot-time-measure: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/boot-time-measure.robot | 69 ++++++++++++++++++--- 1 file changed, 61 insertions(+), 8 deletions(-) diff --git a/dasharo-performance/boot-time-measure.robot b/dasharo-performance/boot-time-measure.robot index b668a34c85..b600abe0f3 100644 --- a/dasharo-performance/boot-time-measure.robot +++ b/dasharo-performance/boot-time-measure.robot @@ -34,11 +34,62 @@ CBMEM001.201 Serial boot time measure: coreboot booting time after coldboot [Documentation] Check whether the DUT boots after coldboot and how ... long it takes for coreboot to boot after coldboot if ... CPU is serial initialized. + ... Previous IDs: CBMEM001.001 Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CBMEM001.201 not supported Skip If '${POWER_CTRL}' == 'none' Coldboot automatic tests not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CBMEM001.201 not supported + Serial Boot Time Measure Coreboot Booting Time After Coldboot ${ENV_ID_UBUNTU} +CBMEM002.201 Serial boot time measure: coreboot booting time after warmboot + [Documentation] Check whether the DUT boots after warmboot and how + ... long it takes for coreboot to boot after warmboot if + ... CPU is serial initialized. + ... Previous IDs: CBMEM002.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CBMEM002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CBMEM002.201 not supported + Serial Boot Time Measure Coreboot Booting Time After Warmboot ${ENV_ID_UBUNTU} + +CBMEM003.201 Serial boot time measure: coreboot booting time after system reboot + [Documentation] Check whether the DUT boots after system reboot and how + ... long it takes for coreboot to boot after system reboot + ... if CPU is serial initialized. + ... Previous IDs: CBMEM003.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CBMEM003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CBMEM003.201 not supported + Serial Boot Time Measure Coreboot Booting Time After System Reboot ${ENV_ID_UBUNTU} + +CBMEM001.202 Serial boot time measure: coreboot booting time after coldboot + [Documentation] Check whether the DUT boots after coldboot and how + ... long it takes for coreboot to boot after coldboot if + ... CPU is serial initialized. + Skip If '${POWER_CTRL}' == 'none' Coldboot automatic tests not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CBMEM001.202 not supported + Serial Boot Time Measure Coreboot Booting Time After Coldboot ${ENV_ID_FEDORA} + +CBMEM002.202 Serial boot time measure: coreboot booting time after warmboot + [Documentation] Check whether the DUT boots after warmboot and how + ... long it takes for coreboot to boot after warmboot if + ... CPU is serial initialized. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CBMEM002.202 not supported + Serial Boot Time Measure Coreboot Booting Time After Warmboot ${ENV_ID_FEDORA} + +CBMEM003.202 Serial boot time measure: coreboot booting time after system reboot + [Documentation] Check whether the DUT boots after system reboot and how + ... long it takes for coreboot to boot after system reboot + ... if CPU is serial initialized. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CBMEM003.202 not supported + Serial Boot Time Measure Coreboot Booting Time After System Reboot ${ENV_ID_FEDORA} + + +*** Keywords *** +Serial Boot Time Measure Coreboot Booting Time After Coldboot + [Documentation] Check whether the DUT boots after coldboot and how + ... long it takes for coreboot to boot after coldboot if + ... CPU is serial initialized. + [Tags] robot:private + [Arguments] ${os_id} ${min} ${max} ${average} ${stddev}= - ... Measure Coldboot Time ${ITERATIONS} + ... Measure Coldboot Time ${ITERATIONS} ${os_id} Log To Console \nCoreboot average booting time: ${average} s\n Log To Console \nCoreboot shortest booting time: ${min} s\n @@ -49,14 +100,14 @@ CBMEM001.201 Serial boot time measure: coreboot booting time after coldboot Should Be True ${max} < ${MAX_ACCEPTABLE_COLDBOOT_TIME_S} Should Be True ${stddev} < ${MAX_ACCEPTABLE_COLDBOOT_TIME_STD_DEV_S} -CBMEM002.201 Serial boot time measure: coreboot booting time after warmboot +Serial Boot Time Measure Coreboot Booting Time After Warmboot [Documentation] Check whether the DUT boots after warmboot and how ... long it takes for coreboot to boot after warmboot if ... CPU is serial initialized. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CBMEM002.201 not supported - + [Tags] robot:private + [Arguments] ${os_id} ${min} ${max} ${average} ${stddev}= - ... Measure Warmboot Time ${ITERATIONS} + ... Measure Warmboot Time ${ITERATIONS} ${os_id} Log To Console \nCoreboot average booting time: ${average} s\n Log To Console \nCoreboot shortest booting time: ${min} s\n @@ -67,14 +118,16 @@ CBMEM002.201 Serial boot time measure: coreboot booting time after warmboot Should Be True ${max} < ${MAX_ACCEPTABLE_WARMBOOT_TIME_S} Should Be True ${stddev} < ${MAX_ACCEPTABLE_WARMBOOT_TIME_STD_DEV_S} -CBMEM003.201 Serial boot time measure: coreboot booting time after system reboot +Serial Boot Time Measure Coreboot Booting Time After System Reboot [Documentation] Check whether the DUT boots after system reboot and how ... long it takes for coreboot to boot after system reboot ... if CPU is serial initialized. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CBMEM003.201 not supported + [Tags] robot:private + [Arguments] ${os_id} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CBMEM003.001 not supported ${min} ${max} ${average} ${stddev}= - ... Measure Reboot Time ${ITERATIONS} + ... Measure Reboot Time ${ITERATIONS} ${os_id} Log To Console \nCoreboot average booting time: ${average} s\n Log To Console \nCoreboot shortest booting time: ${min} s\n From 7c66ebdf4993f48279a944f19c2e6fa5cc29b21b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 15:25:19 +0200 Subject: [PATCH 347/416] network-interface-after-suspend: Add Fedora cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../network-interface-after-suspend.robot | 172 ++++++++++++++---- 1 file changed, 134 insertions(+), 38 deletions(-) diff --git a/dasharo-stability/network-interface-after-suspend.robot b/dasharo-stability/network-interface-after-suspend.robot index 5c7de36b24..d4849b2c34 100644 --- a/dasharo-stability/network-interface-after-suspend.robot +++ b/dasharo-stability/network-interface-after-suspend.robot @@ -27,72 +27,168 @@ Suite Teardown Run Keyword *** Test Cases *** -NET002.001 Net controller after warmboot (Ubuntu) +NET002.201 Net controller after warmboot (Ubuntu) [Documentation] This test aims to verify that the network controller works and ... the platform is able to connect to the network after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NET001.001 not supported + ... Previous IDs: NET002.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NET002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} NET002.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - FOR ${ind} IN RANGE ${STABILITY_DETECTION_REBOOT_ITERATIONS} - Perform Warmboot Using Rtcwake - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${network_status}= Execute Command In Terminal ip link | grep -E 'enp' - Should Contain ${network_status} UP - END + Net Controller After Warmboot + Exit From Root User -NET003.001 Net controller after reboot (Ubuntu) +NET003.201 Net controller after reboot (Ubuntu) [Documentation] This test aims to verify that the network controller works and ... the platform is able to connect to the network after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NET001.001 not supported + ... Previous IDs: NET003.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NET003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} NET003.201 not supported Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - FOR ${ind} IN RANGE ${STABILITY_DETECTION_REBOOT_ITERATIONS} - Execute Reboot Command - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${network_status}= Execute Command In Terminal ip link | grep -E 'enp' - Should Contain ${network_status} UP - END + Net Controller After Reboot + Exit From Root User -NET004.001 NET controller after suspend (Ubuntu) +NET004.201 NET controller after suspend (Ubuntu) [Documentation] This test aims to verify that the network controller works and the platform ... is able to connect to the network after suspend. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NET004.001 not supported - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} NET004.001 not supported - NET Controller After Suspend (Ubuntu) + ... Previous IDs: NET004.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NET004.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} NET004.201 not supported + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} NET004.201 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + NET Controller After Suspend + Exit From Root User -NET004.002 NET controller after suspend (Ubuntu) (S0ix) +NET005.201 NET controller after suspend (Ubuntu) (S0ix) [Documentation] This test aims to verify that the network controller works and the platform ... is able to connect to the network after suspend. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NET004.002 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} NET004.002 not supported + ... Previous IDs: NET04.002 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NET005.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} NET005.201 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} NET005.201 not supported Set Platform Sleep Type S0ix - NET Controller After Suspend (Ubuntu) S0ix + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + NET Controller After Suspend S0ix + Exit From Root User -NET004.003 NET controller after suspend (Ubuntu) (S3) +NET006.201 NET controller after suspend (Ubuntu) (S3) [Documentation] This test aims to verify that the network controller works and the platform ... is able to connect to the network after suspend. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NET004.003 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} NET004.003 not supported + ... Previous IDs: NET004.003 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} NET006.201 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} NET006.201 not supported Set Platform Sleep Type S3 - NET Controller After Suspend (Ubuntu) S3 + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + NET Controller After Suspend S3 + Exit From Root User +NET002.202 Net controller after warmboot (Fedora) + [Documentation] This test aims to verify that the network controller works and + ... the platform is able to connect to the network after reboot. + ... Previous IDs: NET005.003 + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} NET002.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Net Controller After Warmboot + Exit From Root User -*** Keywords *** -NET Controller After Suspend (Ubuntu) - [Arguments] ${platform_sleep_type}=${EMPTY} +NET003.202 Net controller after reboot (Fedora) + [Documentation] This test aims to verify that the network controller works and + ... the platform is able to connect to the network after reboot. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} NET003.202 not supported Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + Net Controller After Reboot + Exit From Root User + +NET004.202 NET controller after suspend (Fedora) + [Documentation] This test aims to verify that the network controller works and the platform + ... is able to connect to the network after suspend. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} NET004.202 not supported + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} NET004.202 not supported + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + NET Controller After Suspend + Exit From Root User + +NET005.202 NET controller after suspend (Fedora) (S0ix) + [Documentation] This test aims to verify that the network controller works and the platform + ... is able to connect to the network after suspend. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} NET005.202 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} NET005.202 not supported + Set Platform Sleep Type S0ix + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + NET Controller After Suspend S0ix + Exit From Root User + +NET006.202 NET controller after suspend (Fedora) (S3) + [Documentation] This test aims to verify that the network controller works and the platform + ... is able to connect to the network after suspend. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} NET005.202 not supported + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} NET006.202 not supported + Set Platform Sleep Type S3 + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} Login To Linux - Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Switch To Root User + NET Controller After Suspend S3 + Exit From Root User + + +*** Keywords *** +NET Controller After Suspend + [Tags] robot:private + [Arguments] ${platform_sleep_type}=${EMPTY} + Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} Perform Suspend Test Using FWTS - ${network_status}= Execute Command In Terminal ip link | grep -E 'enp' + ${network_status}= Execute Command In Terminal ip link | grep -E 'enp|eno' Should Contain ${network_status} UP + +Net Controller After Warmboot + [Documentation] This test aims to verify that the network controller works and + ... the platform is able to connect to the network after reboot. + [Tags] robot:private + FOR ${ind} IN RANGE ${STABILITY_DETECTION_REBOOT_ITERATIONS} + Perform Warmboot Using Rtcwake + Boot System Or From Connected Disk ${BOOTED_OS_ID} + Login To Linux + Switch To Root User + ${network_status}= Execute Command In Terminal ip link | grep -E 'enp|eno' + Should Contain ${network_status} UP + END + +Net Controller After Reboot + [Documentation] This test aims to verify that the network controller works and + ... the platform is able to connect to the network after reboot. + [Tags] robot:private + FOR ${ind} IN RANGE ${STABILITY_DETECTION_REBOOT_ITERATIONS} + Execute Reboot Command + Boot System Or From Connected Disk ${BOOTED_OS_ID} + Login To Linux + Switch To Root User + ${network_status}= Execute Command In Terminal ip link | grep -E 'enp|eno' + Should Contain ${network_status} UP + END From 972e16a2e733145fcf01b44566975a84d06a4ae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 17:04:42 +0200 Subject: [PATCH 348/416] options-lib_dcu: Use a ready keyword for Warmboots MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/options/options-lib_dcu.robot | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index 01f1df36b3..bc15022ddc 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -76,9 +76,7 @@ Measure Warmboot Time # would hang here and fail. # Sometimes it may take long to shutdown all systemd services, # so the waiting times have to be excessive to avoid false negatives. - Set Nextboot ${BOOTED_OS_ID} - Write Into Terminal rtcwake -m off -s 60 - Set DUT Response Timeout 300s + Perform Warmboot Using Rtcwake Boot System Or From Connected Disk ${os_id} Login To Linux From 2d3653b005d015c2b033a01b247884998ef7f2d4 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Fri, 11 Apr 2025 12:27:57 +0200 Subject: [PATCH 349/416] dasharo-security/verified-boot.robot: extended timeouts in VBO008.001 & VBO009.001 Added DUT timeouts setting to 300 seconds in VBO008.001 & VBO009.001 tests, before initial Boot System Or From Connected Disk kw call and durning recovery pop-up capture. Signed-off-by: Mateusz Maciejewski --- dasharo-security/verified-boot.robot | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/dasharo-security/verified-boot.robot b/dasharo-security/verified-boot.robot index d00c011c35..644684cfd3 100644 --- a/dasharo-security/verified-boot.robot +++ b/dasharo-security/verified-boot.robot @@ -61,11 +61,19 @@ VBO008.001 Booting from recovery ... continue automatically after a 30s delay. Skip If not ${VERIFIED_BOOT_POPUP_SUPPORT} VBO008.002 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} VBO008.002 not supported + + # setting 5 minutes time-out to prevent failure on platforms with + # either extended FW boot times, or recovery pop-up left. + Set DUT Response Timeout 300s Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Flash RW Sections Via Internal Programmer ${FW_FILE_RESIGNED} Execute Reboot Command + + # setting 5 minutes time-out to prevent failure on platforms with + # extended FW boot times + Set DUT Response Timeout 300s Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User @@ -79,12 +87,19 @@ VBO009.001 Recovery boot popup is displayed when incorrectly signed firmware is Skip If not ${VERIFIED_BOOT_POPUP_SUPPORT} VBO009.001 not supported Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} VBO009.001 not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} VBO009.001 not supported + + # setting 5 minutes time-out to prevent failure on platforms with + # either extended FW boot times, or recovery pop-up left. + Set DUT Response Timeout 300s Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User Flash RW Sections Via Internal Programmer ${FW_FILE_RESIGNED} Execute Reboot Command - Set DUT Response Timeout 180s + + # setting 5 minutes time-out to prevent failure on platforms with + # extended FW boot times + Set DUT Response Timeout 300s ${recovery_popup}= Read From Terminal Until Press ENTER key to continue Should Contain ${recovery_popup} !!! WARNING !!! Should Contain ${recovery_popup} Recovery reason code: From 16dbba361ed419207703f957a1d1bd2749f1eeb9 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Fri, 28 Mar 2025 13:02:49 +0100 Subject: [PATCH 350/416] WLE002.001: network-manager & pciutil check & installation for Ubuntu wifi-bluetooth-support.robot, WLE002.001: - dhclient call added before Detect Or Install Package - Ubuntu-specific package installation moved from test case to WiFi Scanning kw keywords.robot: - added apt list & regex-based package detection in Check If Package Is Installed - Install Package redone using Execute Command In Terminal lib/network.robot: - Execute Command In Terminal used instead of Execute Linux Command in Check Internet Connection On Linux keyword lib/telnet.robot: - Telnet.Read added in Execute Command In Terminal Signed-off-by: Mateusz Maciejewski --- .../wifi-bluetooth-support.robot | 10 +++++++++- keywords.robot | 15 +++++++++------ lib/network.robot | 2 +- lib/terminal.robot | 1 + 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/dasharo-compatibility/wifi-bluetooth-support.robot b/dasharo-compatibility/wifi-bluetooth-support.robot index 0b2e2b2a90..6c825ad231 100644 --- a/dasharo-compatibility/wifi-bluetooth-support.robot +++ b/dasharo-compatibility/wifi-bluetooth-support.robot @@ -163,8 +163,16 @@ Wi-Fi Scanning Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User - Scan For Wi-Fi In Linux + # with interfaces DOWN, dhclient takes around 37s + Execute Command In Terminal dhclient 60s + IF "${BOOTED_OS_ID}"=="${ENV_ID_UBUNTU}" + Detect Or Install Package network-manager + END + Scan For Wi-Fi In Linux + IF "${BOOTED_OS_ID}"=="${ENV_ID_UBUNTU}" + Detect Or Install Package pciutils + END ${current_card}= Execute Command In Terminal lspci | grep "Network controller: | awk -F": " '{print $2}" Exit From Root User Log To Console The test passed for the ${current_card} wireless card diff --git a/keywords.robot b/keywords.robot index 78c33c0db4..3bfa4d137b 100644 --- a/keywords.robot +++ b/keywords.robot @@ -1155,8 +1155,13 @@ Check If Package Is Installed [Documentation] Check whether the package, that is necessary to run the ... test case, has already been installed on the system. [Arguments] ${package} - ${output}= Execute Command In Terminal dpkg --list ${package} | cat - IF "no packages found matching" in """${output}""" or "" in """${output}""" or "dpkg was interrupted" in """${output}""" + ${apt_list_output}= Execute Command In Terminal apt list --installed 2> /dev/null | grep ${package} 60s + + # there's limitation (or possibly a bug) in Get Lines Matching Regexp kw: + # can't capture opening square bracket correctly, which would be more appropriate + ${package_regex}= Catenate SEPARATOR= ${package} \/.*installed.* + ${package_lines}= Get Lines Matching Regexp ${apt_list_output} ${package_regex} + IF "${package_lines}"=="${EMPTY}" ${is_installed}= Set Variable ${FALSE} ELSE ${is_installed}= Set Variable ${TRUE} @@ -1167,10 +1172,8 @@ Install Package [Documentation] Install the package, that is necessary to run the ... test case [Arguments] ${package} - Set DUT Response Timeout 600s - Write Into Terminal apt-get install --assume-yes ${package} - Read From Terminal Until Prompt - Set DUT Response Timeout 180s + Execute Command In Terminal apt-get update 120s + Execute Command In Terminal apt-get install --assume-yes ${package} 60s Download File [Documentation] Download file from the given URL. diff --git a/lib/network.robot b/lib/network.robot index eef4fa6884..e1c10da15e 100644 --- a/lib/network.robot +++ b/lib/network.robot @@ -72,7 +72,7 @@ Check Internet Connection On Linux [Documentation] Check internet connection on Linux. Wait Until Keyword Succeeds 5x 10s ... Get Hostname Ip - ${out}= Execute Linux Command ping -c 4 google-public-dns-a.google.com + ${out}= Execute Command In Terminal ping -c 4 google-public-dns-a.google.com Should Contain ${out} , 0% packet loss Check Internet Connection On Windows diff --git a/lib/terminal.robot b/lib/terminal.robot index c1c265943b..f66aca465f 100644 --- a/lib/terminal.robot +++ b/lib/terminal.robot @@ -291,6 +291,7 @@ Execute Command In Terminal [Arguments] ${command} ${timeout}=30s Set DUT Response Timeout ${timeout} IF '${DUT_CONNECTION_METHOD}' == 'Telnet' + Telnet.Read ${output}= Telnet.Execute Command ${command} strip_prompt=True ELSE Write Into Terminal ${command} From 3618607adfcf6f1a6c4ff4629750b84ccd06153f Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Mon, 14 Apr 2025 15:51:59 +0200 Subject: [PATCH 351/416] WLE002.201 & .202: required packages are now also in ansible playbook - network-manager & pciutils are now installed by ansible playbook - regexp comment removed Signed-off-by: Mateusz Maciejewski --- keywords.robot | 2 -- os-config/ansible/linux-packages-playbook.yaml | 1 + os-config/ansible/vars/201-packages.yaml | 1 + os-config/ansible/vars/202-packages.yaml | 1 + 4 files changed, 3 insertions(+), 2 deletions(-) diff --git a/keywords.robot b/keywords.robot index 3bfa4d137b..4779fb4d97 100644 --- a/keywords.robot +++ b/keywords.robot @@ -1157,8 +1157,6 @@ Check If Package Is Installed [Arguments] ${package} ${apt_list_output}= Execute Command In Terminal apt list --installed 2> /dev/null | grep ${package} 60s - # there's limitation (or possibly a bug) in Get Lines Matching Regexp kw: - # can't capture opening square bracket correctly, which would be more appropriate ${package_regex}= Catenate SEPARATOR= ${package} \/.*installed.* ${package_lines}= Get Lines Matching Regexp ${apt_list_output} ${package_regex} IF "${package_lines}"=="${EMPTY}" diff --git a/os-config/ansible/linux-packages-playbook.yaml b/os-config/ansible/linux-packages-playbook.yaml index 2fc4bfc580..fe2fabcf27 100644 --- a/os-config/ansible/linux-packages-playbook.yaml +++ b/os-config/ansible/linux-packages-playbook.yaml @@ -11,6 +11,7 @@ - name: Install packages ansible.builtin.package: name: + - "{{package_network_manager}}" - "{{package_lm_sensors}}" - "{{package_flashrom}}" - "{{package_libpci_dev}}" diff --git a/os-config/ansible/vars/201-packages.yaml b/os-config/ansible/vars/201-packages.yaml index 26c8657c34..fef28b4671 100644 --- a/os-config/ansible/vars/201-packages.yaml +++ b/os-config/ansible/vars/201-packages.yaml @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: Apache-2.0 +package_network_manager: network-manager package_lm_sensors: lm-sensors package_flashrom: flashrom package_pciutils: pciutils diff --git a/os-config/ansible/vars/202-packages.yaml b/os-config/ansible/vars/202-packages.yaml index aa6211a2a4..8a9981f5bf 100644 --- a/os-config/ansible/vars/202-packages.yaml +++ b/os-config/ansible/vars/202-packages.yaml @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: Apache-2.0 +package_network_manager: NetworkManager package_lm_sensors: lm_sensors package_flashrom: flashrom package_pciutils: pciutils From 10d880ad39d45befacc8d11642b3f968becf6fd4 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Fri, 11 Apr 2025 13:08:03 +0200 Subject: [PATCH 352/416] osfv: Add UEFI Shell back to tests Signed-off-by: Sebastian Czapla --- dasharo-compatibility/uefi-shell.robot | 21 +++++++++++-------- .../usb-hid-and-msc-support.robot | 1 - os-config/ansible/os-specific-tasks/201.yaml | 12 +++++++++++ platform-configs/include/default.robot | 1 - .../include/msi-z690-common.robot | 1 - .../include/novacustom-common.robot | 1 - .../include/optiplex-common.robot | 1 - platform-configs/include/pcengines.robot | 1 - platform-configs/odroid-h4-plus.robot | 1 - platform-configs/qemu.robot | 1 - self-tests/terminal.robot | 17 --------------- 11 files changed, 24 insertions(+), 34 deletions(-) diff --git a/dasharo-compatibility/uefi-shell.robot b/dasharo-compatibility/uefi-shell.robot index 080f576cdc..9125925fd1 100644 --- a/dasharo-compatibility/uefi-shell.robot +++ b/dasharo-compatibility/uefi-shell.robot @@ -24,15 +24,18 @@ Suite Teardown Run Keyword *** Test Cases *** USH001.001 UEFI Shell - [Documentation] Check whether the DUT has the ability to boot into an - ... integrated UEFI Shell application or that the UEFI Shell does - ... not appear, based on the UEFI_SHELL_SUPPORT value. + [Documentation] Check whether the UEFI Shell is available, and whether + ... UEFI Shell was sourced from coreboot image, or from OS drive. Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} USH001.001 not supported Power On ${boot_menu}= Enter Boot Menu Tianocore And Return Construction - IF ${UEFI_SHELL_SUPPORT} - Enter Submenu From Snapshot ${boot_menu} UEFI Shell - Read From Terminal Until UEFI Interactive Shell - ELSE - Should Not Contain ${boot_menu} UEFI Shell - END + Enter Submenu From Snapshot ${boot_menu} UEFI Shell + Read From Terminal Until Shell> + Write Bare Into Terminal dh + Press Enter + ${shell_dump_handle}= Read From Terminal Until Shell> + + Should Not Contain ${shell_dump_handle} LoadedImage(Shell) + ... UEFI Shell sourced from Dasharo FW image! + Should Contain ${shell_dump_handle} LoadedImage(\\EFI\\Shell\\Shell.efi) + ... UEFI Shell not sourced from EFI partition! diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 54c5c2634a..bb6ef014c8 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -39,7 +39,6 @@ USB002.001 USB keyboard detected in FW ... according to their labels. [Tags] minimal-regression Depends On ${TESTS_IN_FIRMWARE_SUPPORT} - Depends On ${UEFI_SHELL_SUPPORT} Depends On ${HAS_KEYBOARD} Power On Enter UEFI Shell diff --git a/os-config/ansible/os-specific-tasks/201.yaml b/os-config/ansible/os-specific-tasks/201.yaml index 7dce9a28b4..740e9bbae0 100644 --- a/os-config/ansible/os-specific-tasks/201.yaml +++ b/os-config/ansible/os-specific-tasks/201.yaml @@ -1,3 +1,15 @@ # SPDX-FileCopyrightText: 2024 3mdeb # # SPDX-License-Identifier: Apache-2.0 + +- name: Prepare UEFI Shell components + ansible.builtin.copy: + src: "{{ item.src }}" + dest: /tmp/ + mode: 755 + loop: + - src: "./../../../osfv-test-data/uefi-shell/Shell.efi" + - src: "./../../../osfv-test-data/uefi-shell/deploy-shell-efi.sh" + +- name: Install UEFI Shell + ansible.builtin.command: /tmp/deploy-shell-efi.sh /tmp/Shell.efi diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 67efc2b5a0..2058a51cf8 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -106,7 +106,6 @@ ${USB_DISKS_DETECTION_SUPPORT}= ${FALSE} ${USB_KEYBOARD_DETECTION_SUPPORT}= ${FALSE} ${USB_CAMERA_DETECTION_SUPPORT}= ${FALSE} ${USB_TYPE_C_DISPLAY_SUPPORT}= ${FALSE} -${UEFI_SHELL_SUPPORT}= ${FALSE} ${UEFI_COMPATIBLE_INTERFACE_SUPPORT}= ${FALSE} ${IPXE_BOOT_SUPPORT}= ${FALSE} ${NVME_DISK_SUPPORT}= ${FALSE} diff --git a/platform-configs/include/msi-z690-common.robot b/platform-configs/include/msi-z690-common.robot index 3139b95870..ff565bbfaf 100644 --- a/platform-configs/include/msi-z690-common.robot +++ b/platform-configs/include/msi-z690-common.robot @@ -61,7 +61,6 @@ ${EXTERNAL_DISPLAY_PORT_SUPPORT}= ${TRUE} ${CUSTOM_LOGO_SUPPORT}= ${TRUE} ${USB_DISKS_DETECTION_SUPPORT}= ${TRUE} ${USB_KEYBOARD_DETECTION_SUPPORT}= ${TRUE} -${UEFI_SHELL_SUPPORT}= ${TRUE} ${UEFI_COMPATIBLE_INTERFACE_SUPPORT}= ${TRUE} ${IPXE_BOOT_SUPPORT}= ${TRUE} ${NVME_DISK_SUPPORT}= ${TRUE} diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index 8e2e6b250b..5da1d4f9ac 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -59,7 +59,6 @@ ${EC_AND_SUPER_IO_SUPPORT}= ${TRUE} ${CUSTOM_LOGO_SUPPORT}= ${TRUE} ${USB_CAMERA_DETECTION_SUPPORT}= ${TRUE} ${USB_TYPE_C_DISPLAY_SUPPORT}= ${TRUE} -${UEFI_SHELL_SUPPORT}= ${TRUE} ${UEFI_COMPATIBLE_INTERFACE_SUPPORT}= ${TRUE} ${IPXE_BOOT_SUPPORT}= ${TRUE} ${NVME_DISK_SUPPORT}= ${TRUE} diff --git a/platform-configs/include/optiplex-common.robot b/platform-configs/include/optiplex-common.robot index 256f12c71b..df1b3001ac 100644 --- a/platform-configs/include/optiplex-common.robot +++ b/platform-configs/include/optiplex-common.robot @@ -43,7 +43,6 @@ ${EXTERNAL_DISPLAY_PORT_SUPPORT}= ${TRUE} ${CUSTOM_LOGO_SUPPORT}= ${TRUE} ${USB_DISKS_DETECTION_SUPPORT}= ${TRUE} ${USB_KEYBOARD_DETECTION_SUPPORT}= ${TRUE} -${UEFI_SHELL_SUPPORT}= ${TRUE} ${UEFI_COMPATIBLE_INTERFACE_SUPPORT}= ${TRUE} ${IPXE_BOOT_SUPPORT}= ${TRUE} ${NVME_DISK_SUPPORT}= ${TRUE} diff --git a/platform-configs/include/pcengines.robot b/platform-configs/include/pcengines.robot index 5a066ab160..b963d1e7b4 100644 --- a/platform-configs/include/pcengines.robot +++ b/platform-configs/include/pcengines.robot @@ -53,7 +53,6 @@ ${CUSTOM_BOOT_MENU_KEY_SUPPORT}= ${TRUE} ${CUSTOM_SETUP_MENU_KEY_SUPPORT}= ${TRUE} ${EC_AND_SUPER_IO_SUPPORT}= ${TRUE} ${USB_DISKS_DETECTION_SUPPORT}= ${TRUE} -${UEFI_SHELL_SUPPORT}= ${TRUE} ${UEFI_COMPATIBLE_INTERFACE_SUPPORT}= ${TRUE} ${IPXE_BOOT_SUPPORT}= ${TRUE} ${SD_CARD_READER_SUPPORT}= ${TRUE} diff --git a/platform-configs/odroid-h4-plus.robot b/platform-configs/odroid-h4-plus.robot index 4017ceeebc..f72507c4c0 100644 --- a/platform-configs/odroid-h4-plus.robot +++ b/platform-configs/odroid-h4-plus.robot @@ -37,7 +37,6 @@ ${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}= ${EMPTY} ${ETH_PORTS}= ${EMPTY} ${USB_DISKS_DETECTION_SUPPORT}= ${TRUE} ${USB_KEYBOARD_DETECTION_SUPPORT}= ${TRUE} -${UEFI_SHELL_SUPPORT}= ${TRUE} ${NVME_DISK_SUPPORT}= ${TRUE} ${EMMC_SUPPORT}= ${TRUE} ${AUDIO_SUBSYSTEM_SUPPORT}= ${TRUE} diff --git a/platform-configs/qemu.robot b/platform-configs/qemu.robot index 205bf2e298..8950e5258f 100644 --- a/platform-configs/qemu.robot +++ b/platform-configs/qemu.robot @@ -45,7 +45,6 @@ ${CUSTOM_NETWORK_BOOT_ENTRIES_SUPPORT}= ${TRUE} ${CUSTOM_LOGO_SUPPORT}= ${TRUE} ${USB_DISKS_DETECTION_SUPPORT}= ${TRUE} ${USB_KEYBOARD_DETECTION_SUPPORT}= ${TRUE} -${UEFI_SHELL_SUPPORT}= ${TRUE} ${IPXE_BOOT_SUPPORT}= ${TRUE} ${AUDIO_SUBSYSTEM_SUPPORT}= ${TRUE} ${FIRMWARE_NUMBER_VERIFICATION}= ${TRUE} diff --git a/self-tests/terminal.robot b/self-tests/terminal.robot index e3a742d1d1..52a801ffc8 100644 --- a/self-tests/terminal.robot +++ b/self-tests/terminal.robot @@ -26,23 +26,6 @@ Suite Teardown Run Keyword *** Test Cases *** -Execute UEFI Shell Command - [Documentation] Test Execute Shell Command kwd - Power On - Enter UEFI Shell - Set Prompt For Terminal Shell> - FOR ${iteration} IN RANGE 1 50 - Log To Console Iteration: ${iteration} - ${out}= Execute UEFI Shell Command map - Should Contain ${out} Alias(s): - ${out}= Execute UEFI Shell Command devices - Should Contain ${out} Device Name - ${out}= Execute UEFI Shell Command bcfg boot dump - Should Contain ${out} Optional- N - ${out}= Execute UEFI Shell Command dmpstore # this command prints data for a long time - Should Contain ${out} GlobalVariable - END - Execute Command In Terminal over SSH (Windows) [Documentation] Test Execute Command In Terminal keyword over SSH. This is related ... to bug: https://github.com/Dasharo/open-source-firmware-validation/issues/355 From 4f316c8be234bda0e15ef1c2d7987fa7c9073007 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Fri, 11 Apr 2025 10:45:50 +0200 Subject: [PATCH 353/416] keywords.robot add: keyword skipping if ubuntu batery is to low Signed-off-by: Jakub Redmerski --- keywords.robot | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/keywords.robot b/keywords.robot index 4779fb4d97..d2258546bf 100644 --- a/keywords.robot +++ b/keywords.robot @@ -909,6 +909,11 @@ Charge Battery Until Target Level In Linux Run Keyword Unless ${out} == ${target} Log Could not charge battery to specified level within timeout. +Battery Level Below 30 Percent Skip + ${battery_percentage}= Check Battery Percentage In Linux + Log To Console Skipping the test - Battery is to low. + Skip If ${battery_percentage} > 30 + Turn On ACPI CALL Module In Linux [Documentation] Keyword turns on acpi_call module in Linux OS. Execute Linux Command modprobe acpi_call From c8ff18d8ea0d9cbbecb3e2341d9e655c35946e5c Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Fri, 11 Apr 2025 10:49:10 +0200 Subject: [PATCH 354/416] keywords.robot change: new keyword name Signed-off-by: Jakub Redmerski --- keywords.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keywords.robot b/keywords.robot index d2258546bf..61fd964495 100644 --- a/keywords.robot +++ b/keywords.robot @@ -909,7 +909,7 @@ Charge Battery Until Target Level In Linux Run Keyword Unless ${out} == ${target} Log Could not charge battery to specified level within timeout. -Battery Level Below 30 Percent Skip +Skip If Battery Level Below 30 Percent ${battery_percentage}= Check Battery Percentage In Linux Log To Console Skipping the test - Battery is to low. Skip If ${battery_percentage} > 30 From c8e2482911e39b2aaa79ba6918e3c51aa8496b3d Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Fri, 11 Apr 2025 11:03:57 +0200 Subject: [PATCH 355/416] dasharo-performance/ add: new keyword to the test cases Signed-off-by: Jakub Redmerski --- dasharo-performance/cpu-frequency.robot | 3 +++ dasharo-performance/cpu-performance.robot | 2 ++ dasharo-performance/cpu-temperature.robot | 2 ++ dasharo-performance/disk-io.robot | 4 ++++ keywords.robot | 6 ++++-- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/dasharo-performance/cpu-frequency.robot b/dasharo-performance/cpu-frequency.robot index 99d31ac989..5fafe59d40 100644 --- a/dasharo-performance/cpu-frequency.robot +++ b/dasharo-performance/cpu-frequency.robot @@ -59,6 +59,7 @@ CPF001.004 CPU not stuck on initial frequency (Ubuntu) (battery) Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected + Skip If Battery Level Below 30 Percent CPU Not Stuck On Initial Frequency (Ubuntu) CPF001.005 CPU not stuck on initial frequency (Windows) (battery) @@ -171,6 +172,7 @@ CPF002.003 CPU runs on expected frequency (Ubuntu) (battery) Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected + Skip If Battery Level Below 30 Percent CPU Runs On Expected Frequency (Ubuntu) CPF002.004 CPU runs on expected frequency (Windows) (battery) @@ -249,6 +251,7 @@ CPF004.003 CPU with load runs on expected frequency (Ubuntu) (battery) Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected + Skip If Battery Level Below 30 Percent CPU With Load Runs On Expected Frequency (Ubuntu) CPF004.004 CPU with load runs on expected frequency (Windows) (battery) diff --git a/dasharo-performance/cpu-performance.robot b/dasharo-performance/cpu-performance.robot index 03c67dfe1c..685b947cba 100644 --- a/dasharo-performance/cpu-performance.robot +++ b/dasharo-performance/cpu-performance.robot @@ -27,6 +27,7 @@ CPP001.001 Single Threaded CPU Benchmark (Ubuntu) (AC) Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPP001.001 not supported Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If not ${AC_CONNECTED} The platform is not connected to AC + Skip If Battery Level Below 30 Percent Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux @@ -73,6 +74,7 @@ CPP002.002 Multi Threaded CPU Benchmark (Ubuntu) (Battery) Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If not ${BATTERY_PRESENT} Battery not present Skip If ${AC_CONNECTED} AC connected + Skip If Battery Level Below 30 Percent Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux diff --git a/dasharo-performance/cpu-temperature.robot b/dasharo-performance/cpu-temperature.robot index cf17a7ee58..ebc43367c1 100644 --- a/dasharo-performance/cpu-temperature.robot +++ b/dasharo-performance/cpu-temperature.robot @@ -47,6 +47,7 @@ CPT001.002 CPU temperature without load (Ubuntu) (battery) Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected + Skip If Battery Level Below 30 Percent CPU Temperature Without Load (Ubuntu) CPT001.003 CPU temperature without load (Ubuntu) (AC) @@ -90,6 +91,7 @@ CPT002.002 CPU temperature after stress test (Ubuntu) (battery) Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected + Skip If Battery Level Below 30 Percent CPU Temperature After Stress Test (Ubuntu) CPT002.003 CPU temperature after stress test (Ubuntu) (AC) diff --git a/dasharo-performance/disk-io.robot b/dasharo-performance/disk-io.robot index b427d8c3e1..ff0321df82 100644 --- a/dasharo-performance/disk-io.robot +++ b/dasharo-performance/disk-io.robot @@ -37,6 +37,7 @@ DIO001.202 Sequential Read Performance (Ubuntu) (Battery) Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If not ${BATTERY_PRESENT} Battery not present + Skip If Battery Level Below 30 Percent Power Cycle Into Ubuntu Switch To Root User Run FIO On Ubuntu sequential_with_queues @@ -77,6 +78,7 @@ DIO002.202 Sequential Write Performance (Ubuntu) (Battery) Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If not ${BATTERY_PRESENT} Battery not present + Skip If Battery Level Below 30 Percent Power Cycle Into Ubuntu Switch To Root User Run FIO On Ubuntu sequential_write_with_queues @@ -119,6 +121,7 @@ DIO003.202 Random Read Performance (Ubuntu) (Battery) Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If not ${BATTERY_PRESENT} Battery not present + Skip If Battery Level Below 30 Percent Power Cycle Into Ubuntu Switch To Root User Run FIO On Ubuntu random_read_with_queues @@ -161,6 +164,7 @@ DIO004.202 Random Write Performance (Ubuntu) (Battery) Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If not ${BATTERY_PRESENT} Battery not present + Skip If Battery Level Below 30 Percent Power Cycle Into Ubuntu Switch To Root User Run FIO On Ubuntu random_write_with_queues diff --git a/keywords.robot b/keywords.robot index 61fd964495..2b33e14414 100644 --- a/keywords.robot +++ b/keywords.robot @@ -911,8 +911,10 @@ Charge Battery Until Target Level In Linux Skip If Battery Level Below 30 Percent ${battery_percentage}= Check Battery Percentage In Linux - Log To Console Skipping the test - Battery is to low. - Skip If ${battery_percentage} > 30 + IF ${battery_percentage} < 30 + Log To Console \nSkipping the test - Battery is to low. + Skip + END Turn On ACPI CALL Module In Linux [Documentation] Keyword turns on acpi_call module in Linux OS. From 7f04c6d84b03c1a621d89035de72b4eaf799d04f Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Tue, 15 Apr 2025 16:59:18 +0200 Subject: [PATCH 356/416] docs/tests-naming-convention.md update: correct a typo Signed-off-by: Jakub Redmerski --- docs/tests-naming-convention.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tests-naming-convention.md b/docs/tests-naming-convention.md index 954ff86d0f..939d4b5c10 100644 --- a/docs/tests-naming-convention.md +++ b/docs/tests-naming-convention.md @@ -4,7 +4,7 @@ SPDX-FileCopyrightText: 2025 3mdeb SPDX-License-Identifier: Apache-2.0 --> -# Tests naming Conventipm +# Tests naming Convention The tests in the Open Source Firmware Validation repository use the following naming convention: From 4df8ee392ba98205dac853c63df0a4e8f9fcd354 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Wed, 16 Apr 2025 10:30:45 +0200 Subject: [PATCH 357/416] dasharo-compatibility/usb-always-on.robot: remove redundant step Signed-off-by: Wiktor Mowinski --- dasharo-compatibility/usb-always-on.robot | 6 ------ 1 file changed, 6 deletions(-) diff --git a/dasharo-compatibility/usb-always-on.robot b/dasharo-compatibility/usb-always-on.robot index 7c59a93a91..6a9303f865 100644 --- a/dasharo-compatibility/usb-always-on.robot +++ b/dasharo-compatibility/usb-always-on.robot @@ -53,7 +53,6 @@ USC002.001 Power IS delivered through always-on USB A ports ... using USB power meter. All verified ports should be able to supply ... power meter itself and voltage should be close to 5.0V Execute Manual Step ${power_meter_message} - Execute Manual Step Power off DUT USC003.001 Power IS delivered through always-on USB C ports [Documentation] This test verifies, if setting "USB ports power and @@ -74,7 +73,6 @@ USC003.001 Power IS delivered through always-on USB C ports ... using USB power meter. All verified ports should be able to supply ... power meter itself and voltage should be close to 5.0V Execute Manual Step ${power_meter_message} - Execute Manual Step Power off DUT USC004.001 Power IS NOT delivered through always-on USB A ports [Documentation] This test verifies, if setting "USB ports power and @@ -95,7 +93,6 @@ USC004.001 Power IS NOT delivered through always-on USB A ports ... using USB power meter. All verified ports should not be able to ... supply power meter itself and voltage should be close to 0.0V Execute Manual Step ${power_meter_message} - Execute Manual Step Power off DUT USC005.001 Power IS NOT delivered through always-on USB C ports [Documentation] This test verifies, if setting "USB ports power and @@ -116,7 +113,6 @@ USC005.001 Power IS NOT delivered through always-on USB C ports ... using USB power meter. All verified ports should not be able to ... supply power meter itself and voltage should be close to 0.0V Execute Manual Step ${power_meter_message} - Execute Manual Step Power off DUT USC006.001 Power IS NOT delivered through regular USB A ports [Documentation] This test verifies, if setting "USB ports power and @@ -138,7 +134,6 @@ USC006.001 Power IS NOT delivered through regular USB A ports ... using USB power meter. All verified ports should not be able to ... supply power meter itself and voltage should be close to 0.0V Execute Manual Step ${power_meter_message} - Execute Manual Step Power off DUT USC007.001 Power IS NOT delivered through regular USB C ports [Documentation] This test verifies, if setting "USB ports power and @@ -160,4 +155,3 @@ USC007.001 Power IS NOT delivered through regular USB C ports ... using USB power meter. All verified ports should not be able to ... supply power meter itself and voltage should be close to 0.0V Execute Manual Step ${power_meter_message} - Execute Manual Step Power off DUT From e4f122ac52218262958a77504c7993ec0b147512 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Mon, 14 Apr 2025 11:47:11 +0200 Subject: [PATCH 358/416] platform-configs/protectli-vp2430.robot fix: correct RAM size Signed-off-by: Jakub Redmerski --- platform-configs/protectli-vp2430.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-configs/protectli-vp2430.robot b/platform-configs/protectli-vp2430.robot index a5bca28429..ef569b9536 100644 --- a/platform-configs/protectli-vp2430.robot +++ b/platform-configs/protectli-vp2430.robot @@ -28,7 +28,7 @@ ${DEF_ONLINE_CPU}= 0-3 ${PLATFORM_CPU_SPEED}= 0.80 # get-robot-variables suggests 3,40, but 0,80 is what setup menu shows ${PLATFORM_RAM_SPEED}= 4800 -${PLATFORM_RAM_SIZE}= 16384 +${PLATFORM_RAM_SIZE}= 49152 ${CPU}= Intel(R) N100 From 3b41fc52f0fff89101db332440ed760af5ebe9ff Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Wed, 16 Apr 2025 11:43:39 +0200 Subject: [PATCH 359/416] keywords.robot: fix Signed-off-by: Wiktor Mowinski --- keywords.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keywords.robot b/keywords.robot index 2b33e14414..234c9d9c9c 100644 --- a/keywords.robot +++ b/keywords.robot @@ -391,7 +391,7 @@ Get Current CONFIG Stop Index ... Returns -1 if CONFIG not found in variables.robot. [Arguments] ${config_list} ${start} ${length}= Get Length ${config_list} - ${index}= Set Variable ${start+1} + ${index}= Set Variable ${start} FOR ${config} IN @{config_list[${index}:]} ${result}= Evaluate ${config}.get("ip") IF '${result}'!='None' RETURN ${index} From 70fe45102554ec140843eca08ddc7a70f2fc0ba1 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Wed, 16 Apr 2025 12:32:51 +0200 Subject: [PATCH 360/416] keywords.robot: fix slice argument Signed-off-by: Wiktor Mowinski --- keywords.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keywords.robot b/keywords.robot index 234c9d9c9c..782c984a43 100644 --- a/keywords.robot +++ b/keywords.robot @@ -408,7 +408,7 @@ Get Current CONFIG Should Not Be Equal ${start} ${-1} msg=Current CONFIG not found in hw-matrix ${stop}= Get Current CONFIG Stop Index ${config_list} ${start} Should Not Be Equal ${stop} ${-1} msg=Current CONFIG not found in hw-matrix - ${config}= Get Slice From List ${config_list} ${start} ${stop} + ${config}= Get Slice From List ${config_list} ${start} ${stop+1} RETURN ${config} Get Current CONFIG Item From 170758fc65308027a9596151e514eca41bba23f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 14:03:32 +0200 Subject: [PATCH 361/416] ECR016: Check the CAMERA_SWITCH_SUPPORT config variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit it was unused before... Signed-off-by: Filip Gołaś From 92477636287ae9c888be6019c555331ab5b3134b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 18:21:00 +0200 Subject: [PATCH 362/416] cpu-temperature: Add Fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/cpu-temperature.robot | 274 +++++++++++++++++++++- lib/sensors/sensors.robot | 5 +- 2 files changed, 269 insertions(+), 10 deletions(-) diff --git a/dasharo-performance/cpu-temperature.robot b/dasharo-performance/cpu-temperature.robot index ebc43367c1..98324dac12 100644 --- a/dasharo-performance/cpu-temperature.robot +++ b/dasharo-performance/cpu-temperature.robot @@ -23,18 +23,21 @@ Suite Setup Run Keywords ... AND ... Check Power Supply ... AND -... Import Variables ${CURDIR}/../platform-configs/${SENSORS_CONFIG_FILE} +... Prepare Sensors Suite Teardown Run Keyword ... Log Out And Close Connection *** Test Cases *** -CPT001.001 CPU temperature without load (Ubuntu) +CPT001.201 CPU temperature without load (Ubuntu) [Documentation] This test aims to verify whether the temperature of CPU ... cores after system booting is not higher than the maximum ... allowed temperature. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT001.001 not supported + ... Previous IDs: CPT001.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPT001.201 not supported Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop +<<<<<<< HEAD CPU Temperature Without Load (Ubuntu) CPT001.002 CPU temperature without load (Ubuntu) (battery) @@ -119,11 +122,269 @@ CPT002.004 CPU temperature after stress test (Ubuntu) (USB-PD) *** Keywords *** CPU Temperature Without Load (Ubuntu) +======= +>>>>>>> 5dcc9bcc3281 (cpu-temperature: Add Fedora test cases) Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + CPU Temperature Without Load + Exit From Root User +CPT002.201 CPU temperature without load (Ubuntu) (battery) + [Documentation] This test aims to verify whether the temperature of CPU + ... cores after system booting is not higher than the maximum + ... allowed temperature. + ... Previous IDs: CPT001.002 + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT002.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPT002.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} battery not present + Skip If ${AC_CONNECTED} AC connected + Skip If ${USB-PD_connected} USB-PD connected + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + CPU Temperature Without Load + Exit From Root User + +CPT003.201 CPU temperature without load (Ubuntu) (AC) + [Documentation] This test aims to verify whether the temperature of CPU + ... cores after system booting is not higher than the maximum + ... allowed temperature. + ... Previous IDs: CPT001.003 + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT003.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPT003.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${AC_CONNECTED} AC not connected + Skip If ${USB-PD_connected} USB-PD connected + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + CPU Temperature Without Load + Exit From Root User + +CPT004.201 CPU temperature without load (Ubuntu) (USB-PD) + [Documentation] This test aims to verify whether the temperature of CPU + ... cores after system booting is not higher than the maximum + ... allowed temperature. + ... Previous IDs: CPT001.004 + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT004.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT004.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPT004.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If ${AC_CONNECTED} AC connected + Skip If not ${USB-PD_connected} USB-PD not connected + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + CPU Temperature Without Load + Exit From Root User + +CPT005.201 CPU temperature after stress test (Ubuntu) + [Documentation] This test aims to verify whether the temperature of the + ... CPU cores is not higher than the maximum allowed + ... temperature during stress test. + ... Previous IDs: CPT002.001 + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT005.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT005.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPT005.201 not supported + Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + CPU Temperature After Stress Test + Exit From Root User + +CPT006.002 CPU temperature after stress test (Ubuntu) (battery) + [Documentation] This test aims to verify whether the temperature of the + ... CPU cores is not higher than the maximum allowed + ... temperature during stress test. + ... Previous IDs: CPT002.002 + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT006.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT006.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPT006.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} battery not present + Skip If ${AC_CONNECTED} AC connected + Skip If ${USB-PD_connected} USB-PD connected + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + CPU Temperature After Stress Test + Exit From Root User + +CPT007.201 CPU temperature after stress test (Ubuntu) (AC) + [Documentation] This test aims to verify whether the temperature of the + ... CPU cores is not higher than the maximum allowed + ... temperature during stress test. + ... Previous IDs: CPT002.003 + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT007.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT007.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPT007.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${AC_CONNECTED} AC not connected + Skip If ${USB-PD_connected} USB-PD connected + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + CPU Temperature After Stress Test + Exit From Root User + +CPT008.201 CPU temperature after stress test (Ubuntu) (USB-PD) + [Documentation] This test aims to verify whether the temperature of the + ... CPU cores is not higher than the maximum allowed + ... temperature during stress test. + ... Previous IDs: CPT002.004 + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT008.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT008.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPT008.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If ${AC_CONNECTED} AC connected + Skip If not ${USB-PD_connected} USB-PD not connected + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + CPU Temperature After Stress Test + Exit From Root User + +CPT001.202 CPU temperature without load (Fedora) + [Documentation] This test aims to verify whether the temperature of CPU + ... cores after system booting is not higher than the maximum + ... allowed temperature. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPT001.202 not supported + Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + CPU Temperature Without Load + Exit From Root User + +CPT002.202 CPU temperature without load (Fedora) (battery) + [Documentation] This test aims to verify whether the temperature of CPU + ... cores after system booting is not higher than the maximum + ... allowed temperature. + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT002.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPT002.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} battery not present + Skip If ${AC_CONNECTED} AC connected + Skip If ${USB-PD_connected} USB-PD connected + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + CPU Temperature Without Load + Exit From Root User + +CPT003.202 CPU temperature without load (Fedora) (AC) + [Documentation] This test aims to verify whether the temperature of CPU + ... cores after system booting is not higher than the maximum + ... allowed temperature. + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT003.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPT003.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${AC_CONNECTED} AC not connected + Skip If ${USB-PD_connected} USB-PD connected + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + CPU Temperature Without Load + Exit From Root User + +CPT004.202 CPU temperature without load (Fedora) (USB-PD) + [Documentation] This test aims to verify whether the temperature of CPU + ... cores after system booting is not higher than the maximum + ... allowed temperature. + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT004.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPT004.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If ${AC_CONNECTED} AC connected + Skip If not ${USB-PD_connected} USB-PD not connected + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + CPU Temperature Without Load + Exit From Root User + +CPT005.202 CPU temperature after stress test (Fedora) + [Documentation] This test aims to verify whether the temperature of the + ... CPU cores is not higher than the maximum allowed + ... temperature during stress test. + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT005.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPT005.202 not supported + Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + CPU Temperature After Stress Test + Exit From Root User + +CPT006.202 CPU temperature after stress test (Fedora) (battery) + [Documentation] This test aims to verify whether the temperature of the + ... CPU cores is not higher than the maximum allowed + ... temperature during stress test. + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT006.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPT006.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} battery not present + Skip If ${AC_CONNECTED} AC connected + Skip If ${USB-PD_connected} USB-PD connected + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + CPU Temperature After Stress Test + Exit From Root User + +CPT007.202 CPU temperature after stress test (Fedora) (AC) + [Documentation] This test aims to verify whether the temperature of the + ... CPU cores is not higher than the maximum allowed + ... temperature during stress test. + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT007.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPT007.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${AC_CONNECTED} AC not connected + Skip If ${USB-PD_connected} USB-PD connected + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + CPU Temperature After Stress Test + Exit From Root User + +CPT008.202 CPU temperature after stress test (Fedora) (USB-PD) + [Documentation] This test aims to verify whether the temperature of the + ... CPU cores is not higher than the maximum allowed + ... temperature during stress test. + Skip If not ${CPU_TEMPERATURE_MEASURE} CPT008.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPT008.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If ${AC_CONNECTED} AC connected + Skip If not ${USB-PD_connected} USB-PD not connected + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User + CPU Temperature After Stress Test + Exit From Root User + + +*** Keywords *** +CPU Temperature Without Load Execute Command In Terminal sensors-detect --auto ${timer}= Convert To Integer 0 @{temperature_list}= Create List @@ -160,12 +421,7 @@ CPU Temperature Without Load (Ubuntu) Log To Console Test threshold of CPU temp: ${MAX_CPU_TEMP}°C Should Be True ${average} < ${MAX_CPU_TEMP} -CPU Temperature After Stress Test (Ubuntu) - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - +CPU Temperature After Stress Test Execute Command In Terminal sensors-detect --auto Stress Test ${TEMPERATURE_TEST_DURATION}s ${timer}= Convert To Integer 0 diff --git a/lib/sensors/sensors.robot b/lib/sensors/sensors.robot index 69d3e9cdce..5ab98e8fe1 100644 --- a/lib/sensors/sensors.robot +++ b/lib/sensors/sensors.robot @@ -12,7 +12,10 @@ Prepare Sensors [Documentation] Do any preparation work needed for accessing sensors # Might only do this when any method is said to be lm-sensors. - + Power On + Boot System Or From Connected Disk ${BOOTED_OS_ID} + Login To Linux + Switch To Root User Import Variables ${CURDIR}/../../platform-configs/${SENSORS_CONFIG_FILE} ${cpu_temperature_measurement_method}= Get From Dictionary ${CPU_TEMPERATURE_MEASUREMENT} method ${fan_pwm_measurement_method}= Get From Dictionary ${FAN_PWM_MEASUREMENT} method From 508da857404864e8e1a02ee52ffe76d29937f52d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 19:18:06 +0200 Subject: [PATCH 363/416] cpu-frequency: Add Fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/cpu-frequency.robot | 486 ++++++++++++++++-------- lib/CPU-performance-lib.robot | 2 +- 2 files changed, 337 insertions(+), 151 deletions(-) diff --git a/dasharo-performance/cpu-frequency.robot b/dasharo-performance/cpu-frequency.robot index 5fafe59d40..69ee44787d 100644 --- a/dasharo-performance/cpu-frequency.robot +++ b/dasharo-performance/cpu-frequency.robot @@ -28,19 +28,263 @@ Suite Teardown Run Keyword *** Test Cases *** -CPF001.001 CPU not stuck on initial frequency (Ubuntu) +CPF001.201 CPU not stuck on initial frequency (Ubuntu) [Documentation] This test aims to verify whether the mounted CPU does not ... stuck on the initial frequency after booting into the OS. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF001.001 not supported + ... Previous IDs: CPF001.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPF001.201 not supported Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop - CPU Not Stuck On Initial Frequency (Ubuntu) + CPU Not Stuck On Initial Frequency (Linux) ${ENV_ID_UBUNTU} + +CPF002.201 CPU not stuck on initial frequency (Ubuntu) (battery) + [Documentation] This test aims to verify whether the mounted CPU does not + ... stuck on the initial frequency after booting into the OS. + ... Previous IDs: CPF001.004 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF002.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPF002.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} battery not present + Skip If ${AC_CONNECTED} AC connected + Skip If ${USB-PD_connected} USB-PD connected + CPU Not Stuck On Initial Frequency (Linux) ${ENV_ID_UBUNTU} + +CPF003.201 CPU not stuck on initial frequency (Ubuntu) (AC) + [Documentation] This test aims to verify whether the mounted CPU does not + ... stuck on the initial frequency after booting into the OS. + ... Previous IDs: CPF001.007 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF003.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF003.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPF003.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${AC_CONNECTED} AC not connected + Skip If ${USB-PD_connected} USB-PD connected + CPU Not Stuck On Initial Frequency (Linux) ${ENV_ID_UBUNTU} -CPF001.002 CPU not stuck on initial frequency (Windows) +CPF004.201 CPU not stuck on initial frequency (Ubuntu) (USB-PD) [Documentation] This test aims to verify whether the mounted CPU does not ... stuck on the initial frequency after booting into the OS. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF001.002 not supported + ... Previous IDs: CPF001.0010 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF004.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF004.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPF004.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If ${AC_CONNECTED} AC connected + Skip If not ${USB-PD_connected} USB-PD not connected + CPU Not Stuck On Initial Frequency (Linux) ${ENV_ID_UBUNTU} + +CPF005.201 CPU runs on expected frequency (Ubuntu) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency. + ... Previous IDs: CPF002.001 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF005.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF005.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPF005.201 not supported Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop - CPU Not Stuck On Initial Frequency (Windows) + CPU Runs On Expected Frequency (Linux) ${ENV_ID_UBUNTU} + +CPF006.201 CPU runs on expected frequency (Ubuntu) (battery) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency. + ... Previous IDs: CPF002.003 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF006.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF006.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPF006.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} battery not present + Skip If ${AC_CONNECTED} AC connected + Skip If ${USB-PD_connected} USB-PD connected + CPU Runs On Expected Frequency (Linux) ${ENV_ID_UBUNTU} + +CPF007.201 CPU runs on expected frequency (Ubuntu) (AC) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency. + ... Previous IDs: CPF002.005 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF007.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF007.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPF007.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${AC_CONNECTED} AC not connected + Skip If ${USB-PD_connected} USB-PD connected + CPU Runs On Expected Frequency (Linux) ${ENV_ID_UBUNTU} + +CPF008.201 CPU runs on expected frequency (Ubuntu) (USB-PD) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency. + ... Previous IDs: CPF002.007 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF008.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF008.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPF008.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If ${AC_CONNECTED} AC connected + Skip If not ${USB-PD_connected} USB-PD not connected + CPU Runs On Expected Frequency (Linux) ${ENV_ID_UBUNTU} + +CPF009.201 CPU with load runs on expected frequency (Ubuntu) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency after stress test. + ... Previous IDs: CPF004.001 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF009.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF009.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPF009.201 not supported + Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop + CPU With Load Runs On Expected Frequency (Linux) ${ENV_ID_UBUNTU} + +CPF010.201 CPU with load runs on expected frequency (Ubuntu) (battery) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency after stress test. + ... Previous IDs: CPF004.003 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF010.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF010.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPF010.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} battery not present + Skip If ${AC_CONNECTED} AC connected + Skip If ${USB-PD_connected} USB-PD connected + CPU With Load Runs On Expected Frequency (Linux) ${ENV_ID_UBUNTU} + +CPF011.201 CPU with load runs on expected frequency (Ubuntu) (AC) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency after stress test. + ... Previous IDs: CPF004.005 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF011.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF011.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPF011.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${AC_CONNECTED} AC not connected + Skip If ${USB-PD_connected} USB-PD connected + CPU With Load Runs On Expected Frequency (Linux) ${ENV_ID_UBUNTU} + +CPF012.201 CPU with load runs on expected frequency (Ubuntu) (USB-PD) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency after stress test. + ... Previous IDs: CPF004.007 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF012.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF012.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPF012.201 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If ${AC_CONNECTED} AC connected + Skip If not ${USB-PD_connected} USB-PD not connected + CPU With Load Runs On Expected Frequency (Linux) ${ENV_ID_UBUNTU} + +CPF001.202 CPU not stuck on initial frequency (Fedora) + [Documentation] This test aims to verify whether the mounted CPU does not + ... stuck on the initial frequency after booting into the OS. + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF001.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPF001.202 not supported + Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop + CPU Not Stuck On Initial Frequency (Linux) ${ENV_ID_FEDORA} + +CPF002.202 CPU not stuck on initial frequency (Fedora) (battery) + [Documentation] This test aims to verify whether the mounted CPU does not + ... stuck on the initial frequency after booting into the OS. + Skip If not ${CPU_FREQUENCY_MEASURE} CPF002.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPF002.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} battery not present + Skip If ${AC_CONNECTED} AC connected + Skip If ${USB-PD_connected} USB-PD connected + CPU Not Stuck On Initial Frequency (Linux) ${ENV_ID_FEDORA} + +CPF003.202 CPU not stuck on initial frequency (Fedora) (AC) + [Documentation] This test aims to verify whether the mounted CPU does not + ... stuck on the initial frequency after booting into the OS. + Skip If not ${CPU_FREQUENCY_MEASURE} CPF003.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPF003.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${AC_CONNECTED} AC not connected + Skip If ${USB-PD_connected} USB-PD connected + CPU Not Stuck On Initial Frequency (Linux) ${ENV_ID_FEDORA} + +CPF004.202 CPU not stuck on initial frequency (Fedora) (USB-PD) + [Documentation] This test aims to verify whether the mounted CPU does not + ... stuck on the initial frequency after booting into the OS. + Skip If not ${CPU_FREQUENCY_MEASURE} CPF004.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPF004.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If ${AC_CONNECTED} AC connected + Skip If not ${USB-PD_connected} USB-PD not connected + CPU Not Stuck On Initial Frequency (Linux) ${ENV_ID_FEDORA} + +CPF005.202 CPU runs on expected frequency (Fedora) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency. + Skip If not ${CPU_FREQUENCY_MEASURE} CPF005.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPF005.202 not supported + Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop + CPU Runs On Expected Frequency (Linux) ${ENV_ID_FEDORA} + +CPF006.202 CPU runs on expected frequency (Fedora) (battery) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency. + Skip If not ${CPU_FREQUENCY_MEASURE} CPF006.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPF006.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} battery not present + Skip If ${AC_CONNECTED} AC connected + Skip If ${USB-PD_connected} USB-PD connected + CPU Runs On Expected Frequency (Linux) ${ENV_ID_FEDORA} + +CPF007.202 CPU runs on expected frequency (Fedora) (AC) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency. + Skip If not ${CPU_FREQUENCY_MEASURE} CPF007.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPF007.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${AC_CONNECTED} AC not connected + Skip If ${USB-PD_connected} USB-PD connected + CPU Runs On Expected Frequency (Linux) ${ENV_ID_FEDORA} + +CPF008.202 CPU runs on expected frequency (Fedora) (USB-PD) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency. + Skip If not ${CPU_FREQUENCY_MEASURE} CPF008.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPF008.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If ${AC_CONNECTED} AC connected + Skip If not ${USB-PD_connected} USB-PD not connected + CPU Runs On Expected Frequency (Linux) ${ENV_ID_FEDORA} + +CPF009.202 CPU with load runs on expected frequency (Fedora) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency after stress test. + Skip If not ${CPU_FREQUENCY_MEASURE} CPF009.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPF009.202 not supported + Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop + CPU With Load Runs On Expected Frequency (Linux) ${ENV_ID_FEDORA} + +CPF010.202 CPU with load runs on expected frequency (Fedora) (battery) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency after stress test. + Skip If not ${CPU_FREQUENCY_MEASURE} CPF010.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPF010.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} battery not present + Skip If ${AC_CONNECTED} AC connected + Skip If ${USB-PD_connected} USB-PD connected + CPU With Load Runs On Expected Frequency (Linux) ${ENV_ID_FEDORA} + +CPF011.202 CPU with load runs on expected frequency (Fedora) (AC) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency after stress test. + Skip If not ${CPU_FREQUENCY_MEASURE} CPF011.202 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF011.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPF011.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${AC_CONNECTED} AC not connected + Skip If ${USB-PD_connected} USB-PD connected + CPU With Load Runs On Expected Frequency (Linux) ${ENV_ID_FEDORA} + +CPF012.202 CPU with load runs on expected frequency (Fedora) (USB-PD) + [Documentation] This test aims to verify whether the mounted CPU is + ... running on expected frequency after stress test. + Skip If not ${CPU_FREQUENCY_MEASURE} CPF012.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CPF012.202 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If ${AC_CONNECTED} AC connected + Skip If not ${USB-PD_connected} USB-PD not connected + CPU With Load Runs On Expected Frequency (Linux) ${ENV_ID_FEDORA} CPF001.003 CPU not stuck on initial frequency (Heads+Debian) [Documentation] This test aims to verify whether the mounted CPU does not @@ -85,26 +329,6 @@ CPF001.006 CPU not stuck on initial frequency (Heads+Debian) (battery) Skip If ${USB-PD_connected} USB-PD connected CPU Not Stuck On Initial Frequency (Heads+Debian) -CPF001.007 CPU not stuck on initial frequency (Ubuntu) (AC) - [Documentation] This test aims to verify whether the mounted CPU does not - ... stuck on the initial frequency after booting into the OS. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF001.007 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF001.007 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If not ${AC_CONNECTED} AC not connected - Skip If ${USB-PD_connected} USB-PD connected - CPU Not Stuck On Initial Frequency (Ubuntu) - -CPF001.008 CPU not stuck on initial frequency (Windows) (AC) - [Documentation] This test aims to verify whether the mounted CPU does not - ... stuck on the initial frequency after booting into the OS. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF001.008 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF001.008 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If not ${AC_CONNECTED} AC not connected - Skip If ${USB-PD_connected} USB-PD connected - CPU Not Stuck On Initial Frequency (Windows) - CPF001.009 CPU not stuck on initial frequency (Heads+Debian) (AC) [Documentation] This test aims to verify whether the mounted CPU does not ... stuck on the initial frequency after booting into the OS. @@ -116,190 +340,142 @@ CPF001.009 CPU not stuck on initial frequency (Heads+Debian) (AC) Skip If ${USB-PD_connected} USB-PD connected CPU Not Stuck On Initial Frequency (Heads+Debian) -CPF001.010 CPU not stuck on initial frequency (Ubuntu) (USB-PD) +CPF001.012 CPU not stuck on initial frequency (Heads+Debian) (USB-PD) [Documentation] This test aims to verify whether the mounted CPU does not ... stuck on the initial frequency after booting into the OS. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF001.010 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF001.010 not supported + Skip If not ${CPU_FREQUENCY_MEASURE} CPF001.012 not supported + Skip If not ${TESTS_IN_DEBIAN_SUPPORT} CPF001.012 not supported + Skip If not ${HEADS_PAYLOAD_SUPPORT} CPF001.012 not supported Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If ${AC_CONNECTED} AC connected Skip If not ${USB-PD_connected} USB-PD not connected - CPU Not Stuck On Initial Frequency (Ubuntu) + CPU Not Stuck On Initial Frequency (Heads+Debian) -CPF001.011 CPU not stuck on initial frequency (Windows) (USB-PD) +CPF001.301 CPU not stuck on initial frequency (Windows) [Documentation] This test aims to verify whether the mounted CPU does not ... stuck on the initial frequency after booting into the OS. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF001.011 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF001.011 not supported + ... Previous IDs: CPF001.002 + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF001.301 not supported + Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop` + CPU Not Stuck On Initial Frequency (Windows) + +CPF002.301 CPU not stuck on initial frequency (Windows) (battery) + [Documentation] This test aims to verify whether the mounted CPU does not + ... stuck on the initial frequency after booting into the OS. + ... Previous IDs: CPF001.005 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF002.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF002.301 not supported Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected - Skip If not ${USB-PD_connected} USB-PD not connected + Skip If ${USB-PD_connected} USB-PD connected + Skip If Battery Level Below 30 Percent CPU Not Stuck On Initial Frequency (Windows) -CPF001.012 CPU not stuck on initial frequency (Heads+Debian) (USB-PD) +CPF003.301 CPU not stuck on initial frequency (Windows) (AC) [Documentation] This test aims to verify whether the mounted CPU does not ... stuck on the initial frequency after booting into the OS. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF001.012 not supported - Skip If not ${TESTS_IN_DEBIAN_SUPPORT} CPF001.012 not supported - Skip If not ${HEADS_PAYLOAD_SUPPORT} CPF001.012 not supported + ... Previous IDs: CPF001.008 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF003.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF003.301 not supported + Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop + Skip If not ${AC_CONNECTED} AC not connected + Skip If ${USB-PD_connected} USB-PD connected + CPU Not Stuck On Initial Frequency (Windows) + +CPF004.301 CPU not stuck on initial frequency (Windows) (USB-PD) + [Documentation] This test aims to verify whether the mounted CPU does not + ... stuck on the initial frequency after booting into the OS. + ... Previous IDs: CPF001.011 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF004.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF004.301 not supported Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If ${AC_CONNECTED} AC connected Skip If not ${USB-PD_connected} USB-PD not connected - CPU Not Stuck On Initial Frequency (Heads+Debian) - -CPF002.001 CPU runs on expected frequency (Ubuntu) - [Documentation] This test aims to verify whether the mounted CPU is - ... running on expected frequency. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF002.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF002.001 not supported - Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop - CPU Runs On Expected Frequency (Ubuntu) + CPU Not Stuck On Initial Frequency (Windows) -CPF002.002 CPU runs on expected frequency (Windows) +CPF005.301 CPU runs on expected frequency (Windows) [Documentation] This test aims to verify whether the mounted CPU is ... running on expected frequency. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF002.002 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF002.002 not supported + ... Previous IDs: CPF002.002 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF005.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF005.301 not supported Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop CPU Runs On Expected Frequency (Windows) -CPF002.003 CPU runs on expected frequency (Ubuntu) (battery) - [Documentation] This test aims to verify whether the mounted CPU is - ... running on expected frequency. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF002.003 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF002.003 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If not ${BATTERY_PRESENT} battery not present - Skip If ${AC_CONNECTED} AC connected - Skip If ${USB-PD_connected} USB-PD connected - Skip If Battery Level Below 30 Percent - CPU Runs On Expected Frequency (Ubuntu) - -CPF002.004 CPU runs on expected frequency (Windows) (battery) +CPF006.301 CPU runs on expected frequency (Windows) (battery) [Documentation] This test aims to verify whether the mounted CPU is ... running on expected frequency. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF002.004 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF002.004 not supported + ... Previous IDs: CPF002.004 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF006.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF006.301 not supported Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected CPU Runs On Expected Frequency (Windows) -CPF002.005 CPU runs on expected frequency (Ubuntu) (AC) - [Documentation] This test aims to verify whether the mounted CPU is - ... running on expected frequency. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF002.005 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF002.005 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If not ${AC_CONNECTED} AC not connected - Skip If ${USB-PD_connected} USB-PD connected - CPU Runs On Expected Frequency (Ubuntu) - -CPF002.006 CPU runs on expected frequency (Windows) (AC) +CPF007.301 CPU runs on expected frequency (Windows) (AC) [Documentation] This test aims to verify whether the mounted CPU is ... running on expected frequency. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF002.006 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF002.006 not supported + ... Previous IDs: CPF002.006 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF007.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF007.301 not supported Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If not ${AC_CONNECTED} AC not connected Skip If ${USB-PD_connected} USB-PD connected CPU Runs On Expected Frequency (Windows) -CPF002.007 CPU runs on expected frequency (Ubuntu) (USB-PD) +CPF008.301 CPU runs on expected frequency (Windows) (USB-PD) [Documentation] This test aims to verify whether the mounted CPU is ... running on expected frequency. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF002.007 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF002.007 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If ${AC_CONNECTED} AC connected - Skip If not ${USB-PD_connected} USB-PD not connected - CPU Runs On Expected Frequency (Ubuntu) - -CPF002.008 CPU runs on expected frequency (Windows) (USB-PD) - [Documentation] This test aims to verify whether the mounted CPU is - ... running on expected frequency. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF002.008 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF002.008 not supported + ... Previous IDs: CPF002.008 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF008.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF008.301 not supported Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If ${AC_CONNECTED} AC connected Skip If not ${USB-PD_connected} USB-PD not connected CPU Runs On Expected Frequency (Windows) -CPF004.001 CPU with load runs on expected frequency (Ubuntu) - [Documentation] This test aims to verify whether the mounted CPU is - ... running on expected frequency after stress test. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF004.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF004.001 not supported - Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop - CPU With Load Runs On Expected Frequency (Ubuntu) - -CPF004.002 CPU with load runs on expected frequency (Windows) +CPF009.301 CPU with load runs on expected frequency (Windows) [Documentation] This test aims to verify whether the mounted CPU is ... running on expected frequency after stress test. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF004.002 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF004.002 not supported + ... Previous IDs: CPF004.002 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF009.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF009.301 not supported Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop CPU With Load Runs On Expected Frequency (Windows) -CPF004.003 CPU with load runs on expected frequency (Ubuntu) (battery) +CPF010.301 CPU with load runs on expected frequency (Windows) (battery) [Documentation] This test aims to verify whether the mounted CPU is ... running on expected frequency after stress test. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF004.003 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF004.003 not supported + ... Previous IDs: CPF004.004 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF010.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF010.301 not supported Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected Skip If Battery Level Below 30 Percent - CPU With Load Runs On Expected Frequency (Ubuntu) - -CPF004.004 CPU with load runs on expected frequency (Windows) (battery) - [Documentation] This test aims to verify whether the mounted CPU is - ... running on expected frequency after stress test. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF004.004 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF004.004 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If not ${BATTERY_PRESENT} battery not present - Skip If ${AC_CONNECTED} AC connected - Skip If ${USB-PD_connected} USB-PD connected CPU With Load Runs On Expected Frequency (Windows) -CPF004.005 CPU with load runs on expected frequency (Ubuntu) (AC) - [Documentation] This test aims to verify whether the mounted CPU is - ... running on expected frequency after stress test. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF004.005 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF004.005 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If not ${AC_CONNECTED} AC not connected - Skip If ${USB-PD_connected} USB-PD connected - CPU With Load Runs On Expected Frequency (Ubuntu) - -CPF004.006 CPU with load runs on expected frequency (Windows) (AC) +CPF011.301 CPU with load runs on expected frequency (Windows) (AC) [Documentation] This test aims to verify whether the mounted CPU is ... running on expected frequency after stress test. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF004.006 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF004.006 not supported + ... Previous IDs: CPF004.006 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF011.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF011.301 not supported Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If not ${AC_CONNECTED} AC not connected Skip If ${USB-PD_connected} USB-PD connected CPU With Load Runs On Expected Frequency (Windows) -CPF004.007 CPU with load runs on expected frequency (Ubuntu) (USB-PD) - [Documentation] This test aims to verify whether the mounted CPU is - ... running on expected frequency after stress test. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF004.007 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF004.007 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If ${AC_CONNECTED} AC connected - Skip If not ${USB-PD_connected} USB-PD not connected - CPU With Load Runs On Expected Frequency (Ubuntu) - -CPF004.008 CPU with load runs on expected frequency (Windows) (USB-PD) +CPF012.301 CPU with load runs on expected frequency (Windows) (USB-PD) [Documentation] This test aims to verify whether the mounted CPU is ... running on expected frequency after stress test. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF004.008 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF004.008 not supported + ... Previous IDs: CPF004.008 + Skip If not ${CPU_FREQUENCY_MEASURE} CPF012.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF012.301 not supported Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop Skip If ${AC_CONNECTED} AC connected Skip If not ${USB-PD_connected} USB-PD not connected @@ -307,21 +483,25 @@ CPF004.008 CPU with load runs on expected frequency (Windows) (USB-PD) *** Keywords *** -CPU Not Stuck On Initial Frequency (Ubuntu) +CPU Not Stuck On Initial Frequency (Linux) + [Tags] robot:private + [Arguments] ${os_id} Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User Sleep 10s - Check If CPU Not Stuck On Initial Frequency In Ubuntu + Check If CPU Not Stuck On Initial Frequency In Linux CPU Not Stuck On Initial Frequency (Windows) + [Tags] robot:private Power On Login To Windows Sleep 10s Check If CPU Not Stuck On Initial Frequency In Windows CPU Not Stuck On Initial Frequency (Heads+Debian) + [Tags] robot:private Power On Detect Heads Main Menu # Proceed with default boot @@ -330,14 +510,16 @@ CPU Not Stuck On Initial Frequency (Heads+Debian) Write Into Terminal debian Login To Linux With Root Privileges Sleep 10s - Check If CPU Not Stuck On Initial Frequency In Ubuntu + Check If CPU Not Stuck On Initial Frequency In Linux -CPU Runs On Expected Frequency (Ubuntu) +CPU Runs On Expected Frequency (Linux) + [Tags] robot:private + [Arguments] ${os_id} ${cpu_max_frequency_tol}= Evaluate ${CPU_MAX_FREQUENCY} * 1.125 ${cpu_min_frequency_tol}= Evaluate ${CPU_MIN_FREQUENCY} * 0.875 Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User ${timer}= Convert To Integer 0 @@ -356,6 +538,7 @@ CPU Runs On Expected Frequency (Ubuntu) END CPU Runs On Expected Frequency (Windows) + [Tags] robot:private Power On Login To Windows ${timer}= Convert To Integer 0 @@ -367,12 +550,14 @@ CPU Runs On Expected Frequency (Windows) ${timer}= Evaluate ${timer} + ${FREQUENCY_TEST_MEASURE_INTERVAL} END -CPU With Load Runs On Expected Frequency (Ubuntu) +CPU With Load Runs On Expected Frequency (Linux) + [Tags] robot:private + [Arguments] ${os_id} ${cpu_max_frequency_tol}= Evaluate ${CPU_MAX_FREQUENCY} * 1.125 ${cpu_min_frequency_tol}= Evaluate ${CPU_MIN_FREQUENCY} * 0.875 Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User Stress Test ${FREQUENCY_TEST_DURATION}m @@ -392,6 +577,7 @@ CPU With Load Runs On Expected Frequency (Ubuntu) END CPU With Load Runs On Expected Frequency (Windows) + [Tags] robot:private Power On Login To Windows SSHLibrary.Put File stress-test-windows.ps1 /C:/Users/user diff --git a/lib/CPU-performance-lib.robot b/lib/CPU-performance-lib.robot index 46f3e02202..03faf1530e 100644 --- a/lib/CPU-performance-lib.robot +++ b/lib/CPU-performance-lib.robot @@ -39,7 +39,7 @@ Get CPU Frequencies In Ubuntu END RETURN @{frequency_list} -Check If CPU Not Stuck On Initial Frequency In Ubuntu +Check If CPU Not Stuck On Initial Frequency In Linux [Documentation] Check that CPU not stuck on initial frequency. ${are_frequencies_equal}= Set Variable ${TRUE} @{frequencies}= Get CPU Frequencies In Ubuntu From 281d55ded62e510c0ca4ee395486fefbaf388230 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 4 Apr 2025 15:43:08 +0200 Subject: [PATCH 364/416] bios-lock: Add Fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-security/bios-lock.robot | 62 ++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 14 deletions(-) diff --git a/dasharo-security/bios-lock.robot b/dasharo-security/bios-lock.robot index 49cbf7a365..52e7a9f30d 100644 --- a/dasharo-security/bios-lock.robot +++ b/dasharo-security/bios-lock.robot @@ -27,31 +27,65 @@ Suite Teardown Run Keyword *** Test Cases *** -BLS001.001 BIOS lock support (Ubuntu) +BLS001.201 BIOS lock support (Ubuntu) [Documentation] BIOS lock is a method to prevent a specific region of the ... firmware from being flashed. This test aims to verify that, ... after turning on the mechanism, the BIOS region should be correctly ... recognized during attempt to overwrite it by using flashrom tool. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} BLS001.001 not supported - Set UEFI Option LockBios ${TRUE} - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User + ... Previous IDs: BLS001.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} BLS001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} BLS001.201 not supported + BIOS Lock Support ${ENV_ID_UBUNTU} - ${out_flashrom}= Execute Command In Terminal flashrom -p internal - ${pr0}= Get Lines Matching Regexp ${out_flashrom} ^PR0: Warning: 0x.{8}-0x.{8} is read-only.$ - Should Not Be Empty ${pr0} +BLS002.201 BIOS lock support deactivation (Ubuntu) + [Documentation] BIOS lock is a method to prevent a specific region of the + ... firmware from being flashed. This test aims to verify that, after + ... turning off the mechanism, the BIOS region overwriting operation is + ... available again. + ... Previous IDs: BLS002.001 + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} BLS002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} BLS002.201 not supported + BIOS Lock Support Deactivation ${ENV_ID_UBUNTU} + +BLS001.202 BIOS lock support (Fedora) + [Documentation] BIOS lock is a method to prevent a specific region of the + ... firmware from being flashed. This test aims to verify that, + ... after turning on the mechanism, the BIOS region should be correctly + ... recognized during attempt to overwrite it by using flashrom tool. + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} BLS001.202 not supported + BIOS Lock Support ${ENV_ID_FEDORA} -BLS002.001 BIOS lock support deactivation (Ubuntu) +BLS002.202 BIOS lock support deactivation (Fedora) [Documentation] BIOS lock is a method to prevent a specific region of the ... firmware from being flashed. This test aims to verify that, after ... turning off the mechanism, the BIOS region overwriting operation is ... available again. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} BLS002.001 not supported - Set UEFI Option LockBios ${FALSE} - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} BLS002.202 not supported + BIOS Lock Support Deactivation ${ENV_ID_FEDORA} + + +*** Keywords *** +BIOS Lock Support + [Tags] robot:private + [Arguments] ${os_id} + ${pr0}= Get Bios Lock State ${os_id} + Should Not Be Empty ${pr0} + +BIOS Lock Support Deactivation + [Tags] robot:private + [Arguments] ${os_id} + ${pr0}= Get Bios Lock State ${os_id} + Should Not Be Empty ${pr0} + +Get Bios Lock State + [Tags] robot:private + [Arguments] ${os_id} + Set UEFI Option LockBios ${TRUE} + Power On + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User ${out_flashrom}= Execute Command In Terminal flashrom -p internal ${pr0}= Get Lines Matching Regexp ${out_flashrom} ^PR0: Warning: 0x.{8}-0x.{8} is read-only.$ - Should Be Empty ${pr0} + Exit From Root User + RETURN ${pr0} From d75b9f13714aad33cbf30a7cff694c8225c3a8eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 4 Apr 2025 15:44:04 +0200 Subject: [PATCH 365/416] wifi-bluetooth-switch: Add Fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-security/wifi-bluetooth-switch.robot | 56 +++++++++++++++++--- 1 file changed, 49 insertions(+), 7 deletions(-) diff --git a/dasharo-security/wifi-bluetooth-switch.robot b/dasharo-security/wifi-bluetooth-switch.robot index df56a8ea67..48998155e6 100644 --- a/dasharo-security/wifi-bluetooth-switch.robot +++ b/dasharo-security/wifi-bluetooth-switch.robot @@ -23,29 +23,71 @@ Suite Teardown Run Keyword *** Test Cases *** -WBS001.001 Wifi and Bluetooth card power switch disabled (Ubuntu) +WBS001.201 Wifi and Bluetooth card power switch disabled (Ubuntu) [Documentation] Checks whether Wifi + Bluetooth is detected by Linux ... after setting Enable Wi-Fi + BT radios option to false + ... Previous IDs: WBS001.001 Skip If not ${DASHARO_SECURITY_MENU_SUPPORT} - Skip If not ${WIFI_BLUETOOTH_CARD_SWITCH_SUPPORT} WBS001.001 not supported + Skip If not ${WIFI_BLUETOOTH_CARD_SWITCH_SUPPORT} WBS001.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} WBS001.201 not supported + Wifi And Bluetooth Card Power Switch Disabled ${ENV_ID_UBUNTU} + +WBS002.201 Wifi and Bluetooth card power switch enabled (Ubuntu) + [Documentation] Checks whether Wifi + Bluetooth is detected by Linux + ... after setting Enable Wi-Fi + BT radios option to true + ... Previous IDs: WBS002.001 + Skip If not ${DASHARO_SECURITY_MENU_SUPPORT} + Skip If not ${WIFI_BLUETOOTH_CARD_SWITCH_SUPPORT} WBS002.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} WBS002.201 not supported + Wifi And Bluetooth Card Power Switch ${ENV_ID_UBUNTU} + +WBS001.202 Wifi and Bluetooth card power switch disabled (Fedora) + [Documentation] Checks whether Wifi + Bluetooth is detected by Linux + ... after setting Enable Wi-Fi + BT radios option to false + Skip If not ${DASHARO_SECURITY_MENU_SUPPORT} + Skip If not ${WIFI_BLUETOOTH_CARD_SWITCH_SUPPORT} WBS001.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} WBS001.202 not supported + Wifi And Bluetooth Card Power Switch Disabled ${ENV_ID_FEDORA} + +WBS002.202 Wifi and Bluetooth card power switch enabled (Fedora) + [Documentation] Checks whether Wifi + Bluetooth is detected by Linux + ... after setting Enable Wi-Fi + BT radios option to true + Skip If not ${DASHARO_SECURITY_MENU_SUPPORT} + Skip If not ${WIFI_BLUETOOTH_CARD_SWITCH_SUPPORT} WBS002.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} WBS002.202 not supported + Wifi And Bluetooth Card Power Switch ${ENV_ID_FEDORA} + + +*** Keywords *** +Wifi And Bluetooth Card Power Switch Disabled + [Documentation] Checks whether Wifi + Bluetooth is detected by Linux + ... after setting Enable Wi-Fi + BT radios option to false + [Tags] robot:private + [Arguments] ${os_id} + Power On + Boot System Or From Connected Disk ${os_id} Set UEFI Option EnableWifiBt ${FALSE} + Power On + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User - ${wifi}= Check The Presence Of WiFi Card Should Not Be True ${wifi} ${bt}= Check The Presence Of Bluetooth Card Should Not Be True ${bt} -WBS002.001 Wifi and Bluetooth card power switch enabled (Ubuntu) +Wifi And Bluetooth Card Power Switch [Documentation] Checks whether Wifi + Bluetooth is detected by Linux ... after setting Enable Wi-Fi + BT radios option to true - Skip If not ${DASHARO_SECURITY_MENU_SUPPORT} - Skip If not ${WIFI_BLUETOOTH_CARD_SWITCH_SUPPORT} WBS002.001 not supported + [Tags] robot:private + [Arguments] ${os_id} + Power On + Boot System Or From Connected Disk ${os_id} Set UEFI Option EnableWifiBt ${TRUE} + Power On + Boot System Or From Connected Disk ${os_id} Login To Linux Switch To Root User - ${wifi}= Check The Presence Of WiFi Card Should Be True ${wifi} ${bt}= Check The Presence Of Bluetooth Card From 45b0e268a82dad9bdd59bfe885a20d2f07e96fc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Fri, 4 Apr 2025 17:57:26 +0200 Subject: [PATCH 366/416] camera-switch: Add Fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-security/camera-switch.robot | 36 +++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/dasharo-security/camera-switch.robot b/dasharo-security/camera-switch.robot index bfadac73b6..1609e39e59 100644 --- a/dasharo-security/camera-switch.robot +++ b/dasharo-security/camera-switch.robot @@ -27,23 +27,53 @@ Suite Teardown Run Keyword *** Test Cases *** -CHS001.001 Check camera enablement +CHS001.201 Check camera enablement [Documentation] This test makes sure that camera enable option ... is set, hence the camera works properly + ... Previous IDs: CHS001.001 + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CHS001.201 not supported Set UEFI Option EnableCamera ${TRUE} + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User - ${webcam}= Check The Presence Of Webcam Should Be True ${webcam} -CHS002.001 Check camera disablement +CHS002.201 Check camera disablement [Documentation] This test makes sure that camera enable option ... is not set, hence the camera is not detected by operating system + ... Previous IDs: CHS002.001 + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CHS002.201 not supported Set UEFI Option EnableCamera ${FALSE} + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + ${webcam}= Check The Presence Of Webcam + Should Not Be True ${webcam} + +CHS001.202 Check camera enablement + [Documentation] This test makes sure that camera enable option + ... is set, hence the camera works properly + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CHS001.202 not supported + Set UEFI Option EnableCamera ${TRUE} + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} Login To Linux Switch To Root User + ${webcam}= Check The Presence Of Webcam + Should Be True ${webcam} +CHS002.202 Check camera disablement + [Documentation] This test makes sure that camera enable option + ... is not set, hence the camera is not detected by operating system + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} CHS002.202 not supported + Set UEFI Option EnableCamera ${FALSE} + Power On + Boot System Or From Connected Disk ${ENV_ID_FEDORA} + Login To Linux + Switch To Root User ${webcam}= Check The Presence Of Webcam Should Not Be True ${webcam} From bd486b28be0757841cb136e509e67b6cab68d13e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 14:03:32 +0200 Subject: [PATCH 367/416] ECR016: Check the CAMERA_SWITCH_SUPPORT config variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit it was unused before... Signed-off-by: Filip Gołaś From 966e129ac398600fae1adac7fa988ec6acb35a45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 18:21:00 +0200 Subject: [PATCH 368/416] cpu-temperature: Add Fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/cpu-temperature.robot | 96 +---------------------- 1 file changed, 4 insertions(+), 92 deletions(-) diff --git a/dasharo-performance/cpu-temperature.robot b/dasharo-performance/cpu-temperature.robot index 98324dac12..7c86af6e75 100644 --- a/dasharo-performance/cpu-temperature.robot +++ b/dasharo-performance/cpu-temperature.robot @@ -37,100 +37,8 @@ CPT001.201 CPU temperature without load (Ubuntu) Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT001.201 not supported Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} CPT001.201 not supported Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop -<<<<<<< HEAD CPU Temperature Without Load (Ubuntu) -CPT001.002 CPU temperature without load (Ubuntu) (battery) - [Documentation] This test aims to verify whether the temperature of CPU - ... cores after system booting is not higher than the maximum - ... allowed temperature. - Skip If not ${CPU_TEMPERATURE_MEASURE} CPT001.002 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT001.002 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If not ${BATTERY_PRESENT} battery not present - Skip If ${AC_CONNECTED} AC connected - Skip If ${USB-PD_connected} USB-PD connected - Skip If Battery Level Below 30 Percent - CPU Temperature Without Load (Ubuntu) - -CPT001.003 CPU temperature without load (Ubuntu) (AC) - [Documentation] This test aims to verify whether the temperature of CPU - ... cores after system booting is not higher than the maximum - ... allowed temperature. - Skip If not ${CPU_TEMPERATURE_MEASURE} CPT001.003 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT001.003 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If not ${AC_CONNECTED} AC not connected - Skip If ${USB-PD_connected} USB-PD connected - CPU Temperature Without Load (Ubuntu) - -CPT001.004 CPU temperature without load (Ubuntu) (USB-PD) - [Documentation] This test aims to verify whether the temperature of CPU - ... cores after system booting is not higher than the maximum - ... allowed temperature. - Skip If not ${CPU_TEMPERATURE_MEASURE} CPT001.004 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT001.004 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If ${AC_CONNECTED} AC connected - Skip If not ${USB-PD_connected} USB-PD not connected - CPU Temperature Without Load (Ubuntu) - -CPT002.001 CPU temperature after stress test (Ubuntu) - [Documentation] This test aims to verify whether the temperature of the - ... CPU cores is not higher than the maximum allowed - ... temperature during stress test. - Skip If not ${CPU_TEMPERATURE_MEASURE} CPT002.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT002.001 not supported - Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop - CPU Temperature After Stress Test (Ubuntu) - -CPT002.002 CPU temperature after stress test (Ubuntu) (battery) - [Documentation] This test aims to verify whether the temperature of the - ... CPU cores is not higher than the maximum allowed - ... temperature during stress test. - Skip If not ${CPU_TEMPERATURE_MEASURE} CPT002.002 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT002.002 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If not ${BATTERY_PRESENT} battery not present - Skip If ${AC_CONNECTED} AC connected - Skip If ${USB-PD_connected} USB-PD connected - Skip If Battery Level Below 30 Percent - CPU Temperature After Stress Test (Ubuntu) - -CPT002.003 CPU temperature after stress test (Ubuntu) (AC) - [Documentation] This test aims to verify whether the temperature of the - ... CPU cores is not higher than the maximum allowed - ... temperature during stress test. - Skip If not ${CPU_TEMPERATURE_MEASURE} CPT002.003 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT002.003 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If not ${AC_CONNECTED} AC not connected - Skip If ${USB-PD_connected} USB-PD connected - CPU Temperature After Stress Test (Ubuntu) - -CPT002.004 CPU temperature after stress test (Ubuntu) (USB-PD) - [Documentation] This test aims to verify whether the temperature of the - ... CPU cores is not higher than the maximum allowed - ... temperature during stress test. - Skip If not ${CPU_TEMPERATURE_MEASURE} CPT002.004 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPT002.004 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If ${AC_CONNECTED} AC connected - Skip If not ${USB-PD_connected} USB-PD not connected - CPU Temperature After Stress Test (Ubuntu) - - -*** Keywords *** -CPU Temperature Without Load (Ubuntu) -======= ->>>>>>> 5dcc9bcc3281 (cpu-temperature: Add Fedora test cases) - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - CPU Temperature Without Load - Exit From Root User - CPT002.201 CPU temperature without load (Ubuntu) (battery) [Documentation] This test aims to verify whether the temperature of CPU ... cores after system booting is not higher than the maximum @@ -147,6 +55,7 @@ CPT002.201 CPU temperature without load (Ubuntu) (battery) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Skip If Battery Level Below 30 Percent CPU Temperature Without Load Exit From Root User @@ -218,6 +127,7 @@ CPT006.002 CPU temperature after stress test (Ubuntu) (battery) Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux Switch To Root User + Skip If Battery Level Below 30 Percent CPU Temperature After Stress Test Exit From Root User @@ -284,6 +194,7 @@ CPT002.202 CPU temperature without load (Fedora) (battery) Boot System Or From Connected Disk ${ENV_ID_FEDORA} Login To Linux Switch To Root User + Skip If Battery Level Below 30 Percent CPU Temperature Without Load Exit From Root User @@ -347,6 +258,7 @@ CPT006.202 CPU temperature after stress test (Fedora) (battery) Boot System Or From Connected Disk ${ENV_ID_FEDORA} Login To Linux Switch To Root User + Skip If Battery Level Below 30 Percent CPU Temperature After Stress Test Exit From Root User From c169b435d121310566a18612295f82eadde3b993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 3 Apr 2025 19:18:06 +0200 Subject: [PATCH 369/416] cpu-frequency: Add Fedora test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-performance/cpu-frequency.robot | 31 +++++-------------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/dasharo-performance/cpu-frequency.robot b/dasharo-performance/cpu-frequency.robot index 69ee44787d..b16e5ae196 100644 --- a/dasharo-performance/cpu-frequency.robot +++ b/dasharo-performance/cpu-frequency.robot @@ -48,6 +48,7 @@ CPF002.201 CPU not stuck on initial frequency (Ubuntu) (battery) Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected + Skip If Battery Level Below 30 Percent CPU Not Stuck On Initial Frequency (Linux) ${ENV_ID_UBUNTU} CPF003.201 CPU not stuck on initial frequency (Ubuntu) (AC) @@ -95,6 +96,7 @@ CPF006.201 CPU runs on expected frequency (Ubuntu) (battery) Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected + Skip If Battery Level Below 30 Percent CPU Runs On Expected Frequency (Linux) ${ENV_ID_UBUNTU} CPF007.201 CPU runs on expected frequency (Ubuntu) (AC) @@ -142,6 +144,7 @@ CPF010.201 CPU with load runs on expected frequency (Ubuntu) (battery) Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected + Skip If Battery Level Below 30 Percent CPU With Load Runs On Expected Frequency (Linux) ${ENV_ID_UBUNTU} CPF011.201 CPU with load runs on expected frequency (Ubuntu) (AC) @@ -185,6 +188,7 @@ CPF002.202 CPU not stuck on initial frequency (Fedora) (battery) Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected + Skip If Battery Level Below 30 Percent CPU Not Stuck On Initial Frequency (Linux) ${ENV_ID_FEDORA} CPF003.202 CPU not stuck on initial frequency (Fedora) (AC) @@ -224,6 +228,7 @@ CPF006.202 CPU runs on expected frequency (Fedora) (battery) Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected + Skip If Battery Level Below 30 Percent CPU Runs On Expected Frequency (Linux) ${ENV_ID_FEDORA} CPF007.202 CPU runs on expected frequency (Fedora) (AC) @@ -263,6 +268,7 @@ CPF010.202 CPU with load runs on expected frequency (Fedora) (battery) Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected + Skip If Battery Level Below 30 Percent CPU With Load Runs On Expected Frequency (Linux) ${ENV_ID_FEDORA} CPF011.202 CPU with load runs on expected frequency (Fedora) (AC) @@ -294,29 +300,6 @@ CPF001.003 CPU not stuck on initial frequency (Heads+Debian) Skip If ${LAPTOP_PLATFORM} The Platform is a Laptop CPU Not Stuck On Initial Frequency (Heads+Debian) -CPF001.004 CPU not stuck on initial frequency (Ubuntu) (battery) - [Documentation] This test aims to verify whether the mounted CPU does not - ... stuck on the initial frequency after booting into the OS. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF001.004 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPF001.004 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If not ${BATTERY_PRESENT} battery not present - Skip If ${AC_CONNECTED} AC connected - Skip If ${USB-PD_connected} USB-PD connected - Skip If Battery Level Below 30 Percent - CPU Not Stuck On Initial Frequency (Ubuntu) - -CPF001.005 CPU not stuck on initial frequency (Windows) (battery) - [Documentation] This test aims to verify whether the mounted CPU does not - ... stuck on the initial frequency after booting into the OS. - Skip If not ${CPU_FREQUENCY_MEASURE} CPF001.005 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} CPF001.005 not supported - Skip If not ${LAPTOP_PLATFORM} The Platform is not a Laptop - Skip If not ${BATTERY_PRESENT} battery not present - Skip If ${AC_CONNECTED} AC connected - Skip If ${USB-PD_connected} USB-PD connected - CPU Not Stuck On Initial Frequency (Windows) - CPF001.006 CPU not stuck on initial frequency (Heads+Debian) (battery) [Documentation] This test aims to verify whether the mounted CPU does not ... stuck on the initial frequency after booting into the OS. @@ -369,7 +352,6 @@ CPF002.301 CPU not stuck on initial frequency (Windows) (battery) Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected - Skip If Battery Level Below 30 Percent CPU Not Stuck On Initial Frequency (Windows) CPF003.301 CPU not stuck on initial frequency (Windows) (AC) @@ -456,7 +438,6 @@ CPF010.301 CPU with load runs on expected frequency (Windows) (battery) Skip If not ${BATTERY_PRESENT} battery not present Skip If ${AC_CONNECTED} AC connected Skip If ${USB-PD_connected} USB-PD connected - Skip If Battery Level Below 30 Percent CPU With Load Runs On Expected Frequency (Windows) CPF011.301 CPU with load runs on expected frequency (Windows) (AC) From f1cb6d3d74ad3da8cede324c97b1beb7017acab6 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Wed, 9 Apr 2025 17:58:11 +0200 Subject: [PATCH 370/416] osfv: Add platform and performance libraries Signed-off-by: Sebastian Czapla --- dasharo-compatibility/cpu-throttling.robot | 1 + dasharo-performance/cpu-frequency.robot | 1 + dasharo-performance/cpu-performance.robot | 21 ++-- dasharo-performance/custom-fan-curve.robot | 1 + dasharo-performance/disk-io.robot | 2 +- keywords.robot | 1 - lib/performance.robot | 99 ---------------- lib/performance/common.robot | 90 +++++++++++---- .../cpu.robot} | 70 +----------- lib/performance/gpu.robot | 56 +++++++++ lib/platform/power.robot | 107 ++++++++++++++++++ 11 files changed, 246 insertions(+), 203 deletions(-) delete mode 100644 lib/performance.robot rename lib/{CPU-performance-lib.robot => performance/cpu.robot} (58%) create mode 100644 lib/performance/gpu.robot create mode 100644 lib/platform/power.robot diff --git a/dasharo-compatibility/cpu-throttling.robot b/dasharo-compatibility/cpu-throttling.robot index 3e6ca3caba..8f88902536 100644 --- a/dasharo-compatibility/cpu-throttling.robot +++ b/dasharo-compatibility/cpu-throttling.robot @@ -8,6 +8,7 @@ Library SSHLibrary timeout=300 seconds Library RequestsLibrary # TODO: maybe have a single file to include if we need to include the same # stuff in all test cases +Resource ../lib/performance/cpu.robot Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot diff --git a/dasharo-performance/cpu-frequency.robot b/dasharo-performance/cpu-frequency.robot index b16e5ae196..870f0c3f7d 100644 --- a/dasharo-performance/cpu-frequency.robot +++ b/dasharo-performance/cpu-frequency.robot @@ -12,6 +12,7 @@ Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot Resource ../keys-and-keywords/heads-keywords.robot +Resource ../lib/performance/cpu.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/dasharo-performance/cpu-performance.robot b/dasharo-performance/cpu-performance.robot index 685b947cba..bbeda5c4a1 100644 --- a/dasharo-performance/cpu-performance.robot +++ b/dasharo-performance/cpu-performance.robot @@ -1,18 +1,11 @@ *** Settings *** -Library Collections -Library OperatingSystem -Library Process -Library String Library Telnet timeout=20 seconds connection_timeout=120 seconds Library SSHLibrary timeout=90 seconds -Library RequestsLibrary -Library ../venv/lib/python3.13/site-packages/robot/libraries/DateTime.py -Resource ../lib/performance.robot +Resource ../lib/performance/common.robot +Resource ../lib/performance/cpu.robot -Suite Setup Run Keyword -... CPU Performance Suite Setup -Suite Teardown Run Keyword -... Log Out And Close Connection +Suite Setup CPU Performance Suite Setup +Suite Teardown Log Out And Close Connection *** Variables *** @@ -129,7 +122,7 @@ Run C-Ray Single-thread Render Should Not Contain ${result} The batch mode must first be configured. ${test_passed}= Validate Multiple Results - ... ${PERF_RESULTS_PATH_UBUNTU} + ... ${PTS_RESULTS_DIR_LINUX_ROOT} ... ${test_name_to_path} ... @{SGINLE_THREAD_RES_TESTS} RETURN ${test_passed} @@ -146,7 +139,7 @@ Run Coremark Single-thread Should Not Contain ${result} The batch mode must first be configured. ${test_result_values}= Read The Results - ... ${PERF_RESULTS_PATH_UBUNTU} + ... ${PTS_RESULTS_DIR_LINUX_ROOT} ... ${test_name_to_path} ... CoreMark Size 666 - Iterations Per Second Log To Console \nResults of the CoreMark Size 666 - Iterations Per Second:\n @@ -166,7 +159,7 @@ Run Coremark Single-thread Should Not Contain ${result} The batch mode must first be configured. ${test_passed}= Validate Multiple Results - ... ${PERF_RESULTS_PATH_UBUNTU} + ... ${PTS_RESULTS_DIR_LINUX_ROOT} ... ${test_name_to_path} ... @{MULTI_THREAD_TESTS} RETURN ${test_passed} diff --git a/dasharo-performance/custom-fan-curve.robot b/dasharo-performance/custom-fan-curve.robot index 547ea4b781..51aad69b8a 100644 --- a/dasharo-performance/custom-fan-curve.robot +++ b/dasharo-performance/custom-fan-curve.robot @@ -15,6 +15,7 @@ Resource ../variables.robot Resource ../keywords.robot Resource ../keys.robot Resource ../lib/sensors/sensors.robot +Resource ../lib/performance/cpu.robot # TODO: # - document which setup/teardown keywords to use and what are they doing diff --git a/dasharo-performance/disk-io.robot b/dasharo-performance/disk-io.robot index ff0321df82..64e377db36 100644 --- a/dasharo-performance/disk-io.robot +++ b/dasharo-performance/disk-io.robot @@ -1,8 +1,8 @@ *** Settings *** Library Telnet timeout=20 seconds connection_timeout=120 seconds Library SSHLibrary timeout=90 seconds -Resource ../lib/performance.robot Resource ../lib/performance/common.robot +Resource ../lib/platform/power.robot Suite Setup Disk IO Suite Setup Suite Teardown Log Out And Close Connection diff --git a/keywords.robot b/keywords.robot index 782c984a43..beac9f6f6b 100644 --- a/keywords.robot +++ b/keywords.robot @@ -12,7 +12,6 @@ Resource lib/docks.robot Resource lib/flash.robot Resource lib/self-tests.robot Resource lib/sleep-lib.robot -Resource lib/CPU-performance-lib.robot Resource lib/framework.robot Resource lib/me.robot Resource lib/network.robot diff --git a/lib/performance.robot b/lib/performance.robot deleted file mode 100644 index bdcd8a1243..0000000000 --- a/lib/performance.robot +++ /dev/null @@ -1,99 +0,0 @@ -*** Settings *** -Documentation A library file for common tasks related to performance testing - -Library Collections -Library OperatingSystem -Library Process -Library String -Library RequestsLibrary -Library SSHLibrary -Resource ../variables.robot -Resource ../keywords.robot -Resource ../keys.robot - - -*** Variables *** -${PTS_LATEST_URL}= -... https://github.com/phoronix-test-suite/phoronix-test-suite/archive/refs/tags/v10.8.4.zip -${PTS_DOWNLOAD_PATH}= C:\pts\pts.zip -${PTS_EXTRACT_PATH}= C:\pts-extracted\ -${PERF_RESULTS_PATH_UBUNTU}= /var/lib/phoronix-test-suite/test-results -${PERF_RESULTS_PATH_WINDOWS}= C:\testing\reports\ - - -*** Keywords *** -Detect Or Install Phoronix Test Suite On Ubuntu - [Documentation] Detects and installs PTS - Detect Or Install Package php-cli - Detect Or Install Package php-xml - # xvfb = x11 virtual frame buffer for GPU testing over SSH - IF ${GPU_PERFORMANCE_TESTS_SUPPORT} Detect Or Install Package xvfb - - ${out}= Execute Command In Terminal test -f /usr/bin/phoronix-test-suite && echo "PTS Installed" - IF '${out}' != 'PTS Installed' - Switch To Root User - Execute Command In Terminal wget ${PTS_LATEST_URL} 60 - Execute Command In Terminal unzip -q -o v10.8.4.zip 120 - ${out}= Execute Command In Terminal - ... cd phoronix-test-suite-10.8.4 && ./install-sh && cd .. 120 - Should Contain ${out} Phoronix Test Suite Installation Completed - Execute Command In Terminal - ... rm v10.8.4.zip && rm -r phoronix-test-suite-10.8.4 - Exit From Root User - END - -Setup Phoronix Batch Mode - [Documentation] Configure batch mode required for more automated tests - Write Into Terminal phoronix-test-suite batch-setup - Read From Terminal Until Save test results when in batch mode (Y/n): - Write Into Terminal y - Read From Terminal Until Open the web browser automatically when in batch mode (y/N): - Write Into Terminal n - Read From Terminal Until Auto upload the results to OpenBenchmarking.org (Y/n): - Write Into Terminal n - Read From Terminal Until Prompt for test identifier (Y/n): - Write Into Terminal n - Read From Terminal Until Prompt for test description (Y/n): - Write Into Terminal n - Read From Terminal Until Prompt for saved results file-name (Y/n): - Write Into Terminal n - Read From Terminal Until Run all test options (Y/n): - Write Into Terminal n - -# Detect Or Install Phoronix Test Suite On Windows -# [Documentation] Detects and installs PTS -# ${out}= Execute Command In Terminal Test-Path -Path C:\phoronix-test-suite -# IF '${out}' != 'True' -# Execute Command In Terminal -# ... Invoke-WebRequest -Uri ${PTS_LATEST_URL} -OutFile ${PTS_DOWNLOAD_PATH} 60 -# Execute Command In Terminal -# ... Expand-Archive -Path ${PTS_DOWNLOAD_PATH} -DestinationPath ${PTS_EXTRACT_PATH} -Force 60 -# Execute Command In Terminal -# ... Start-Process -FilePath ${PTS_EXTRACT_PATH}\install.bat -NoNewWindow -Wait 300 -# Execute Command In Terminal -# ... Remove-Item -Path ${PTS_DOWNLOAD_PATH} -Force -# Execute Command In Terminal -# ... Remove-Item -Path ${PTS_EXTRACT_PATH} -Force -# END - -# Run GPU Performance Benchmark On Windows -# [Documentation] Wrapper for PTS. Run suite, gather and process -# ... results. It assumes DUT is booted into Windows -# ${cmd}= Set Variable -# ... C:\phoronix-test\suite\phoronix-test-suite batch-benchmark -# ${cmd}= Catenate ${cmd} -# ... unigine-super AUTOMATIC=1 RESULT_NAME="gpu_test_unigine" UPLOAD_RESULTS=0 - -# Execute Command In Terminal ${cmd} 3600 - -Run GPU Performance Benchmark On Ubuntu - [Documentation] Wrapper for PTS. Run suite, gather and process - ... results. It assumes DUT is logged in into regular user - ... account on Ubuntu - ${cmd}= Set Variable phoronix-test-suite batch-run - ${cmd}= Catenate ${cmd} - ... unigine-super RESULT_NAME="gpu_test_unigine" UPLOAD_RESULTS=0 - - ${result}= Execute Command In Terminal ${cmd} timeout=1800 - Should Not Contain ${result} The batch mode must first be configured. - Should Not Contain ${result} The following PHP extensions are REQUIRED diff --git a/lib/performance/common.robot b/lib/performance/common.robot index bd069e3e43..443e0bf12e 100644 --- a/lib/performance/common.robot +++ b/lib/performance/common.robot @@ -1,39 +1,87 @@ *** Settings *** -Documentation lib/performance/common +Documentation Common header for OSFV Performance Library Library Collections +Library DateTime Library OperatingSystem Library Process Library String Library RequestsLibrary Library SSHLibrary +Resource ../platform/power.robot Resource ../../variables.robot Resource ../../keywords.robot Resource ../../keys.robot -# IMPORTANT: This must be commented out for production -# This is here only to make LSP happy during development. -# Resource ../../platform-configs/include/default.robot *** Variables *** +# Phoronix Test Suite download variables ${PTS_LATEST_URL}= -... https://github.com/phoronix-test-suite/phoronix-test-suite/archive/refs/tags/v10.8.4.zip -${PTS_DOWNLOAD_PATH}= C:\pts\pts.zip -${PTS_EXTRACT_PATH}= C:\pts-extracted\ -${PERF_REPORT_DIR_LINUX}= ~/testing/reports/ -${PERF_REPORT_DIR_WINDOWS}= C:\testing\reports\ +... https://github.com/phoronix-test-suite/phoronix-test-suite/archive/refs/tags/v10.8.4.zip +${PTS_DOWNLOAD_PATH}= C:\pts\pts.zip +${PTS_EXTRACT_PATH}= C:\pts-extracted\ +# Phoronix Test Suite test results +${PTS_RESULTS_DIR_WINDOWS}= C:\pts\test-results\ +${PTS_RESULTS_DIR_LINUX}= ~/.phoronix-test-suite/test-results +${PTS_RESULTS_DIR_LINUX_ROOT}= /var/lib/phoronix-test-suite/test-results *** Keywords *** -Power Cycle Into Ubuntu - Power On - Boot System Or From Connected Disk 201 - Login To Linux - -Power Cycle Into Windows - Power On - Login To Windows - -Power Cycle Into Firmware Setup - Power On - Enter Setup Menu Tianocore +Detect Or Install Phoronix Test Suite On Ubuntu + [Documentation] Detects and installs PTS if it is missing on Ubuntu. + # Get and store current user, so we can seamlessly get root perms if missing + ${curr_user}= Execute Command In Terminal whoami + Log To Console PTS install issued by ${curr_user} + IF '${curr_user}' != 'root' Switch To Root User + Detect Or Install Package php-cli + Detect Or Install Package php-xml + + ${out}= Execute Command In Terminal test -f /usr/bin/phoronix-test-suite && echo "PTS Installed" + IF '${out}' != 'PTS Installed' + Execute Command In Terminal wget ${PTS_LATEST_URL} 60 + Execute Command In Terminal unzip -q -o v10.8.4.zip 120 + ${out}= Execute Command In Terminal + ... cd phoronix-test-suite-10.8.4 && ./install-sh && cd .. 120 + Should Contain ${out} Phoronix Test Suite Installation Completed + Execute Command In Terminal + ... rm v10.8.4.zip && rm -r phoronix-test-suite-10.8.4 + END + IF '${curr_user}' != 'root' Exit From Root User + +Detect Or Install Phoronix Test Suite On Windows + [Documentation] Detects and installs PTS for Windows 11 via powershell. + ${out}= Execute Command In Terminal Test-Path -Path C:\phoronix-test-suite + IF '${out}' != 'True' + Execute Command In Terminal + ... Invoke-WebRequest -Uri ${PTS_LATEST_URL} -OutFile ${PTS_DOWNLOAD_PATH} 60 + Execute Command In Terminal + ... Expand-Archive -Path ${PTS_DOWNLOAD_PATH} -DestinationPath ${PTS_EXTRACT_PATH} -Force 60 + Execute Command In Terminal + ... Start-Process -FilePath ${PTS_EXTRACT_PATH}\install.bat -NoNewWindow -Wait 300 + Execute Command In Terminal + ... Remove-Item -Path ${PTS_DOWNLOAD_PATH} -Force + Execute Command In Terminal + ... Remove-Item -Path ${PTS_EXTRACT_PATH} -Force + END + +Setup Phoronix Batch Mode + [Documentation] Configure batch mode required for more automated tests. + ${curr_user}= Execute Command whoami + Log To Console Setting Up Batch mode for ${curr_user} + Write Into Terminal phoronix-test-suite batch-setup + Read From Terminal Until Save test results when in batch mode (Y/n): + Write Into Terminal y + # Yes, this option for some reason has upper/lower case swapped... + Read From Terminal Until Open the web browser automatically when in batch mode (y/N): + Write Into Terminal n + Read From Terminal Until Auto upload the results to OpenBenchmarking.org (Y/n): + Write Into Terminal n + Read From Terminal Until Prompt for test identifier (Y/n): + Write Into Terminal n + Read From Terminal Until Prompt for test description (Y/n): + Write Into Terminal n + Read From Terminal Until Prompt for saved results file-name (Y/n): + Write Into Terminal n + Read From Terminal Until Run all test options (Y/n): + Write Into Terminal n + Read From Terminal Until Prompt diff --git a/lib/CPU-performance-lib.robot b/lib/performance/cpu.robot similarity index 58% rename from lib/CPU-performance-lib.robot rename to lib/performance/cpu.robot index 03faf1530e..8afd875af3 100644 --- a/lib/CPU-performance-lib.robot +++ b/lib/performance/cpu.robot @@ -1,5 +1,7 @@ *** Settings *** -Resource sensors/sensors.robot +Documentation CPU header for OSFV Performance Library + +Resource common.robot *** Keywords *** @@ -99,69 +101,3 @@ Stress Test Stress Test Stop Execute Command In Terminal pkill stress-ng - -Check Power Supply - ${laptop_platform}= Check The Platform Is A Laptop - Set Suite Variable ${LAPTOP_PLATFORM} ${laptop_platform} - IF ${LAPTOP_PLATFORM} - IF ${TESTS_IN_UBUNTU_SUPPORT} - ${bat0_present} ${ac_online} ${usb_pd_online}= Check Power Supply On Linux - ELSE IF ${TESTS_IN_WINDOWS_SUPPORT} - ${bat0_present} ${ac_online} ${usb_pd_online}= Check Power Supply On Windows - ELSE IF ${HEADS_PAYLOAD_SUPPORT} - Log Check Power Supply on Heads not implemented yet ERROR - ELSE - Fail Fail: Check Power Supply is not implemented enough - END - Set Suite Variable ${BATTERY_PRESENT} ${bat0_present} - Set Suite Variable ${AC_CONNECTED} ${ac_online} - Set Suite Variable ${USB-PD_CONNECTED} ${usb_pd_online} - END - -Check The Platform Is A Laptop - ${laptop_platform}= Run Keyword And Return Status Should Contain Any ${PLATFORM} novacustom tuxedo - RETURN ${laptop_platform} - -Check Power Supply On Linux - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - ${bat0_present_raw}= Execute Command In Terminal cat /sys/class/power_supply/BAT0/present - ${bat0_present}= Run Keyword And Return Status Should Be Equal ${bat0_present_raw} 1 - - ${ac_online_raw}= Execute Command In Terminal cat /sys/class/power_supply/AC/online - Should Not Contain ${ac_online_raw} No such file or directory - ${ac_online}= Run Keyword And Return Status Should Be Equal ${ac_online_raw} 1 - - # FIXME: USB-PD detection is not yet possible. - ${usb_pd_online_raw}= Execute Command In Terminal cat /sys/class/power_supply/USB-PD/online - Log 'cat /sys/class/power_supply/USB-PD/online' not implemented yet, if implemented, remove # WARN - # Should Not Contain ${usb_pd_online_raw} No such file or directory - ${usb_pd_online}= Run Keyword And Return Status Should Be Equal ${usb_pd_online_raw} 1 - - RETURN ${bat0_present} ${ac_online} ${usb_pd_online} - -Check Power Supply On Windows - Power On - Login To Windows - ${raw_output}= Execute Command In Terminal (Get-WmiObject Win32_Battery).BatteryStatus - ${bat0_present}= Run Keyword And Return Status Should Not Be Empty ${raw_output} - - # ${ac_online_raw}= Execute Command In Terminal (Get-WmiObject Win32_Battery).BatteryStatus - ${ac_online_empty}= Run Keyword And Return Status Should Be Empty ${raw_output} - ${ac_online_equal_2}= Run Keyword And Return Status Should Be Equal ${raw_output} 2 - # IF ${ac_online_raw_empty} or ${ac_online_raw_equal_2} - # Set Local Variable ${AC_ONLINE}= ${TRUE} - # END - ${ac_online}= Set Variable If - ... ${ac_online_empty} ${TRUE} - ... ${ac_online_equal_2} ${TRUE} - - # FIXME: USB-PD detection is not yet possible. - Log Check power supply USB-PD not implemented yet WARN - ${usb_pd_online}= Run Keyword And Return Status - ... Should Be Equal - ... ${raw_output} - ... insert the correct USB-PD detection method here - - RETURN ${bat0_present} ${ac_online} ${usb_pd_online} diff --git a/lib/performance/gpu.robot b/lib/performance/gpu.robot new file mode 100644 index 0000000000..0762241aea --- /dev/null +++ b/lib/performance/gpu.robot @@ -0,0 +1,56 @@ +*** Settings *** +Documentation GPU header for OSFV Performance Library + +Library Dialogs +Resource common.robot + + +*** Keywords *** +Run Unigine Superposition On Ubuntu + [Documentation] Wrapper for PTS. Run suite, gather and process + ... results. It assumes DUT is logged in into regular user + ... account on Ubuntu + [Arguments] ${test_run_name}=gpu_test${CURRENT_DATE} + + # Required for graphical benchmarking over ssh + Execute Manual Step Please ensure DUT has active desktop session + ... by logging into Gnome Desktop. + ${cmd}= Set Variable DISPLAY=:0 + + IF ${NVIDIA_GRAPHICS_CARD_SUPPORT} + ${cmd}= Catenate ${cmd} + ... __GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 + ${cmd}= Catenate ${cmd} + ... __VK_LAYER_NV_optimus=NVIDIA_only VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json + END + + ${cmd}= Catenate ${cmd} + ... phoronix-test-suite batch-run + ${cmd}= Catenate ${cmd} + ... unigine-super RESULT_NAME=${test_run_name} + + Write Into Terminal ${cmd} + # Test options + Read From Terminal Until Resolution: + # 1: 800 x 600 2: 1024 x 768 3: 1280 x 1024 + # 4: 1600 x 1200 5: 1920 x 1080 6: 1920 x 1200 + Write Into Terminal 5 # Full HD 1920 x 1080 + Read From Terminal Until Mode: + # 1 : Fullscreen 2: Windowed + Write Into Terminal 2 # Test in-window performance + Read From Terminal Until Quality: + # 1: Low 2: Medium 3: High 4: Ultra + Write Into Terminal 2 # Medium preset + Set DUT Response Timeout 1800 + ${out}= Read From Terminal Until Prompt + Should Contain ${out} Average: + ... Benchmark did not produce results + ${lines}= Split String ${out} \n + FOR ${line} IN @{lines} + IF '''Average''' in '''${line}''' + ${parts}= Split String ${line} + ${value}= Get From List ${parts} 1 + RETURN ${value} + END + END + Fail Could not acquire results diff --git a/lib/platform/power.robot b/lib/platform/power.robot new file mode 100644 index 0000000000..27e48ecb63 --- /dev/null +++ b/lib/platform/power.robot @@ -0,0 +1,107 @@ +*** Settings *** +Documentation Common header for OSFV Power management keywords + +Library Collections +Library OperatingSystem +Library Process +Library String +Library RequestsLibrary +Library SSHLibrary +Resource ../../variables.robot +Resource ../../keywords.robot +Resource ../../keys.robot + + +*** Keywords *** +Check Power Supply + ${laptop_platform}= Check The Platform Is A Laptop + Set Suite Variable ${LAPTOP_PLATFORM} ${laptop_platform} + IF ${LAPTOP_PLATFORM} + IF ${TESTS_IN_UBUNTU_SUPPORT} + ${bat0_present} ${ac_online} ${usb_pd_online}= Check Power Supply On Linux + ELSE IF ${TESTS_IN_WINDOWS_SUPPORT} + ${bat0_present} ${ac_online} ${usb_pd_online}= Check Power Supply On Windows + ELSE IF ${HEADS_PAYLOAD_SUPPORT} + Log Check Power Supply on Heads not implemented yet ERROR + ELSE + Fail Fail: Check Power Supply is not implemented enough + END + Set Suite Variable ${BATTERY_PRESENT} ${bat0_present} + Set Suite Variable ${AC_CONNECTED} ${ac_online} + Set Suite Variable ${USB-PD_CONNECTED} ${usb_pd_online} + END + +Check The Platform Is A Laptop + ${laptop_platform}= Run Keyword And Return Status Should Contain Any ${PLATFORM} novacustom tuxedo + RETURN ${laptop_platform} + +Check Power Supply On Linux + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + ${bat0_present_raw}= Execute Command In Terminal cat /sys/class/power_supply/BAT0/present + ${bat0_present}= Run Keyword And Return Status Should Be Equal ${bat0_present_raw} 1 + + ${ac_online_raw}= Execute Command In Terminal cat /sys/class/power_supply/AC/online + Should Not Contain ${ac_online_raw} No such file or directory + ${ac_online}= Run Keyword And Return Status Should Be Equal ${ac_online_raw} 1 + + # FIXME: USB-PD detection is not yet possible. + ${usb_pd_online_raw}= Execute Command In Terminal cat /sys/class/power_supply/USB-PD/online + Log 'cat /sys/class/power_supply/USB-PD/online' not implemented yet, if implemented, remove # WARN + # Should Not Contain ${usb_pd_online_raw} No such file or directory + ${usb_pd_online}= Run Keyword And Return Status Should Be Equal ${usb_pd_online_raw} 1 + + RETURN ${bat0_present} ${ac_online} ${usb_pd_online} + +Check Power Supply On Windows + Power On + Login To Windows + ${raw_output}= Execute Command In Terminal (Get-WmiObject Win32_Battery).BatteryStatus + ${bat0_present}= Run Keyword And Return Status Should Not Be Empty ${raw_output} + + # ${ac_online_raw}= Execute Command In Terminal (Get-WmiObject Win32_Battery).BatteryStatus + ${ac_online_empty}= Run Keyword And Return Status Should Be Empty ${raw_output} + ${ac_online_equal_2}= Run Keyword And Return Status Should Be Equal ${raw_output} 2 + # IF ${ac_online_raw_empty} or ${ac_online_raw_equal_2} + # Set Local Variable ${AC_ONLINE}= ${TRUE} + # END + ${ac_online}= Set Variable If + ... ${ac_online_empty} ${TRUE} + ... ${ac_online_equal_2} ${TRUE} + + # FIXME: USB-PD detection is not yet possible. + Log Check power supply USB-PD not implemented yet WARN + ${usb_pd_online}= Run Keyword And Return Status + ... Should Be Equal + ... ${raw_output} + ... insert the correct USB-PD detection method here + + RETURN ${bat0_present} ${ac_online} ${usb_pd_online} + +Check Battery Level On Linux + [Documentation] Returns a battery level as percentage. + ${power_level}= Execute Command In Terminal + ... cat /sys/class/power_supply/BAT0/capacity + Should Not Contain ${power_level} No such file or directory + RETURN ${power_level} + +Check Battery Level On Windows + [Documentation] Returns a battery level as percentage. + ${power_level}= Execute Command In Terminal + ... (Get-WmiObject -Class Win32_Battery).EstimatedChargeRemaining + Should Not Be Empty ${power_level} + RETURN ${power_level} + +Power Cycle Into Ubuntu + Power On + Boot System Or From Connected Disk 201 + Login To Linux + +Power Cycle Into Windows + Power On + Login To Windows + +Power Cycle Into Firmware Setup + Power On + Enter Setup Menu Tianocore From 33139d13ecf1e5f1444bd1f4f3de385a7dc98b89 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Thu, 10 Apr 2025 16:13:48 +0200 Subject: [PATCH 371/416] dasharo-performance/gpu-performance.robot: Add GPU test suite Signed-off-by: Sebastian Czapla --- dasharo-performance/gpu-performance.robot | 73 ++++++++++++++++++ platform-configs/novacustom-v540tnd.robot | 11 ++- platform-configs/novacustom-v540tu.robot | 88 +++++++++++---------- platform-configs/novacustom-v560tnd.robot | 9 ++- platform-configs/novacustom-v560tne.robot | 9 ++- platform-configs/novacustom-v560tu.robot | 93 ++++++++++++----------- 6 files changed, 189 insertions(+), 94 deletions(-) create mode 100644 dasharo-performance/gpu-performance.robot diff --git a/dasharo-performance/gpu-performance.robot b/dasharo-performance/gpu-performance.robot new file mode 100644 index 0000000000..b8473efaad --- /dev/null +++ b/dasharo-performance/gpu-performance.robot @@ -0,0 +1,73 @@ +*** Settings *** +Library Telnet timeout=20 seconds connection_timeout=120 seconds +Library SSHLibrary timeout=90 seconds +Resource ../lib/performance/gpu.robot + +Suite Setup GPU Performance Suite Setup +Suite Teardown Log Out And Close Connection + + +*** Test Cases *** +GPP001.201 GPU Performance Measure (AC) + [Documentation] Test GPU performance for Ubuntu on AC + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If not ${AC_CONNECTED} Cannot run this test on battery + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + # Pass condition, that is at least 90% of original benchmark + ${pass_cond}= Evaluate ${UNIGINE_SUPERPOSITION_RESULT_AC} * 0.9 + ${result}= Run Unigine Superposition On Ubuntu + Log To Console \nAverage FPS: ${result} + IF ${result} < ${pass_cond} + Fail GPU AC performance lower than expected! + END + +GPP002.201 GPU Performance Measure (Battery) + [Documentation] Test GPU performance for Ubuntu on Battery + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If ${AC_CONNECTED} You must run this test on battery + Power On + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + ${power_level}= Check Battery Level On Linux + # This test runtime is ~11 minutes, probably should be good on more than 25% + Skip If ${power_level} < 25 Insufficient Battery Charge to perform this test + # Pass condition, that is at least 90% of original benchmark + ${pass_cond}= Evaluate ${UNIGINE_SUPERPOSITION_RESULT_BAT} * 0.9 + ${result}= Run Unigine Superposition On Ubuntu + Log To Console \nAverage FPS: ${result} + IF ${result} < ${pass_cond} + Fail GPU battery performance lower than expected! + END + + +*** Keywords *** +GPU Performance Suite Setup + [Documentation] Load config and download tooling for supported OSes + [Tags] robot:private + Prepare Test Suite + Skip If not ${GPU_PERFORMANCE_TESTS_SUPPORT} + ${get_date}= Get Current Date result_format=%d%m%Y%H%M%S + Set Global Variable ${CURRENT_DATE} ${get_date} + + IF ${TESTS_IN_UBUNTU_SUPPORT} + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Execute Manual Step Please ensure DUT has active desktop session + ... by logging into X11 Gnome Desktop. + Detect Or Install Phoronix Test Suite On Ubuntu + ${out}= Execute Command In Terminal + ... phoronix-test-suite list-installed-tests | grep "Unigine Superposition" + + IF '${out}' == '${EMPTY}' + Log To Console Installing Unigine Superposition + # 10 Minute timeout to download ~1.5GB + Execute Linux Command DISPLAY=:0 phoronix-test-suite install-test unigine-super 600 + Read From Terminal Until Prompt + END + + Setup Phoronix Batch Mode + END + + Check Power Supply diff --git a/platform-configs/novacustom-v540tnd.robot b/platform-configs/novacustom-v540tnd.robot index 820d47905c..d476259a79 100644 --- a/platform-configs/novacustom-v540tnd.robot +++ b/platform-configs/novacustom-v540tnd.robot @@ -14,8 +14,6 @@ ${EXTERNAL_HEADSET}= USB PnP Audio Device ${CPU_MAX_FREQUENCY}= 4800 ${CPU_MIN_FREQUENCY}= 200 -${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${TRUE} - ${DGPU_ONLY_SUPPORT}= ${TRUE} ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} # change windows/ubuntu support depending ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} # on which OS is first in the boot order @@ -39,8 +37,6 @@ ${VERIFIED_BOOT_SUPPORT}= ${TRUE} ${TPM_SUPPORTED_VERSION}= 2 ${TPM_EXPECTED_CHIP}= SLB9672 -${GPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} - # performance ${ZIP_MULTI_COMPRESSION}= 63476 # MIPS ${ZIP_MULTI_DECOMPRESSION}= 39336 # MIPS @@ -67,3 +63,10 @@ ${WIN_RAND_READ_QUEUED}= 886.5 # MB/s ${WIN_RAND_WRITE_QUEUED}= 461.3 # MB/s ${WIN_RAND_READ_NONQUE}= 82.8 # MB/s ${WIN_RAND_WRITE_NONQUE}= 239.6 # MB/s + +# GPU Performance +# Reference config: Medium preset, 1920x1080, Windowed +${GPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} +${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${TRUE} +${UNIGINE_SUPERPOSITION_RESULT_AC}= 94.4 # FPS +${UNIGINE_SUPERPOSITION_RESULT_BAT}= 21.9 # FPS diff --git a/platform-configs/novacustom-v540tu.robot b/platform-configs/novacustom-v540tu.robot index 27c7e553db..1fd61c8294 100644 --- a/platform-configs/novacustom-v540tu.robot +++ b/platform-configs/novacustom-v540tu.robot @@ -5,55 +5,59 @@ Resource include/novacustom-common.robot *** Variables *** # CPU -${CPU}= Intel(R) Core(TM) Ultra 7 155H - -${3_MDEB_WIFI_NETWORK}= 3mdeb_abr -${DEVICE_NVME_DISK}= Non-Volatile memory controller -${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 -${DMIDECODE_PRODUCT_NAME}= V540TU -${EXTERNAL_HEADSET}= USB PnP Audio Device -${CPU_MAX_FREQUENCY}= 4800 -${CPU_MIN_FREQUENCY}= 300 - -${OPTIONS_LIB}= options-lib_dcu -${POWER_CTRL}= none -${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${FALSE} - -${DEFAULT_BOOT_OS_ID}= ${ENV_ID_UBUNTU} -@{TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} ${ENV_ID_FEDORA} +${CPU}= Intel(R) Core(TM) Ultra 7 155H + +${3_MDEB_WIFI_NETWORK}= 3mdeb_abr +${DEVICE_NVME_DISK}= Non-Volatile memory controller +${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 +${DMIDECODE_PRODUCT_NAME}= V540TU +${EXTERNAL_HEADSET}= USB PnP Audio Device +${CPU_MAX_FREQUENCY}= 4800 +${CPU_MIN_FREQUENCY}= 300 + +${OPTIONS_LIB}= options-lib_dcu +${POWER_CTRL}= none + +${DEFAULT_BOOT_OS_ID}= ${ENV_ID_UBUNTU} +@{TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} ${ENV_ID_FEDORA} ${CLEVO_USB_C_HUB}= Thunderbolt 4 Dock ${USB_DEVICE}= Linux -# Benchmark reference data to nvidia model # performance -${ZIP_MULTI_COMPRESSION}= 63476 # MIPS -${ZIP_MULTI_DECOMPRESSION}= 39336 # MIPS -${CRAY_5_K_RENDER}= 654.5 # sec -${CRAY_4_K_RENDER}= 356.9 # sec -${CRAY_1080_P_RENDER}= 90.8 # sec -${COREMARK_SINGLE}= 400079.5 # iterations/s +${ZIP_MULTI_COMPRESSION}= 63476 # MIPS +${ZIP_MULTI_DECOMPRESSION}= 39336 # MIPS +${CRAY_5_K_RENDER}= 654.5 # sec +${CRAY_4_K_RENDER}= 356.9 # sec +${CRAY_1080_P_RENDER}= 90.8 # sec +${COREMARK_SINGLE}= 400079.5 # iterations/s # disk i-o -${UBU_SEQ_READ_QUEUED}= 4677 # MB/s -${UBU_SEQ_WRITE_QUEUED}= 1878.5 # MB/s -${UBU_SEQ_READ_NONQUE}= 2232.5 # MB/s -${UBU_SEQ_WRITE_NONQUE}= 1884.7 # MB/s -${UBU_RAND_READ_QUEUED}= 823 # MB/s -${UBU_RAND_WRITE_QUEUED}= 917.3 # MB/s -${UBU_RAND_READ_NONQUE}= 68.6 # MB/s -${UBU_RAND_WRITE_NONQUE}= 272.1 # MB/s - -${WIN_SEQ_READ_QUEUED}= 7119.5 # MB/s -${WIN_SEQ_WRITE_QUEUED}= 6511.4 # MB/s -${WIN_SEQ_READ_NONQUE}= 5001.2 # MB/s -${WIN_SEQ_WRITE_NONQUE}= 5475.5 # MB/s -${WIN_RAND_READ_QUEUED}= 886.5 # MB/s -${WIN_RAND_WRITE_QUEUED}= 461.3 # MB/s -${WIN_RAND_READ_NONQUE}= 82.8 # MB/s -${WIN_RAND_WRITE_NONQUE}= 239.6 # MB/s - -${CLEVO_BATTERY_CAPACITY}= 4643000 # /sys/class/power_supply/BAT0/charge_full +${UBU_SEQ_READ_QUEUED}= 4677 # MB/s +${UBU_SEQ_WRITE_QUEUED}= 1878.5 # MB/s +${UBU_SEQ_READ_NONQUE}= 2232.5 # MB/s +${UBU_SEQ_WRITE_NONQUE}= 1884.7 # MB/s +${UBU_RAND_READ_QUEUED}= 823 # MB/s +${UBU_RAND_WRITE_QUEUED}= 917.3 # MB/s +${UBU_RAND_READ_NONQUE}= 68.6 # MB/s +${UBU_RAND_WRITE_NONQUE}= 272.1 # MB/s + +${WIN_SEQ_READ_QUEUED}= 7119.5 # MB/s +${WIN_SEQ_WRITE_QUEUED}= 6511.4 # MB/s +${WIN_SEQ_READ_NONQUE}= 5001.2 # MB/s +${WIN_SEQ_WRITE_NONQUE}= 5475.5 # MB/s +${WIN_RAND_READ_QUEUED}= 886.5 # MB/s +${WIN_RAND_WRITE_QUEUED}= 461.3 # MB/s +${WIN_RAND_READ_NONQUE}= 82.8 # MB/s +${WIN_RAND_WRITE_NONQUE}= 239.6 # MB/s + +${CLEVO_BATTERY_CAPACITY}= 4643000 # /sys/class/power_supply/BAT0/charge_full + +# GPU Performance +# Reference config: Medium preset, 1920x1080, Windowed +${GPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} +${UNIGINE_SUPERPOSITION_RESULT_AC}= 20.6 # FPS +${UNIGINE_SUPERPOSITION_RESULT_BAT}= 20.3 # FPS *** Keywords *** diff --git a/platform-configs/novacustom-v560tnd.robot b/platform-configs/novacustom-v560tnd.robot index d018084038..b1cd1f89ec 100644 --- a/platform-configs/novacustom-v560tnd.robot +++ b/platform-configs/novacustom-v560tnd.robot @@ -14,8 +14,6 @@ ${EXTERNAL_HEADSET}= USB PnP Audio Device ${CPU_MAX_FREQUENCY}= 4800 ${CPU_MIN_FREQUENCY}= 200 -${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${TRUE} - ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} # change windows/ubuntu support depending ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} # on which OS is first in the boot order @@ -57,3 +55,10 @@ ${WIN_RAND_READ_QUEUED}= ${EMPTY} # MB/s ${WIN_RAND_WRITE_QUEUED}= ${EMPTY} # MB/s ${WIN_RAND_READ_NONQUE}= ${EMPTY} # MB/s ${WIN_RAND_WRITE_NONQUE}= ${EMPTY} # MB/s + +# GPU Performance +# Reference config: Medium preset, 1920x1080, Windowed +${GPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} +${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${TRUE} +${UNIGINE_SUPERPOSITION_RESULT_AC}= 104.5 # FPS +${UNIGINE_SUPERPOSITION_RESULT_BAT}= 24.0 # FPS diff --git a/platform-configs/novacustom-v560tne.robot b/platform-configs/novacustom-v560tne.robot index ed048946ce..852c223c54 100644 --- a/platform-configs/novacustom-v560tne.robot +++ b/platform-configs/novacustom-v560tne.robot @@ -14,8 +14,6 @@ ${EXTERNAL_HEADSET}= USB PnP Audio Device ${CPU_MAX_FREQUENCY}= 4800 ${CPU_MIN_FREQUENCY}= 200 -${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${TRUE} - ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} # change windows/ubuntu support depending ${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} # on which OS is first in the boot order @@ -51,3 +49,10 @@ ${WIN_RAND_READ_QUEUED}= ${EMPTY} # MB/s ${WIN_RAND_WRITE_QUEUED}= ${EMPTY} # MB/s ${WIN_RAND_READ_NONQUE}= ${EMPTY} # MB/s ${WIN_RAND_WRITE_NONQUE}= ${EMPTY} # MB/s + +# GPU Performance +# Reference config: Medium preset, 1920x1080, Windowed +${GPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} +${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${TRUE} +${UNIGINE_SUPERPOSITION_RESULT_AC}= 114 # FPS +${UNIGINE_SUPERPOSITION_RESULT_BAT}= 26.2 # FPS diff --git a/platform-configs/novacustom-v560tu.robot b/platform-configs/novacustom-v560tu.robot index 667719f550..5bb91df5e3 100644 --- a/platform-configs/novacustom-v560tu.robot +++ b/platform-configs/novacustom-v560tu.robot @@ -5,54 +5,59 @@ Resource include/novacustom-mtl.robot *** Variables *** # CPU -${CPU}= Intel(R) Core(TM) Ultra 5 125H -${DEF_CORES_PER_SOCKET}= 14 -${DEF_THREADS_TOTAL}= 18 - -${3_MDEB_WIFI_NETWORK}= 3mdeb_abr -${DEVICE_NVME_DISK}= Non-Volatile memory controller -${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 -${DMIDECODE_PRODUCT_NAME}= V54x_6x_TU -${EXTERNAL_HEADSET}= USB PnP Audio Device -${CPU_MAX_FREQUENCY}= 4500 -${CPU_MIN_FREQUENCY}= 300 -${BLUETOOTH_CARD_UBUNTU}= 8087:0033 -${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${FALSE} -${WEBCAM_UBUNTU}= USB2.0 Camera +${CPU}= Intel(R) Core(TM) Ultra 5 125H +${DEF_CORES_PER_SOCKET}= 14 +${DEF_THREADS_TOTAL}= 18 + +${3_MDEB_WIFI_NETWORK}= 3mdeb_abr +${DEVICE_NVME_DISK}= Non-Volatile memory controller +${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 +${DMIDECODE_PRODUCT_NAME}= V54x_6x_TU +${EXTERNAL_HEADSET}= USB PnP Audio Device +${CPU_MAX_FREQUENCY}= 4500 +${CPU_MIN_FREQUENCY}= 300 +${BLUETOOTH_CARD_UBUNTU}= 8087:0033 +${WEBCAM_UBUNTU}= USB2.0 Camera ${CLEVO_USB_C_HUB}= Thunderbolt 4 Dock -${POWER_CTRL}= none -${SNIPEIT}= no -${FLASH_SIZE}= 33554432 +${POWER_CTRL}= none +${SNIPEIT}= no +${FLASH_SIZE}= 33554432 -${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} -${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} -${USB_STACK_SUPPORT}= ${TRUE} -${CLEVO_BATTERY_CAPACITY}= 4602000 +${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} +${TESTS_IN_UBUNTU_SUPPORT}= ${TRUE} +${USB_STACK_SUPPORT}= ${TRUE} +${CLEVO_BATTERY_CAPACITY}= 4602000 # performance reference for processor ultra 5 125h -${ZIP_MULTI_COMPRESSION}= 15923 # MIPS -${ZIP_MULTI_DECOMPRESSION}= 12245 # MIPS -${CRAY_5_K_RENDER}= 2210.755 # sec -${CRAY_4_K_RENDER}= 1349.461 # sec -${CRAY_1080_P_RENDER}= 308.289 # sec -${COREMARK_SINGLE}= 92891.774 # iterations/s +${ZIP_MULTI_COMPRESSION}= 15923 # MIPS +${ZIP_MULTI_DECOMPRESSION}= 12245 # MIPS +${CRAY_5_K_RENDER}= 2210.755 # sec +${CRAY_4_K_RENDER}= 1349.461 # sec +${CRAY_1080_P_RENDER}= 308.289 # sec +${COREMARK_SINGLE}= 92891.774 # iterations/s # disk i-o -${UBU_SEQ_READ_QUEUED}= 5953.5 # MB/s -${UBU_SEQ_WRITE_QUEUED}= 5728.6 # MB/s -${UBU_SEQ_READ_NONQUE}= 4357.4 # MB/s -${UBU_SEQ_WRITE_NONQUE}= 4293.5 # MB/s -${UBU_RAND_READ_QUEUED}= 5944.8 # MB/s -${UBU_RAND_WRITE_QUEUED}= 5634.1 # MB/s -${UBU_RAND_READ_NONQUE}= 3653.9 # MB/s -${UBU_RAND_WRITE_NONQUE}= 4083.7 # MB/s - -${WIN_SEQ_READ_QUEUED}= ${EMPTY} # MB/s -${WIN_SEQ_WRITE_QUEUED}= ${EMPTY} # MB/s -${WIN_SEQ_READ_NONQUE}= ${EMPTY} # MB/s -${WIN_SEQ_WRITE_NONQUE}= ${EMPTY} # MB/s -${WIN_RAND_READ_QUEUED}= ${EMPTY} # MB/s -${WIN_RAND_WRITE_QUEUED}= ${EMPTY} # MB/s -${WIN_RAND_READ_NONQUE}= ${EMPTY} # MB/s -${WIN_RAND_WRITE_NONQUE}= ${EMPTY} # MB/s +${UBU_SEQ_READ_QUEUED}= 5953.5 # MB/s +${UBU_SEQ_WRITE_QUEUED}= 5728.6 # MB/s +${UBU_SEQ_READ_NONQUE}= 4357.4 # MB/s +${UBU_SEQ_WRITE_NONQUE}= 4293.5 # MB/s +${UBU_RAND_READ_QUEUED}= 5944.8 # MB/s +${UBU_RAND_WRITE_QUEUED}= 5634.1 # MB/s +${UBU_RAND_READ_NONQUE}= 3653.9 # MB/s +${UBU_RAND_WRITE_NONQUE}= 4083.7 # MB/s + +${WIN_SEQ_READ_QUEUED}= ${EMPTY} # MB/s +${WIN_SEQ_WRITE_QUEUED}= ${EMPTY} # MB/s +${WIN_SEQ_READ_NONQUE}= ${EMPTY} # MB/s +${WIN_SEQ_WRITE_NONQUE}= ${EMPTY} # MB/s +${WIN_RAND_READ_QUEUED}= ${EMPTY} # MB/s +${WIN_RAND_WRITE_QUEUED}= ${EMPTY} # MB/s +${WIN_RAND_READ_NONQUE}= ${EMPTY} # MB/s +${WIN_RAND_WRITE_NONQUE}= ${EMPTY} # MB/s + +# GPU Performance +# Reference config: Medium preset, 1920x1080, Windowed +${GPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} +${UNIGINE_SUPERPOSITION_RESULT_AC}= 24.5 # FPS +${UNIGINE_SUPERPOSITION_RESULT_BAT}= 23.5 # FPS From 7a4a3a31316b703c4d410280dd30779e3adbe09a Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Thu, 10 Apr 2025 17:57:10 +0200 Subject: [PATCH 372/416] gpu-performance: Apply precommit, cleanup comments and debug statements Signed-off-by: Sebastian Czapla --- dasharo-performance/gpu-performance.robot | 6 ++++-- lib/performance/common.robot | 3 --- lib/performance/gpu.robot | 2 ++ platform-configs/novacustom-v540tnd.robot | 2 +- platform-configs/novacustom-v540tu.robot | 5 ++--- platform-configs/novacustom-v560tu.robot | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/dasharo-performance/gpu-performance.robot b/dasharo-performance/gpu-performance.robot index b8473efaad..eafa5b93d8 100644 --- a/dasharo-performance/gpu-performance.robot +++ b/dasharo-performance/gpu-performance.robot @@ -57,11 +57,13 @@ GPU Performance Suite Setup Execute Manual Step Please ensure DUT has active desktop session ... by logging into X11 Gnome Desktop. Detect Or Install Phoronix Test Suite On Ubuntu + + # Error redirection; for unknown reason to me, DTS throws + # "sh: 1: kill: No such process" from time to time ${out}= Execute Command In Terminal - ... phoronix-test-suite list-installed-tests | grep "Unigine Superposition" + ... phoronix-test-suite list-installed-tests 2>/dev/null | grep "pts/unigine-super" IF '${out}' == '${EMPTY}' - Log To Console Installing Unigine Superposition # 10 Minute timeout to download ~1.5GB Execute Linux Command DISPLAY=:0 phoronix-test-suite install-test unigine-super 600 Read From Terminal Until Prompt diff --git a/lib/performance/common.robot b/lib/performance/common.robot index 443e0bf12e..52c3523b20 100644 --- a/lib/performance/common.robot +++ b/lib/performance/common.robot @@ -31,7 +31,6 @@ Detect Or Install Phoronix Test Suite On Ubuntu [Documentation] Detects and installs PTS if it is missing on Ubuntu. # Get and store current user, so we can seamlessly get root perms if missing ${curr_user}= Execute Command In Terminal whoami - Log To Console PTS install issued by ${curr_user} IF '${curr_user}' != 'root' Switch To Root User Detect Or Install Package php-cli Detect Or Install Package php-xml @@ -66,8 +65,6 @@ Detect Or Install Phoronix Test Suite On Windows Setup Phoronix Batch Mode [Documentation] Configure batch mode required for more automated tests. - ${curr_user}= Execute Command whoami - Log To Console Setting Up Batch mode for ${curr_user} Write Into Terminal phoronix-test-suite batch-setup Read From Terminal Until Save test results when in batch mode (Y/n): Write Into Terminal y diff --git a/lib/performance/gpu.robot b/lib/performance/gpu.robot index 0762241aea..fd7b23499d 100644 --- a/lib/performance/gpu.robot +++ b/lib/performance/gpu.robot @@ -41,6 +41,8 @@ Run Unigine Superposition On Ubuntu Read From Terminal Until Quality: # 1: Low 2: Medium 3: High 4: Ultra Write Into Terminal 2 # Medium preset + # Test takes around 11 minutes, but will repeat runs if deviation is too high, + # therefore we give almost 3x that time to ensure it has enough to rerun Set DUT Response Timeout 1800 ${out}= Read From Terminal Until Prompt Should Contain ${out} Average: diff --git a/platform-configs/novacustom-v540tnd.robot b/platform-configs/novacustom-v540tnd.robot index d476259a79..8f63d6960a 100644 --- a/platform-configs/novacustom-v540tnd.robot +++ b/platform-configs/novacustom-v540tnd.robot @@ -68,5 +68,5 @@ ${WIN_RAND_WRITE_NONQUE}= 239.6 # MB/s # Reference config: Medium preset, 1920x1080, Windowed ${GPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${TRUE} -${UNIGINE_SUPERPOSITION_RESULT_AC}= 94.4 # FPS +${UNIGINE_SUPERPOSITION_RESULT_AC}= 94.4 # FPS ${UNIGINE_SUPERPOSITION_RESULT_BAT}= 21.9 # FPS diff --git a/platform-configs/novacustom-v540tu.robot b/platform-configs/novacustom-v540tu.robot index 1fd61c8294..d031723b40 100644 --- a/platform-configs/novacustom-v540tu.robot +++ b/platform-configs/novacustom-v540tu.robot @@ -20,9 +20,8 @@ ${POWER_CTRL}= none ${DEFAULT_BOOT_OS_ID}= ${ENV_ID_UBUNTU} @{TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} ${ENV_ID_FEDORA} -${CLEVO_USB_C_HUB}= Thunderbolt 4 Dock -${USB_DEVICE}= Linux - +${CLEVO_USB_C_HUB}= Thunderbolt 4 Dock +${USB_DEVICE}= Linux # performance ${ZIP_MULTI_COMPRESSION}= 63476 # MIPS diff --git a/platform-configs/novacustom-v560tu.robot b/platform-configs/novacustom-v560tu.robot index 5bb91df5e3..aa2400f1d3 100644 --- a/platform-configs/novacustom-v560tu.robot +++ b/platform-configs/novacustom-v560tu.robot @@ -18,7 +18,7 @@ ${CPU_MAX_FREQUENCY}= 4500 ${CPU_MIN_FREQUENCY}= 300 ${BLUETOOTH_CARD_UBUNTU}= 8087:0033 ${WEBCAM_UBUNTU}= USB2.0 Camera -${CLEVO_USB_C_HUB}= Thunderbolt 4 Dock +${CLEVO_USB_C_HUB}= Thunderbolt 4 Dock ${POWER_CTRL}= none ${SNIPEIT}= no From ec5323acce0290cdf72e6127e7bed91544c24f3b Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Wed, 16 Apr 2025 14:18:44 +0200 Subject: [PATCH 373/416] dasharo-performance/gpu-performance.robot: Add environment info to tests Signed-off-by: Sebastian Czapla --- dasharo-performance/gpu-performance.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dasharo-performance/gpu-performance.robot b/dasharo-performance/gpu-performance.robot index eafa5b93d8..220ed26609 100644 --- a/dasharo-performance/gpu-performance.robot +++ b/dasharo-performance/gpu-performance.robot @@ -8,7 +8,7 @@ Suite Teardown Log Out And Close Connection *** Test Cases *** -GPP001.201 GPU Performance Measure (AC) +GPP001.201 GPU Performance Measure (Ubuntu) (AC) [Documentation] Test GPU performance for Ubuntu on AC Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If not ${AC_CONNECTED} Cannot run this test on battery @@ -23,7 +23,7 @@ GPP001.201 GPU Performance Measure (AC) Fail GPU AC performance lower than expected! END -GPP002.201 GPU Performance Measure (Battery) +GPP002.201 GPU Performance Measure (Ubuntu) (Battery) [Documentation] Test GPU performance for Ubuntu on Battery Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If ${AC_CONNECTED} You must run this test on battery From 285bda70e2d706642123402aa09ab7011e4424f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Wed, 16 Apr 2025 15:01:19 +0200 Subject: [PATCH 374/416] dts-compatibility: dasharo-tools-suite: add Dasharo update via USB & iPXE (#590) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * dts-compatibility: dasharo-tools-suite: add Dasharo update via USB & iPXE Signed-off-by: Michał Iwanicki * dts-compatibility: dasharo-tools-suite: disable BIOS lock Signed-off-by: Michał Iwanicki * dts-compatibility: dasharo-tools-suite: skip if FW_FILE is not defined Signed-off-by: Michał Iwanicki * dts-compatibility: dasharo-tools-suite: fix documentation Signed-off-by: Michał Iwanicki * dts-compatibility: dasharo-tools-suite: use dts-e2e keywords Signed-off-by: Michał Iwanicki * dts-lib.robot: use dts-boot instead of dts in shell Signed-off-by: Michał Iwanicki * dts-compatibility: dasharo-tools-suite: disable Intel ME Signed-off-by: Michał Iwanicki * dts-lib: add ME warning message variable Signed-off-by: Michał Iwanicki * lib/framework: enclose variables in triple quotes (""") Signed-off-by: Michał Iwanicki * dts-lib: Deal with Intel ME warning during update Signed-off-by: Michał Iwanicki * dasharo-compatibility: dts: Enter setup menu after update To make sure that update went correctly Signed-off-by: Michał Iwanicki * dasharo-compatibility: dts: make DPP credentials optional Signed-off-by: Michał Iwanicki * dasharo-compatibility: dts: restore initial connection method after reboot Signed-off-by: Michał Iwanicki * lib/dts-lib: Read until `cpio.gz... ok` Otherwise on PiKVM (e.g. MSI) it might take longer than 20 seconds to boot into DTS which will result in trying to blindly enable SSH before it's possible and failure when trying to connect via SSH Signed-off-by: Michał Iwanicki * dasharo-tools-suite & dts-lib: Write without Enter in main menu After Dasharo/dts-scripts#42 you can use options in main menu without pressing Enter Signed-off-by: Michał Iwanicki * dasharo-tools-suite: update variable check to new format Signed-off-by: Michał Iwanicki --------- Signed-off-by: Michał Iwanicki --- .../dasharo-tools-suite.robot | 69 +++++- dts/dts-e2e.robot | 182 +--------------- lib/dts-lib.robot | 205 +++++++++++++++++- lib/framework.robot | 2 +- 4 files changed, 268 insertions(+), 190 deletions(-) diff --git a/dasharo-compatibility/dasharo-tools-suite.robot b/dasharo-compatibility/dasharo-tools-suite.robot index 77e3297a5e..1482c8b3f0 100644 --- a/dasharo-compatibility/dasharo-tools-suite.robot +++ b/dasharo-compatibility/dasharo-tools-suite.robot @@ -39,7 +39,7 @@ DTS002.001 DTS option Creating Dasharo HCL report works correctly Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} DTS002.001 not supported Power On Boot Dasharo Tools Suite iPXE - Write Into Terminal 1 + Write Bare Into Terminal 1 Read From Terminal Until ... Do you want to support Dasharo development by sending us logs with your hardware configuration? [N/y] Write Into Terminal N @@ -52,7 +52,7 @@ DTS003.001 DTS option reboot DUT works correctly Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} DTS004.001 not supported Power On Boot Dasharo Tools Suite iPXE - Write Into Terminal R + Write Bare Into Terminal R # Switch back to serial on PiKVM devices Restore Initial DUT Connection Method Enter Setup Menu Tianocore @@ -63,7 +63,7 @@ DTS004.001 DTS accessing shell works correctly Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} DTS005.001 not supported Power On Boot Dasharo Tools Suite iPXE - Write Into Terminal S + Write Bare Into Terminal S Read From Terminal Until Regexp bash-\\d\\.\\d# DTS005.001 Flash device from DTS shell by using flashrom works correctly @@ -120,7 +120,68 @@ DTS008.001 DTS option power-off DUT works correctly Skip If not ${TESTS_IN_FIRMWARE_SUPPORT} DTS003.001 not supported Power On Boot Dasharo Tools Suite iPXE - Write Into Terminal P + Write Bare Into Terminal P Set DUT Response Timeout 30s ${status}= Run Keyword And Return Status Enter Setup Menu Tianocore Should Not Be True ${status} + +DTS009.001 Update Dasharo firmware by using DTS via USB works correctly + [Documentation] This test aims to verify that updating Dasharo by using + ... DTS built-in script works correctly when booting DTS via USB. + ... Test expects FW_FILE variable to contain path to Dasharo firmware. + ... If DPP_EMAIL and DPP_PASSWORD are defined then test will load DPP + ... credentials before trying to update. + Depends On ${TESTS_IN_FIRMWARE_SUPPORT} + Depends On Variable \${FW_FILE} + # Flash earlier version so update can proceed. Firmware should have serial + # redirection enabled + Flash Firmware ${FW_FILE} + Make Sure That Flash Locks Are Disabled + IF "${DASHARO_INTEL_ME_MENU_SUPPORT}" == "${TRUE}" + Set UEFI Option MeMode Disabled (HAP) + END + Boot Dasharo Tools Suite USB + # To refresh screen as next keyword expects DTS checkpoint + Press Key N Times 1 ${ESC} + ${dpp_keys_defined}= Are DPP Keys Defined + IF ${dpp_keys_defined} == ${TRUE} Provide DPP Credentials + Go Through Update skip_me=${TRUE} + Restore Initial DUT Connection Method + Set DUT Response Timeout 5m + Enter Setup Menu Tianocore + +DTS009.002 Update Dasharo firmware by using DTS via iPXE works correctly + [Documentation] This test aims to verify that updating Dasharo by using + ... DTS built-in script works correctly when booting DTS via iPXE. + ... Test expects FW_FILE variable to contain path to Dasharo firmware. + ... If DPP_EMAIL and DPP_PASSWORD are defined then test will load DPP + ... credentials before trying to update. + Depends On ${TESTS_IN_FIRMWARE_SUPPORT} + Depends On Variable \${FW_FILE} + # Flash earlier version so update can proceed. Firmware should have serial + # redirection enabled + Flash Firmware ${FW_FILE} + Make Sure That Flash Locks Are Disabled + IF "${DASHARO_INTEL_ME_MENU_SUPPORT}" == "${TRUE}" + Set UEFI Option MeMode Disabled (HAP) + END + Boot Dasharo Tools Suite iPXE + # To refresh screen as next keyword expects DTS checkpoint + Press Key N Times 1 ${ESC} + ${dpp_keys_defined}= Are DPP Keys Defined + IF ${dpp_keys_defined} == ${TRUE} Provide DPP Credentials + Go Through Update skip_me=${TRUE} + Restore Initial DUT Connection Method + Set DUT Response Timeout 5m + Enter Setup Menu Tianocore + + +*** Keywords *** +Are DPP Keys Defined + ${email}= Run Keyword And Return Status + ... Variable Should Exist $DPP_EMAIL + ${password}= Run Keyword And Return Status + ... Variable Should Exist $DPP_PASSWORD + ${status}= Run Keyword And Return Status Should Be True + ... ${email} and ${password} + RETURN ${status} diff --git a/dts/dts-e2e.robot b/dts/dts-e2e.robot index 67b2d02f83..ec775e0c8d 100644 --- a/dts/dts-e2e.robot +++ b/dts/dts-e2e.robot @@ -21,39 +21,6 @@ Test Setup Prepare DTS Test Test Teardown Teardown DTS Test -*** Variables *** -# TODO: We should extend our keyword libs with keywords for DTS UI, these are -# first candidates. But before doing so - we need to establish some UI rules in -# DTS itself. -# DTS checkpoints: -${DTS_CHECKPOINT}= Enter an option: -${DTS_CONFIRM_CHECKPOINT}= Press Enter to continue -${HCL_REPORT_CHECKPOINT}= Please consider contributing to the "Hardware for Linux" project in the future. -${HCL_REPORT_SENDINGLOGS}= -... Do you want to support Dasharo development by sending us logs with your hardware configuration? [N/y] -${DTS_SPECIFICATION_WARN}= Does it match your actual specification? (Y|n) -${DTS_DEPLOY_WARN}= Do you want to deploy this Dasharo Firmware on your platform (Y|n) -${DTS_HW_PROBE_WARN}= Do you want to participate in this project? -${DTS_HEADS_SWITCH_QUESTION}= Would you like to switch to Dasharo heads firmware? (Y|n) -# DTS initial deployment menupoints: -${DTS_DCR_UEFI_MENUPOINT}= Community version -${DTS_DPP_UEFI_MENUPOINT}= DPP version (coreboot + UEFI) -${DTS_DPP_SEA_MENUPOINT}= DPP version (coreboot + SeaBIOS) -# Default DTS boot type, can be overwritten by CMD: -${DTS_BOOT_TYPE}= iPXE -# DTS options: -${DTS_HCL_OPT}= 1 -${DTS_DEPLOY_OPT}= 2 -${DTS_CREDENTIALS_OPT}= 4 -${DTS_DCR_UEFI_OPT}= c -${DTS_DPP_UEFI_OPT}= d -${DTS_DPP_SEA_OPT}= s -# DTS subscription checkpoints: -${DTS_NOACCESS_DPP_UEFI}= Dasharo Pro Package version (coreboot + UEFI) is also available. -${DTS_NOACCESS_DPP_SEABIOS}= Dasharo Pro Package version (coreboot + SeaBIOS) is also available. -${DTS_NOACCESS_DPP_HEADS}= Dasharo Pro Package version (coreboot + Heads) is also available. - - *** Test Cases *** E2E001.001 HCL Report test [Documentation] Verify that HCL Report is being executed with all @@ -467,9 +434,6 @@ E2E003.007 MSI PRO Z690-A DDR-4 update (Coreboot + UEFI -> Coreboot + UEFI) - co # 3) Start update: Go Through Update - # 4) The final step is rebooting: - Wait For Checkpoint Rebooting - E2E003.008 MSI PRO Z690-A update (Coreboot + UEFI -> Coreboot + UEFI) - community version [Documentation] Verify Dasharo (coreboot + UEFI) update logic on MSI PRO ... Z690-A WIFI(MS-7D25)/PRO Z690-A(MS-7D25). We start from Dasharo @@ -490,9 +454,6 @@ E2E003.008 MSI PRO Z690-A update (Coreboot + UEFI -> Coreboot + UEFI) - communit # 3) Start update: Go Through Update - # 4) The final step is rebooting: - Wait For Checkpoint Rebooting - E2E003.009 MSI PRO Z690-A DDR-4 update (Coreboot + UEFI -> Coreboot + UEFI) - DPP version, with credentials [Documentation] Verify Dasharo (coreboot + UEFI) update logic on MSI PRO ... Z690-A WIFI DDR4(MS-7D25)/PRO Z690-A DDR4(MS-7D25). We start from @@ -586,7 +547,7 @@ E2E003.012 MSI PRO Z690-A DDR4 transition (Coreboot + UEFI -> heads) - with cred # 3) Provide DPP credentials: Provide DPP Credentials - # 4) Start update: + # 4) Start Heads transition: Go Through Heads Transition # 5) The final step is rebooting: @@ -633,7 +594,7 @@ E2E003.014 MSI PRO Z690-A transition (UEFI -> heads) - with credentials # 3) Provide DPP credentials: Provide DPP Credentials - # 4) Start update: + # 4) Start Heads transition: Go Through Heads Transition # 5) The final step is rebooting: @@ -734,9 +695,6 @@ E2E004.004 Dell Optiplex 7010 DPP update (Coreboot + UEFI -> Coreboot + UEFI) - # 4) Start update: Go Through Update - # 5) The final step is rebooting: - Wait For Checkpoint Rebooting - E2E004.005 Dell OptiPlex 9010 DPP initial deployment (legacy -> Coreboot + UEFI) - without credentials [Documentation] Checks whether a User will have access to initial ... deployment of Dasharo firmware (Coreboot + UEFI) for Dell Optiplex @@ -828,9 +786,6 @@ E2E004.008 Dell Optiplex 9010 DPP update (Coreboot + UEFI -> Coreboot + UEFI) - # 4) Start update: Go Through Update - # 5) The final step is rebooting: - Wait For Checkpoint Rebooting - ################################################################################ # PC Engines tests. Only APU2 is being tested, other APUs have the same # configuration, but different links, so testing them is not necessary: @@ -1019,12 +974,9 @@ E2E006.004 Odroid H4 DPP update (Coreboot + UEFI -> Coreboot + UEFI) - with cred # 3) Provide DPP credentials: Provide DPP Credentials - # 4) Start initial deployment: + # 4) Start update: Go Through Update - # 5) The final step is rebooting: - Wait For Checkpoint Rebooting - *** Keywords *** Prepare DTS Test @@ -1059,131 +1011,3 @@ Login To DTS Via SSH In QEMU ... newline=LF Wait Until Keyword Succeeds 3x 1s ... SSHLibrary.Login root - -Power On And Enter DTS Shell - [Documentation] This KW boots DTS using the method defined by user via - ... DTS_BOOT_TYPE or the default one. After booting DTS shell is being - ... entered. - # 1) Boot up to DTS UI: - Power On - Boot Dasharo Tools Suite ${DTS_BOOT_TYPE} - - # 2) Enter shell: - Write Into Terminal S - Set Prompt For Terminal bash-5.2# - Read From Terminal Until Prompt - Set DUT Response Timeout 90s - -Provide DPP Credentials - [Documentation] This KW automatically writes DPP credentials into DTS UI. - ... The credentials should be set via CMD or file. - Set DUT Response Timeout 120s - ${out}= Read From Terminal Until ${DTS_CHECKPOINT} - Write Bare Into Terminal ${DTS_CREDENTIALS_OPT} - - # Enter email: - Variable Should Exist ${DPP_EMAIL} - Write Into Terminal ${DPP_EMAIL} - # Enter password: - Variable Should Exist ${DPP_PASSWORD} - Write Into Terminal ${DPP_PASSWORD} - - Wait For Checkpoint And Press Enter ${DTS_CONFIRM_CHECKPOINT} - -Wait For Checkpoint - [Documentation] This KW waits for checkpoint (first argument) and logs - ... everything read up to the checkpoint. - [Arguments] ${checkpoint} - ${out}= Read From Terminal Until ${checkpoint} - Log ${out} - -Wait For Checkpoint And Write - [Documentation] This KW waits for checkpoint (first argument) - ... and writes specified answer (second argument), with logging all - ... output before the checkpoint. - [Arguments] ${checkpoint} ${to_write} - Wait For Checkpoint ${checkpoint} - Sleep 1s - Write Into Terminal ${to_write} - -Wait For Checkpoint And Press Enter - [Documentation] This KW waits for checkpoint (first argument) - ... and preses enter, with logging all output before the checkpoint. - [Arguments] ${checkpoint} - Wait For Checkpoint ${checkpoint} - Sleep 1s - Write Bare Into Terminal \r\n - -Go Through Initial Deployment - [Documentation] This KW goes through standard Dasharo initial deployment - ... choosing all needed menu options and answering all questions. The - ... only thing which needs to be specified - the Dasharo version to - ... deploy (first argument), available versions: DCR UEFI, DPP UEFI, DPP - ... SeaBIOS. - [Arguments] ${dasharo_version} - # 1) Select initial deployment: - Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DEPLOY_OPT} - - # 2) Wait for HCL report to do its work, might take some time: - Set DUT Response Timeout 5m - # Accept hw-probe question from HCL report: - Wait For Checkpoint And Write ${DTS_HW_PROBE_WARN} Y - Set DUT Response Timeout 120s - - # 3) Choose version to install: - IF '${dasharo_version}' == 'DCR UEFI' - Wait For Checkpoint ${DTS_DCR_UEFI_OPT}) ${DTS_DCR_UEFI_MENUPOINT} - Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DCR_UEFI_OPT} - ELSE IF '${dasharo_version}' == 'DPP UEFI' - Wait For Checkpoint ${DTS_DPP_UEFI_OPT}) ${DTS_DPP_UEFI_MENUPOINT} - Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DPP_UEFI_OPT} - ELSE IF '${dasharo_version}' == 'DPP SeaBIOS' - Wait For Checkpoint ${DTS_DPP_SEA_OPT}) ${DTS_DPP_SEA_MENUPOINT} - Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DPP_SEA_OPT} - ELSE - Fail No Dasharo version for initial deployment provided! - END - - # 4) Check out all warnings: - Wait For Checkpoint And Write ${DTS_SPECIFICATION_WARN} Y - Wait For Checkpoint And Write ${DTS_DEPLOY_WARN} Y - -Go Through Update - [Documentation] This KW goes through standard Dasharo update workflow - ... choosing all needed menu options and answering all questions. - Set DUT Response Timeout 120s - # 1) Select initial deployment: - Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DEPLOY_OPT} - - # 2) Check out all warnings: - Wait For Checkpoint And Write ${DTS_SPECIFICATION_WARN} Y - Wait For Checkpoint And Write ${DTS_DEPLOY_WARN} Y - -Go Through Update Decline Heads - [Documentation] This KW goes through standard Dasharo update workflow - ... choosing all needed menu options and answering all questions. It - ... declines switching to Heads firmware. - Set DUT Response Timeout 120s - # 1) Select initial deployment: - Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DEPLOY_OPT} - - # 2) Check out all warnings: - Wait For Checkpoint And Write ${DTS_HEADS_SWITCH_QUESTION} N - Wait For Checkpoint And Write ${DTS_SPECIFICATION_WARN} Y - Wait For Checkpoint And Write ${DTS_DEPLOY_WARN} Y - -Go Through Heads Transition - [Documentation] This KW goes through transition to Dasharo Heads choosing - ... all needed menu options and answering all questions. - Set DUT Response Timeout 120s - # 1) Start update: - Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DEPLOY_OPT} - - # 2) Check out all warnings: - Wait For Checkpoint And Write ${DTS_HEADS_SWITCH_QUESTION} Y - Wait For Checkpoint And Write ${DTS_SPECIFICATION_WARN} Y - Wait For Checkpoint And Write ${DTS_DEPLOY_WARN} Y - - # 3) Check for Heads firmware deployment success: - Wait For Checkpoint Successfully switched to Dasharo Heads firmware - Wait For Checkpoint And Write ${DTS_CONFIRM_CHECKPOINT} 1 diff --git a/lib/dts-lib.robot b/lib/dts-lib.robot index 64204981e2..50766ce3cb 100644 --- a/lib/dts-lib.robot +++ b/lib/dts-lib.robot @@ -4,6 +4,40 @@ Resource bios/menus.robot Resource ../keywords.robot +*** Variables *** +# TODO: We should extend our keyword libs with keywords for DTS UI, these are +# first candidates. But before doing so - we need to establish some UI rules in +# DTS itself. +# DTS checkpoints: +${DTS_CHECKPOINT}= Enter an option: +${DTS_CONFIRM_CHECKPOINT}= Press Enter to continue +${HCL_REPORT_CHECKPOINT}= Please consider contributing to the "Hardware for Linux" project in the future. +${HCL_REPORT_SENDINGLOGS}= +... Do you want to support Dasharo development by sending us logs with your hardware configuration? [N/y] +${DTS_SPECIFICATION_WARN}= Does it match your actual specification? (Y|n) +${DTS_DEPLOY_WARN}= Do you want to deploy this Dasharo Firmware on your platform (Y|n) +${DTS_HW_PROBE_WARN}= Do you want to participate in this project? +${DTS_HEADS_SWITCH_QUESTION}= Would you like to switch to Dasharo heads firmware? (Y|n) +${DTS_ME_WARN}= Skip ME flashing and proceed with BIOS/firmware flashing/updating? (Y|n) +# DTS initial deployment menupoints: +${DTS_DCR_UEFI_MENUPOINT}= Community version +${DTS_DPP_UEFI_MENUPOINT}= DPP version (coreboot + UEFI) +${DTS_DPP_SEA_MENUPOINT}= DPP version (coreboot + SeaBIOS) +# Default DTS boot type, can be overwritten by CMD: +${DTS_BOOT_TYPE}= iPXE +# DTS options: +${DTS_HCL_OPT}= 1 +${DTS_DEPLOY_OPT}= 2 +${DTS_CREDENTIALS_OPT}= 4 +${DTS_DCR_UEFI_OPT}= c +${DTS_DPP_UEFI_OPT}= d +${DTS_DPP_SEA_OPT}= s +# DTS subscription checkpoints: +${DTS_NOACCESS_DPP_UEFI}= Dasharo Pro Package version (coreboot + UEFI) is also available. +${DTS_NOACCESS_DPP_SEABIOS}= Dasharo Pro Package version (coreboot + SeaBIOS) is also available. +${DTS_NOACCESS_DPP_HEADS}= Dasharo Pro Package version (coreboot + Heads) is also available. + + *** Keywords *** Boot Dasharo Tools Suite Via IPXE Shell [Documentation] Boots DTS via iPXE shell by chaining script. Arguments: @@ -26,9 +60,9 @@ Boot Dasharo Tools Suite Via IPXE Shell # 4) Try to boot via the link: Write Bare Into Terminal chain ${dts_chain_link}\n - Read From Terminal Until ${dts_chain_link}... - Read From Terminal Until ok Set DUT Response Timeout 5m + Read From Terminal Until .cpio.gz... + Read From Terminal Until ok Boot Dasharo Tools Suite Via IPXE Menu [Documentation] Boots DTS via option available in Dasharo iPXE menu. @@ -77,11 +111,11 @@ Boot Dasharo Tools Suite ... Read From Terminal Until Enter an option: Set Timeout ${old_timeout} # Enable SSH server and switch to SSH connection by writing on video console "in blind" - Write Into Terminal K + Write Bare Into Terminal K Set Global Variable ${DUT_CONNECTION_METHOD} SSH Login To Linux Via SSH Without Password root root@DasharoToolsSuite:~# # Spawn DTS menu on SSH console - Write Into Terminal dts + Write Into Terminal dts-boot END Read From Terminal Until Enter an option: Sleep 5s @@ -102,7 +136,7 @@ Check HCL Report Creation Enter Shell In DTS [Documentation] Keyword allows to drop to Shell in the Dasharo Tools ... Suite. - Write Into Terminal S + Write Bare Into Terminal S Set Prompt For Terminal bash-5.2# # These could be removed once routes priorities in DTS are resolved. Sleep 10 @@ -114,7 +148,7 @@ Enter Shell In DTS Run EC Transition [Documentation] Keyword allows to run EC Transition procedure in the ... Dasharo Tools Suite. - Write Into Terminal 6 + Write Bare Into Terminal 6 Read From Terminal Until Enter an option: Write Into Terminal 1 ${output}= Read From Terminal Until shut down @@ -151,3 +185,162 @@ Remove Extra Default Route ${route_info}= Execute Command In Terminal ip route | grep ^default Log Default route via 172.16.0.1 dev ${devname[0]} removed END + +Power On And Enter DTS Shell + [Documentation] This KW boots DTS using the method defined by user via + ... DTS_BOOT_TYPE or the default one. After booting DTS shell is being + ... entered. + # 1) Boot up to DTS UI: + Power On + Boot Dasharo Tools Suite ${DTS_BOOT_TYPE} + + # 2) Enter shell: + Write Bare Into Terminal S + Set Prompt For Terminal bash-5.2# + Read From Terminal Until Prompt + Set DUT Response Timeout 90s + +Provide DPP Credentials + [Documentation] This KW automatically writes DPP credentials into DTS UI. + ... The credentials should be set via CMD or file. + Set DUT Response Timeout 120s + ${out}= Read From Terminal Until ${DTS_CHECKPOINT} + Write Bare Into Terminal ${DTS_CREDENTIALS_OPT} + + # Enter email: + Variable Should Exist ${DPP_EMAIL} + Write Into Terminal ${DPP_EMAIL} + # Enter password: + Variable Should Exist ${DPP_PASSWORD} + Write Into Terminal ${DPP_PASSWORD} + + Wait For Checkpoint And Press Enter ${DTS_CONFIRM_CHECKPOINT} + +Provide DPP Credentials Without Packages + [Documentation] This KW automatically writes DPP credentials that do not + ... have access to DPP packages into DTS UI and checks out a DPP package + ... warning. + Provide DPP Credentials + + Wait For Checkpoint And Press Enter ${DPP_PACKAGES_CHECKPOINT} + +Wait For Checkpoint + [Documentation] This KW waits for checkpoint (first argument) and logs + ... everything read up to the checkpoint. If regexp is ${True} then + ... treat checkpoint as regexp + [Arguments] ${checkpoint} ${regexp}=${FALSE} + IF ${regexp} + ${out}= Read From Terminal Until Regexp ${checkpoint} + ELSE + ${out}= Read From Terminal Until ${checkpoint} + END + Log ${out} + RETURN ${out} + +Wait For Checkpoint And Write + [Documentation] This KW waits for checkpoint (first argument) + ... and writes specified answer (second argument), with logging all + ... output before the checkpoint. + [Arguments] ${checkpoint} ${to_write} + ${out}= Wait For Checkpoint ${checkpoint} + Sleep 1s + Write Into Terminal ${to_write} + RETURN ${out} + +Wait For Checkpoint And Press Enter + [Documentation] This KW waits for checkpoint (first argument) + ... and preses enter, with logging all output before the checkpoint. + [Arguments] ${checkpoint} + ${out}= Wait For Checkpoint ${checkpoint} + Sleep 1s + Write Bare Into Terminal \r\n + RETURN ${out} + +Go Through Initial Deployment + [Documentation] This KW goes through standard Dasharo initial deployment + ... choosing all needed menu options and answering all questions. The + ... only thing which needs to be specified - the Dasharo version to + ... deploy (first argument), available versions: DCR UEFI, DPP UEFI, DPP + ... SeaBIOS. + [Arguments] ${dasharo_version} + # 1) Select initial deployment: + Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DEPLOY_OPT} + + # 2) Wait for HCL report to do its work, might take some time: + Set DUT Response Timeout 5m + # Accept hw-probe question from HCL report: + Wait For Checkpoint And Write ${DTS_HW_PROBE_WARN} Y + Set DUT Response Timeout 120s + + # 3) Choose version to install: + IF '${dasharo_version}' == 'DCR UEFI' + Wait For Checkpoint ${DTS_DCR_UEFI_OPT}) ${DTS_DCR_UEFI_MENUPOINT} + Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DCR_UEFI_OPT} + ELSE IF '${dasharo_version}' == 'DPP UEFI' + Wait For Checkpoint ${DTS_DPP_UEFI_OPT}) ${DTS_DPP_UEFI_MENUPOINT} + Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DPP_UEFI_OPT} + ELSE IF '${dasharo_version}' == 'DPP SeaBIOS' + Wait For Checkpoint ${DTS_DPP_SEA_OPT}) ${DTS_DPP_SEA_MENUPOINT} + Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DPP_SEA_OPT} + ELSE + Fail No Dasharo version for initial deployment provided! + END + + # 4) Check out all warnings: + Wait For Checkpoint And Write ${DTS_SPECIFICATION_WARN} Y + Wait For Checkpoint And Write ${DTS_DEPLOY_WARN} Y + +Go Through Update + [Documentation] This KW goes through standard Dasharo update workflow + ... choosing all needed menu options and answering all questions. + ... If ${skip_me} is set to ${TRUE} then keyword will go through update + ... Even if Intel ME cannot be updated + [Arguments] ${skip_me}=${FALSE} + Set DUT Response Timeout 120s + # 1) Select update: + Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DEPLOY_OPT} + + # 2) Check out all warnings: + Wait For Checkpoint And Write ${DTS_SPECIFICATION_WARN} Y + Wait For Checkpoint And Write ${DTS_DEPLOY_WARN} Y + Set DUT Response Timeout 5m + ${dts_me_warn_escaped}= Evaluate re.escape("""${DTS_ME_WARN}""") + ${checkpoint}= Wait For Checkpoint + ... ${dts_me_warn_escaped}|Rebooting regexp=${TRUE} + IF """${DTS_ME_WARN}""" in """${checkpoint}""" + IF ${skip_me} + Write Into Terminal Y + Wait For Checkpoint Rebooting + ELSE + Fail Cannot update Intel ME + END + END + +Go Through Heads Transition + [Documentation] This KW goes through transition to Dasharo Heads choosing + ... all needed menu options and answering all questions. + Set DUT Response Timeout 120s + # 1) Start update: + Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DEPLOY_OPT} + + # 2) Check out all warnings: + Wait For Checkpoint And Write ${DTS_HEADS_SWITCH_QUESTION} Y + Wait For Checkpoint And Write ${DTS_SPECIFICATION_WARN} Y + Wait For Checkpoint And Write ${DTS_DEPLOY_WARN} Y + + # 3) Check for Heads firmware deployment success: + Wait For Checkpoint Successfully switched to Dasharo Heads firmware + Wait For Checkpoint And Write ${DTS_CONFIRM_CHECKPOINT} 1 + +Go Through Update Decline Heads + [Documentation] This KW goes through standard Dasharo update workflow + ... choosing all needed menu options and answering all questions. It + ... declines switching to Heads firmware. + Set DUT Response Timeout 120s + # 1) Select initial deployment: + Wait For Checkpoint And Write ${DTS_CHECKPOINT} ${DTS_DEPLOY_OPT} + + # 2) Check out all warnings: + Wait For Checkpoint And Write ${DTS_HEADS_SWITCH_QUESTION} N + Wait For Checkpoint And Write ${DTS_SPECIFICATION_WARN} Y + Wait For Checkpoint And Write ${DTS_DEPLOY_WARN} Y diff --git a/lib/framework.robot b/lib/framework.robot index 431ebb802d..187ee0d7f7 100644 --- a/lib/framework.robot +++ b/lib/framework.robot @@ -11,7 +11,7 @@ Depends On ... to the test as per ```Skip`` keyword. [Arguments] ${condition} ${reason}=${NONE} ${line}= Set Variable ${TEST_NAME.split()}[0] not supported - IF '${reason}' != ${NONE} + IF """${reason}""" != """${NONE}""" ${line}= Set Variable ${line}: ${reason} END Skip If not ${condition} ${line} From 73371e4cd9d783583455b1f9723294153cc1cef7 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Wed, 16 Apr 2025 15:50:47 +0200 Subject: [PATCH 375/416] dasharo-performance/cpu-performance.robot update: change test ID's to match naming convention Signed-off-by: Jakub Redmerski --- dasharo-performance/cpu-performance.robot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dasharo-performance/cpu-performance.robot b/dasharo-performance/cpu-performance.robot index bbeda5c4a1..43decaa7ac 100644 --- a/dasharo-performance/cpu-performance.robot +++ b/dasharo-performance/cpu-performance.robot @@ -14,7 +14,7 @@ ${DEVIATION_DOWN}= 0.8 *** Test Cases *** -CPP001.001 Single Threaded CPU Benchmark (Ubuntu) (AC) +CPP001.201 Single Threaded CPU Benchmark (Ubuntu) (AC) [Documentation] Test single threaded performance using phoronix ... test suite, for Ubuntu, while connected to power supply. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPP001.001 not supported @@ -30,7 +30,7 @@ CPP001.001 Single Threaded CPU Benchmark (Ubuntu) (AC) Should Be True ${render_test_passed} Should Be True ${coremark_test_passed} -CPP001.002 Single Threaded CPU Benchmark (Ubuntu) (Battery) +CPP001.202 Single Threaded CPU Benchmark (Ubuntu) (Battery) [Documentation] Test single threaded performance using phoronix ... test suite, for Ubuntu, while powered by inbuilt battery. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPP001.002 not supported @@ -46,7 +46,7 @@ CPP001.002 Single Threaded CPU Benchmark (Ubuntu) (Battery) Should Be True ${render_test_passed} Should Be True ${coremark_test_passed} -CPP002.001 Multi Threaded CPU Benchmark (Ubuntu) (AC) +CPP002.201 Multi Threaded CPU Benchmark (Ubuntu) (AC) [Documentation] Test multi threaded performance using phoronix ... test suite, for Ubuntu, while connected to power supply. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} @@ -60,7 +60,7 @@ CPP002.001 Multi Threaded CPU Benchmark (Ubuntu) (AC) ${c_7zip_test_passed}= 7-Zip Multi-thread Compression And Decompression Average Should Be True ${c_7zip_test_passed} -CPP002.002 Multi Threaded CPU Benchmark (Ubuntu) (Battery) +CPP002.202 Multi Threaded CPU Benchmark (Ubuntu) (Battery) [Documentation] Test multi threaded performance using phoronix ... test suite, for Ubuntu, while powered by inbuilt battery. Skip If not ${TESTS_IN_UBUNTU_SUPPORT} CPP001.002 not supported From a393f7dd7c3426841f8c63ddb1c338183a62bb36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 7 Apr 2025 16:58:59 +0200 Subject: [PATCH 376/416] scripts/utc_generator.py: Add temporary helper script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It should be removed once the UTC test suite is renumbered Signed-off-by: Filip Gołaś --- scripts/utc_generator.py | 357 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 357 insertions(+) create mode 100644 scripts/utc_generator.py diff --git a/scripts/utc_generator.py b/scripts/utc_generator.py new file mode 100644 index 0000000000..47ea3fd634 --- /dev/null +++ b/scripts/utc_generator.py @@ -0,0 +1,357 @@ +# SPDX-FileCopyrightText: 2025 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +import pandas as pd + +# Tested OS ids +oses = {"001": "Firmware", "201": "Ubuntu", "202": "Fedora", "301": "Windows"} +os_id_variable_names = { + "001": "001", + "201": "${ENV_ID_UBUNTU}", + "202": "${ENV_ID_FEDORA}", + "301": "${ENV_ID_WINDOWS}", +} + +# Every test performed on two states of ME +me_states = [True, False] + +# Every test on every docking station +docking_stations = { + "1": "WL-UMD05 Pro Rev.E", + "2": "WL-UMD05 Pro Rev.C1", + "3": "WL-UG69PD2 Rev.A1", +} +# Every unique test case, its docs and the OS ids on which it is performed +test_names = { + "USB Type-A charging capability": { + "env_ids": ["001"], + "doc": """This test verifies that the USB-A ports are able to provide + ... charging to a connected smartphone.""", + "skips": "", + "automation": "manual", + }, + "Thunderbolt 4 USB Type-C power output": { + "env_ids": ["001"], + "doc": """This test verifies that the Thunderbolt 4 port is able + ... to provide charging to a USB Type-C accessory.""", + "skips": "", + "automation": "manual", + }, + "USB Type-C PD power input": { + "env_ids": ["201", "202", "301"], + "doc": """Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu)""", + "skips": ["not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT}"], + "automation": "manual", + }, + "USB Type-C Display output": { + "env_ids": ["201", "202", "301"], + "doc": "Check whether the DUT can detect the USB Type-C hub.", + "skips": ["not ${USB_TYPE_C_DISPLAY_SUPPORT}"], + "automation": "auto", + }, + "USB Type-C docking station HDMI display": { + "env_ids": ["201", "202", "301"], + "doc": """This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM.""", + "skips": ["not ${DOCKING_STATION_HDMI}"], + "automation": "auto", + }, + "USB Type-C docking station DP display": { + "env_ids": ["201", "202", "301"], + "doc": """This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM.""", + "skips": ["not ${DOCKING_STATION_DISPLAY_PORT}"], + "automation": "auto", + }, + "USB Type-C docking station Triple display": { + "env_ids": ["201", "202", "301"], + "doc": """This test aims to verify that the three display + ... simultaneously connected to the docking station is correctly + ... recognized by the OPERATING_SYSTEM.""", + "skips": "", + "automation": "manual", + }, + "USB Type-C docking station USB devices recognition": { + "env_ids": ["001", "201", "202", "301"], + "doc": """Check whether the external USB devices connected to the + ... docking station are detected correctly""", + "skips": ["not ${DOCKING_STATION_USB_SUPPORT}"], + "automation": "auto", + }, + "USB Type-C docking station USB keyboard": { + "env_ids": ["001", "201", "202", "301"], + "doc": """Check whether the external USB keyboard connected to the + ... docking station is detected correctly.""", + "skips": ["not ${DOCKING_STATION_KEYBOARD_SUPPORT}"], + "automation": "auto", + }, + "USB Type-C docking station upload 1GB file on USB storage": { + "env_ids": ["201", "202", "301"], + "doc": """This test aims to verify that the 1GB file can be + ... transferred from the OPERATING_SYSTEM to the USB storage + ... connected to the docking station.""", + "skips": "", + "automation": "manual", + }, + "USB Type-C docking station Ethernet connection": { + "env_ids": ["201", "202", "301"], + "doc": """This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM.""", + "skips": ["not ${DOCKING_STATION_NET_INTERFACE}"], + "automation": "auto", + }, + "USB Type-C docking station audio recognition": { + "env_ids": ["201", "202", "301"], + "doc": """This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station.""", + "skips": ["not ${DOCKING_STATION_AUDIO_SUPPORT}"], + "automation": "auto", + }, + "USB Type-C docking station audio playback": { + "env_ids": ["201", "202", "301"], + "doc": """This test aims to verify that the audio subsystem is able + ... to playback audio recordings by using the external headset + ... speakers connected to the docking station.""", + "skips": ["not ${DOCKING_STATION_AUDIO_SUPPORT}"], + "automation": "manual", + }, + "USB Type-C docking station audio capture": { + "env_ids": ["201", "202", "301"], + "doc": """This test aims to verify that the audio subsystem is able + ... to capture audio from external headset connected to the + ... docking station.""", + "skips": ["not ${DOCKING_STATION_AUDIO_SUPPORT}"], + "automation": "manual", + }, + "USB Type-C docking station SD Card reader detection": { + "env_ids": ["201", "202", "301"], + "doc": """Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system.""", + "skips": ["not ${DOCKING_STATION_SD_CARD_READER_SUPPORT}"], + "automation": "auto", + }, + "USB Type-C docking station SD Card read/write": { + "env_ids": ["201", "202", "301"], + "doc": """Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system.""", + "skips": ["not ${DOCKING_STATION_SD_CARD_READER_SUPPORT}"], + "automation": "auto", + }, + "USB Type-C PD current limiting": { + "env_ids": ["201", "202", "301"], + "doc": """This test aims to verify that the power draw from a USB-C PD + ... power supply does not exceed the limits of the power supply's + ... specifications.""", + "skips": "", + "automation": "manual", + }, + "Docking station detection after coldboot": { + "env_ids": ["201", "202"], + "doc": """Check whether he DUT properly detects the docking station + ... after coldboot.""", + "skips": ["'${POWER_CTRL}' == 'none'", "not ${DOCKING_STATION_DETECT_SUPPORT}"], + "automation": "auto", + }, + "Docking station detection after warmboot": { + "env_ids": ["201", "202"], + "doc": """Check whether he DUT properly detects the docking station + ... after warmboot.""", + "skips": ["not ${DOCKING_STATION_DETECT_SUPPORT}"], + "automation": "auto", + }, + "Docking station detection after reboot": { + "env_ids": ["201", "202"], + "doc": """Check whether the DUT properly detects the docking station + ... after reboot.""", + "skips": ["not ${DOCKING_STATION_DETECT_SUPPORT}"], + "automation": "auto", + }, + "Docking station detection after suspend": { + "env_ids": ["201", "202"], + "doc": """Check whether the DUT properly detects the docking station + ... after suspend.""", + "skips": [ + "${PLATFORM_SLEEP_TYPE_SELECTABLE}", + "not ${DOCKING_STATION_DETECT_SUPPORT}", + ], + "automation": "auto", + }, + "Docking station detection after suspend (S0ix)": { + "env_ids": ["201", "202"], + "doc": """Check whether the DUT properly detects the docking station + ... after suspend '${POWER_CTRL}' == 'none'(S0ix).""", + "skips": [ + "not ${PLATFORM_SLEEP_TYPE_SELECTABLE}", + "not ${DOCKING_STATION_DETECT_SUPPORT}", + ], + "automation": "auto", + }, + "Docking station detection after suspend (S3)": { + "env_ids": ["201", "202"], + "doc": """Check whether the DUT properly detects the docking station + ... after suspend (S3).""", + "skips": [ + "not ${PLATFORM_SLEEP_TYPE_SELECTABLE}", + "not ${DOCKING_STATION_DETECT_SUPPORT}", + ], + "automation": "auto", + }, + "Docking station detection after coldboot then hotplug": { + "env_ids": ["201", "202"], + "doc": """Check whether the DUT properly detects the docking station + ... after coldboot then hotplug.""", + "skips": ["'${POWER_CTRL}' == 'none'", "not ${DOCKING_STATION_DETECT_SUPPORT}"], + "automation": "semi", + }, + "Docking station detection after warmboot then hotplug": { + "env_ids": ["201", "202"], + "doc": """Check whether the DUT properly detects the docking station + ... after warmboot then hotplug.""", + "skips": ["not ${DOCKING_STATION_DETECT_SUPPORT}"], + "automation": "semi", + }, + "Docking station detection after reboot then hotplug": { + "env_ids": ["201", "202"], + "doc": """Check whether the DUT properly detects the docking station + ... after reboot then hotplug.""", + "skips": ["not ${DOCKING_STATION_DETECT_SUPPORT}"], + "automation": "semi", + }, + "Docking station detection after suspend then hotplug": { + "env_ids": ["201", "202"], + "doc": """Check whether the DUT properly detects the docking station + ... after suspend then hotplug.""", + "skips": [ + "${PLATFORM_SLEEP_TYPE_SELECTABLE}", + "not ${DOCKING_STATION_DETECT_SUPPORT}", + ], + "automation": "semi", + }, + "Docking station detection after suspend then hotplug (S0ix)": { + "env_ids": ["201", "202"], + "doc": """Check whether the DUT properly detects the docking station + ... after suspend (S0ix) then hotplug.""", + "skips": [ + "not ${PLATFORM_SLEEP_TYPE_SELECTABLE}", + "not ${DOCKING_STATION_DETECT_SUPPORT}", + ], + "automation": "semi", + }, + "Docking station detection after suspend then hotplug (S3)": { + "env_ids": ["201", "202"], + "doc": """Check whether the DUT properly detects the docking station + ... after suspend (S3) then hotplug.""", + "skips": [ + "not ${PLATFORM_SLEEP_TYPE_SELECTABLE}", + "not ${DOCKING_STATION_DETECT_SUPPORT}", + ], + "automation": "semi", + }, +} + +# Generate full test list +test_rows = [] +for dock_idx in docking_stations.keys(): + for me_enabled in me_states: + for os in oses: + # find out test cases on given os + # to order them by OS and possibly speeding up execution + tests_for_os = [ + name for name in test_names.keys() if os in test_names[name]["env_ids"] + ] + + for test_name in tests_for_os: + test_idx = list(test_names.keys()).index(test_name) * 2 + 1 + if not me_enabled: + test_idx += 1 + test_id = f"UTC{dock_idx}{test_idx:02d}.{os}" + test_rows.append( + { + "Test ID": test_id, + "Test Name": test_name, + "doc": test_names[test_name]["doc"], + "skips": test_names[test_name]["skips"], + "OS ID": os, + "ME State": "Enabled" if me_enabled else "Disabled", + "Dock": docking_stations[dock_idx], + "automation": test_names[test_name]["automation"], + } + ) + + +def full_test_name(test_row): + line = "" + line += f"{test_row['Test ID']}" + line += f" {test_row['Test Name']}" + line += f" ({oses[test_row['OS ID']]})" + line += f" (ME: {test_row['ME State']})" + line += f" ({test_row['Dock']})" + return line + + +robot_tests_lines = [] +for idx, row in enumerate(test_rows): + robot_tests_lines.append([]) + + robot_tests_lines[idx].append(f"{full_test_name(row)}\n") + documentation = row["doc"].splitlines() + robot_tests_lines[idx].append(f" [Documentation] {documentation[0]}\n") + if len(documentation) > 1: + for line in documentation[1:]: + robot_tests_lines[idx].append(f"{line}\n") + + for skip in row["skips"]: + robot_tests_lines[idx].append(f" Skip If {skip}\n") + + # Skips dependent on env/os ID + if row["OS ID"] == "301": + robot_tests_lines[idx].append( + " Skip If not ${TESTS_IN_WINDOWS_SUPPORT}\n" + ) + if row["OS ID"] == "201": + robot_tests_lines[idx].append(" Skip If not ${TESTS_IN_UBUNTU_SUPPORT}\n") + if row["OS ID"][0] == "2": + robot_tests_lines[idx].append( + f" Skip If '{os_id_variable_names[row['OS ID']]}' not in ${{TESTED_LINUX_DISTROS}}\n" + ) + + # call the generic keyword for that test case type + keyword_call = f"{row['Test Name'].title()} {os_id_variable_names[row['OS ID']]} {row['ME State']} {row['Dock']}\n" + robot_tests_lines[idx].append(f" {keyword_call}\n") + + if row["automation"] == "manual": + robot_tests_lines[idx] = ["# " + line for line in robot_tests_lines[idx]] + robot_tests_lines[idx].insert(0, "# Not automated\n") + +# Generate keywords +keywords = [] +for idx, test_name in enumerate(test_names.keys()): + keywords.append([]) + keywords[idx].append(f"{test_name.title()}\n") + keywords[idx].append( + " [Arguments] ${env_id} ${me_state} ${dock_name}\n" + ) + keywords[idx].append(" [Tags] robot:private\n") + + if test_names[test_name]["automation"] == "manual": + keywords[idx] = ["# " + line for line in keywords[idx]] + keywords[idx].insert(0, "# Not automated\n") + keywords[idx].append("\n") + +# save to files +with open("utc_test_file.robot", "w") as file: + for test in robot_tests_lines: + file.writelines(test) + +with open("utc_test_keywords.robot", "w") as file: + file.write("*** Keywords ***\n") + for kw in keywords: + file.writelines(kw) From 480fd169457be9c34de1958f990666e58f621c97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Tue, 8 Apr 2025 17:23:58 +0200 Subject: [PATCH 377/416] usb-type-c.robot: UTC test cases overhaul MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- .../usb-type-c-semiauto.robot | 556 --- dasharo-compatibility/usb-type-c.robot | 3784 +++++++++++++++-- 2 files changed, 3483 insertions(+), 857 deletions(-) delete mode 100644 dasharo-compatibility/usb-type-c-semiauto.robot diff --git a/dasharo-compatibility/usb-type-c-semiauto.robot b/dasharo-compatibility/usb-type-c-semiauto.robot deleted file mode 100644 index 7fd8008bd7..0000000000 --- a/dasharo-compatibility/usb-type-c-semiauto.robot +++ /dev/null @@ -1,556 +0,0 @@ -*** Settings *** -Library Collections -Library OperatingSystem -Library Process -Library String -Library Telnet timeout=20 seconds connection_timeout=120 seconds -Library SSHLibrary timeout=90 seconds -Library RequestsLibrary -# TODO: maybe have a single file to include if we need to include the same -# stuff in all test cases -Resource ../variables.robot -Resource ../keywords.robot -Resource ../keys.robot - -# TODO: -# - document which setup/teardown keywords to use and what are they doing -# - go threough them and make sure they are doing what the name suggest (not -# exactly the case right now) -Suite Setup Run Keywords -... Prepare Test Suite -... AND -... Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Docking station detect tests not supported -... AND -... Check If Platform Sleep Type Can Be Selected -Suite Teardown Run Keyword -... Log Out And Close Connection - - -*** Test Cases *** -UTC008.001 Docking station detection after coldboot (Ubuntu) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether he DUT properly detects the docking station - ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' UTC008.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC008.001 not supported - Docking Station Detection After Coldboot (Ubuntu) WL-UMD05 Pro Rev.E - -UTC009.001 Docking station detection after warmboot (Ubuntu) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether he DUT properly detects the docking station - ... after warmboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC009.001 not supported - Docking Station Detection After Warmboot (Ubuntu) WL-UMD05 Pro Rev.E - -UTC010.001 Docking station detection after reboot (Ubuntu) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC010.001 not supported - Docking Station Detection After Reboot (Ubuntu) WL-UMD05 Pro Rev.E - -UTC011.001 Docking station detection after suspend (Ubuntu) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.001 not supported - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.001 not supported - Docking Station Detection After Suspend (Ubuntu) WL-UMD05 Pro Rev.E - -UTC011.002 Docking station detection after suspend (Ubuntu) (S0ix) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.002 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.002 not supported - Set Platform Sleep Type S0ix - Docking Station Detection After Suspend (Ubuntu) WL-UMD05 Pro Rev.E S0ix - -UTC011.003 Docking station detection after suspend (Ubuntu) (S3) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.003 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.003 not supported - Set Platform Sleep Type S3 - Docking Station Detection After Suspend (Ubuntu) WL-UMD05 Pro Rev.E S3 - -UTC008.002 Docking station detection after coldboot (Ubuntu) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether he DUT properly detects the docking station - ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' UTC008.002 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC008.002 not supported - Docking Station Detection After Coldboot (Ubuntu) WL-UMD05 Pro Rev.C1 - -UTC009.002 Docking station detection after warmboot (Ubuntu) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether he DUT properly detects the docking station - ... after warmboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC009.002 not supported - Docking Station Detection After Warmboot (Ubuntu) WL-UMD05 Pro Rev.C1 - -UTC010.002 Docking station detection after reboot (Ubuntu) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC010.002 not supported - Docking Station Detection After Reboot (Ubuntu) WL-UMD05 Pro Rev.C1 - -UTC011.004 Docking station detection after suspend (Ubuntu) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.004 not supported - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.004 not supported - Docking Station Detection After Suspend (Ubuntu) WL-UMD05 Pro Rev.C1 - -UTC011.005 Docking station detection after suspend (Ubuntu) (S0ix) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.005 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.005 not supported - Set Platform Sleep Type S0ix - Docking Station Detection After Suspend (Ubuntu) WL-UMD05 Pro Rev.C1 S0ix - -UTC011.006 Docking station detection after suspend (Ubuntu) (S3) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.006 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.006 not supported - Set Platform Sleep Type S3 - Docking Station Detection After Suspend (Ubuntu) WL-UMD05 Pro Rev.C1 S3 - -UTC008.003 Docking station detection after coldboot (Ubuntu) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether he DUT properly detects the docking station - ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' UTC008.003 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC008.003 not supported - Docking Station Detection After Coldboot (Ubuntu) WL-UG69PD2 Rev.A1 - -UTC009.003 Docking station detection after warmboot (Ubuntu) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether he DUT properly detects the docking station - ... after warmboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC009.003 not supported - Docking Station Detection After Warmboot (Ubuntu) WL-UG69PD2 Rev.A1 - -UTC010.003 Docking station detection after reboot (Ubuntu) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC010.003 not supported - Docking Station Detection After Reboot (Ubuntu) WL-UG69PD2 Rev.A1 - -UTC011.007 Docking station detection after suspend (Ubuntu) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.007 not supported - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.007 not supported - Docking Station Detection After Suspend (Ubuntu) WL-UG69PD2 Rev.A1 - -UTC011.008 Docking station detection after suspend (Ubuntu) (S0ix) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.008 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.008 not supported - Set Platform Sleep Type S0ix - Docking Station Detection After Suspend (Ubuntu) WL-UG69PD2 Rev.A1 S0ix - -UTC011.009 Docking station detection after suspend (Ubuntu) (S3) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.009 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.009 not supported - Set Platform Sleep Type S3 - Docking Station Detection After Suspend (Ubuntu) WL-UG69PD2 Rev.A1 S3 - -UTC022.001 Docking station detection after coldboot then hotplug (Ubuntu) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether he DUT properly detects the docking station - ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' UTC022.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC022.001 not supported - Docking Station Detection After Coldboot Then Hotplug (Ubuntu) WL-UMD05 Pro Rev.E - -UTC023.001 Docking station detection after warmboot then hotplug (Ubuntu) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether he DUT properly detects the docking station - ... after warmboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC023.001 not supported - Docking Station Detection After Warmboot Then Hotplug (Ubuntu) WL-UMD05 Pro Rev.E - -UTC024.001 Docking station detection after reboot then hotplug (Ubuntu) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC023.001 not supported - Docking Station Detection After Reboot Then Hotplug (Ubuntu) WL-UMD05 Pro Rev.E - -UTC025.001 Docking station detection after suspend then hotplug (Ubuntu) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC025.001 not supported - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC025.001 not supported - Pause Execution In Console Please make sure the docking station is disconnected and press ENTER - Docking Station Detection After Suspend Then Hotplug (Ubuntu) WL-UMD05 Pro Rev.E - -UTC025.002 Docking station detection after suspend then hotplug (Ubuntu) (S0ix) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.002 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.002 not supported - Pause Execution In Console Please make sure the docking station is disconnected and press ENTER - Set Platform Sleep Type S0ix - Docking Station Detection After Suspend Then Hotplug (Ubuntu) WL-UMD05 Pro Rev.E S0ix - -UTC025.003 Docking station detection after suspend then hotplug (Ubuntu) (S3) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.003 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.003 not supported - Pause Execution In Console Please make sure the docking station is disconnected and press ENTER - Set Platform Sleep Type S3 - Docking Station Detection After Suspend Then Hotplug (Ubuntu) WL-UMD05 Pro Rev.E S3 - -UTC022.002 Docking station detection after coldboot then hotplug (Ubuntu) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether he DUT properly detects the docking station - ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' Coldboot automatic tests not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC008.002 not supported - Docking Station Detection After Coldboot Then Hotplug (Ubuntu) WL-UMD05 Pro Rev.C1 - -UTC023.002 Docking station detection after warmboot then hotplug (Ubuntu) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether he DUT properly detects the docking station - ... after warmboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC009.002 not supported - Docking Station Detection After Warmboot Then Hotplug (Ubuntu) WL-UMD05 Pro Rev.C1 - -UTC024.002 Docking station detection after reboot then hotplug (Ubuntu) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC010.002 not supported - Docking Station Detection After Reboot Then Hotplug (Ubuntu) WL-UMD05 Pro Rev.C1 - -UTC025.004 Docking station detection after suspend then hotplug (Ubuntu) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.004 not supported - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.004 not supported - Pause Execution In Console Please make sure the docking station is disconnected and press ENTER - Docking Station Detection After Suspend Then Hotplug (Ubuntu) WL-UMD05 Pro Rev.C1 - -UTC025.005 Docking station detection after suspend then hotplug (Ubuntu) (S0ix) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.005 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.005 not supported - Pause Execution In Console Please make sure the docking station is disconnected and press ENTER - Set Platform Sleep Type S0ix - Docking Station Detection After Suspend Then Hotplug (Ubuntu) WL-UMD05 Pro Rev.C1 S0ix - -UTC025.006 Docking station detection after suspend then hotplug (Ubuntu) (S3) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.006 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.006 not supported - Pause Execution In Console Please make sure the docking station is disconnected and press ENTER - Set Platform Sleep Type S3 - Docking Station Detection After Suspend Then Hotplug (Ubuntu) WL-UMD05 Pro Rev.C1 S3 - -UTC022.003 Docking station detection after coldboot then hotplug (Ubuntu) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether he DUT properly detects the docking station - ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' Coldboot automatic tests not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC008.003 not supported - Docking Station Detection After Coldboot Then Hotplug (Ubuntu) WL-UG69PD2 Rev.A1 - -UTC023.003 Docking station detection after warmboot then hotplug (Ubunt) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether he DUT properly detects the docking station - ... after warmboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC009.003 not supported - Docking Station Detection After Warmboot Then Hotplug (Ubuntu) WL-UG69PD2 Rev.A1 - -UTC024.003 Docking station detection after reboot then hotplug (Ubuntu) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC010.003 not supported - Docking Station Detection After Reboot Then Hotplug (Ubuntu) WL-UG69PD2 Rev.A1 - -UTC025.007 Docking station detection after suspend then hotplug (Ubuntu) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.007 not supported - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.007 not supported - Pause Execution In Console Please make sure the docking station is disconnected and press ENTER - Docking Station Detection After Suspend Then Hotplug (Ubuntu) WL-UG69PD2 Rev.A1 - -UTC025.008 Docking station detection after suspend then hotplug (Ubuntu) (S0ix) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.008 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.008 not supported - Pause Execution In Console Please make sure the docking station is disconnected and press ENTER - Set Platform Sleep Type S0ix - Docking Station Detection After Suspend Then Hotplug (Ubuntu) WL-UG69PD2 Rev.A1 S0ix - -UTC025.009 Docking station detection after suspend then hotplug (Ubuntu) (S3) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT properly detects the docking station - ... after reboot. - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC011.009 not supported - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC011.009 not supported - Pause Execution In Console Please make sure the docking station is disconnected and press ENTER - Set Platform Sleep Type S3 - Docking Station Detection After Suspend Then Hotplug (Ubuntu) WL-UG69PD2 Rev.A1 S3 - - -*** Keywords *** -Docking Station Detection After Coldboot (Ubuntu) - [Arguments] ${docking_station_model} - Skip If '${POWER_CTRL}' == 'none' Coldboot automatic tests not supported - Pause Execution In Console - ... Please make sure the docking station connected is ${docking_station_model} and press ENTER - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${out_after_reboot}= Execute Linux Command uptime --since - Detect Docking Station In Linux ${docking_station_model} - Set Global Variable ${FAILED_DETECTION} 0 - FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_COLDBOOT_ITERATIONS} - Log To Console Cold boot iteration ${iteration+1}/${STABILITY_DETECTION_COLDBOOT_ITERATIONS} - TRY - ${out_before_reboot}= Execute Linux Command uptime --since - WHILE '${out_before_reboot}' == '${out_after_reboot}' - Power Cycle On - Login To Linux - Switch To Root User - ${out_after_reboot}= Execute Linux Command uptime --since - Detect Docking Station In Linux ${docking_station_model} - END - EXCEPT - ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 - END - END - IF '${failed_detection}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' - FAIL \n ${failed_detection} iterations failed. - END - Log To Console \nAll iterations passed. - -Docking Station Detection After Warmboot (Ubuntu) - [Arguments] ${docking_station_model} - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${out_after_reboot}= Execute Linux Command uptime --since - Detect Docking Station In Linux ${docking_station_model} - Set Global Variable ${FAILED_DETECTION} 0 - FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_WARMBOOT_ITERATIONS} - Log To Console Warm boot iteration ${iteration+1}/${STABILITY_DETECTION_WARMBOOT_ITERATIONS} - TRY - ${out_before_reboot}= Execute Linux Command uptime --since - WHILE '${out_before_reboot}' == '${out_after_reboot}' - Perform Warmboot Using Rtcwake - Login To Linux - Switch To Root User - ${out_after_reboot}= Execute Linux Command uptime --since - Detect Docking Station In Linux ${docking_station_model} - END - EXCEPT - ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 - END - END - IF '${failed_detection}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' - FAIL \n ${failed_detection} iterations failed. - END - Log To Console \nAll iterations passed. - -Docking Station Detection After Reboot (Ubuntu) - [Arguments] ${docking_station_model} - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Detect Docking Station In Linux ${docking_station_model} - Set Global Variable ${FAILED_DETECTION} 0 - FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} - Log To Console Reboot iteration ${iteration+1}/${STABILITY_DETECTION_REBOOT_ITERATIONS} - TRY - Execute Reboot Command - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Detect Docking Station In Linux ${docking_station_model} - EXCEPT - ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 - END - END - IF '${failed_detection}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' - FAIL \n ${failed_detection} iterations failed. - END - Log To Console \nAll iterations passed. - -Docking Station Detection After Suspend (Ubuntu) - [Arguments] ${docking_station_model} ${platform_sleep_type}=${EMPTY} - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} - Switch To Root User - Detect Docking Station In Linux ${docking_station_model} - Set Global Variable ${FAILED_DETECTION} 0 - FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_SUSPEND_ITERATIONS} - Log To Console - ... Suspend ${platform_sleep_type} iteration ${iteration+1}/${STABILITY_DETECTION_SUSPEND_ITERATIONS} - Perform Suspend Test Using FWTS - TRY - Detect Docking Station In Linux ${docking_station_model} - EXCEPT message - Evaluate ${FAILED_DETECTION}= ${FAILED_DETECTION}+1 - END - END - IF '${FAILED_DETECTION}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' - FAIL \n ${FAILED_DETECTION} iterations failed. - END - Log To Console \nAll iterations passed. - -Pause Execution In Console - [Documentation] Pauses execution until user press ENTER. - [Arguments] ${message}= Press ENTER to continue... - Run notify-send "Please execute Manual Step in ${TEST_NAME}" # GUI message - Run echo -ne '\007' # ASCII BEL (\007) - Log To Console ${message} - Run read ignore - Log To Console Manual step confirmed - -Docking Station Detection After Coldboot Then Hotplug (Ubuntu) - [Arguments] ${docking_station_model} - Skip If '${POWER_CTRL}' == 'none' Coldboot automatic tests not supported - Pause Execution In Console Please make sure the docking station is disconnected and press ENTER - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${out_after_reboot}= Execute Linux Command uptime --since - ${out_before_reboot}= Execute Linux Command uptime --since - Run Keyword And Expect Error * does not contain * Detect Docking Station In Linux ${docking_station_model} - Set Global Variable ${FAILED_DETECTION} 0 - WHILE '${out_before_reboot}' == '${out_after_reboot}' - Log To Console Coldboot the DUT manually - # coldboot - msi ./sonoff, protectli RteCtrl -rel, novacustom ??? - Pause Execution In Console Do power cut-off, reconnect and press ENTER. - Login To Linux - Switch To Root User - ${out_after_reboot}= Execute Linux Command uptime --since - Run Keyword And Expect Error - ... * does not contain * - ... Detect Docking Station In Linux - ... ${docking_station_model} - END - FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_COLDBOOT_ITERATIONS} - Log To Console Hotplug after Cold boot iteration ${iteration+1}/${STABILITY_DETECTION_COLDBOOT_ITERATIONS} - TRY - Pause Execution In Console Connect docking station ${docking_station_model} and press ENTER. - Detect Docking Station In Linux ${docking_station_model} - Pause Execution In Console Disconnect docking station ${docking_station_model} and press ENTER. - Run Keyword And Expect Error - ... * does not contain * - ... Detect Docking Station In Linux - ... ${docking_station_model} - EXCEPT - ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 - END - END - IF '${failed_detection}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' - FAIL \n ${failed_detection} iterations failed. - END - Log To Console \nAll iterations passed. - -Docking Station Detection After Warmboot Then Hotplug (Ubuntu) - [Arguments] ${docking_station_model} - Pause Execution In Console Please make sure the docking station is disconnected and press ENTER - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${out_after_reboot}= Execute Linux Command uptime --since - ${out_before_reboot}= Execute Linux Command uptime --since - Run Keyword And Expect Error * does not contain * Detect Docking Station In Linux ${docking_station_model} - Set Global Variable ${FAILED_DETECTION} 0 - WHILE '${out_before_reboot}' == '${out_after_reboot}' - Perform Warmboot Using Rtcwake - Pause Execution In Console Press power button on platform and press ENTER. - Login To Linux - Switch To Root User - ${out_after_reboot}= Execute Linux Command uptime --since - Run Keyword And Expect Error - ... * does not contain * - ... Detect Docking Station In Linux - ... ${docking_station_model} - END - FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_WARMBOOT_ITERATIONS} - Log To Console Hotplug after Warm boot iteration ${iteration+1}/${STABILITY_DETECTION_WARMBOOT_ITERATIONS} - TRY - Pause Execution In Console Connect docking station ${docking_station_model} and press ENTER. - Detect Docking Station In Linux ${docking_station_model} - Pause Execution In Console Disconnect docking station ${docking_station_model} and press ENTER. - Run Keyword And Expect Error - ... * does not contain * - ... Detect Docking Station In Linux - ... ${docking_station_model} - EXCEPT - ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 - END - END - IF '${failed_detection}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' - FAIL \n ${failed_detection} iterations failed. - END - Log To Console \nAll iterations passed. - -Docking Station Detection After Reboot Then Hotplug (Ubuntu) - [Arguments] ${docking_station_model} - Pause Execution In Console Please make sure the docking station is disconnected and press ENTER - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Run Keyword And Expect Error * does not contain * Detect Docking Station In Linux ${docking_station_model} - Set Global Variable ${FAILED_DETECTION} 0 - Execute Reboot Command - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} - Log To Console Hotplug after Reboot iteration ${iteration+1}/${STABILITY_DETECTION_REBOOT_ITERATIONS} - TRY - Pause Execution In Console Connect docking station ${docking_station_model} and press ENTER. - Detect Docking Station In Linux ${docking_station_model} - Pause Execution In Console Disconnect docking station ${docking_station_model} and press ENTER. - Run Keyword And Expect Error - ... * does not contain * - ... Detect Docking Station In Linux - ... ${docking_station_model} - EXCEPT - ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 - END - END - IF '${failed_detection}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' - FAIL \n ${failed_detection} iterations failed. - END - Log To Console \nAll iterations passed. - -Docking Station Detection After Suspend Then Hotplug (Ubuntu) - [Arguments] ${docking_station_model} ${platform_sleep_type}=${EMPTY} - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} - Switch To Root User - Run Keyword And Expect Error * does not contain * Detect Docking Station In Linux ${docking_station_model} - Set Global Variable ${FAILED_DETECTION} 0 - Perform Suspend Test Using FWTS - FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_SUSPEND_ITERATIONS} - Log To Console - ... Hotplug after Suspend ${platform_sleep_type} iteration ${iteration+1}/${STABILITY_DETECTION_SUSPEND_ITERATIONS} - TRY - Pause Execution In Console Connect docking station ${docking_station_model} and press ENTER. - Detect Docking Station In Linux ${docking_station_model} - Pause Execution In Console Disconnect docking station ${docking_station_model} and press ENTER. - Run Keyword And Expect Error - ... * does not contain * - ... Detect Docking Station In Linux - ... ${docking_station_model} - EXCEPT message - Evaluate ${FAILED_DETECTION}= ${FAILED_DETECTION}+1 - END - END - IF '${FAILED_DETECTION}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' - FAIL \n ${FAILED_DETECTION} iterations failed. - END - Log To Console \nAll iterations passed. diff --git a/dasharo-compatibility/usb-type-c.robot b/dasharo-compatibility/usb-type-c.robot index 8bbdeca1e1..aa937f5ecd 100644 --- a/dasharo-compatibility/usb-type-c.robot +++ b/dasharo-compatibility/usb-type-c.robot @@ -1,356 +1,3538 @@ +*** Comments *** +# robocop: disable=too-many-test-cases + + *** Settings *** -Library Collections -Library OperatingSystem -Library Process -Library String -Library Telnet timeout=20 seconds connection_timeout=120 seconds -Library SSHLibrary timeout=90 seconds -Library RequestsLibrary -# TODO: maybe have a single file to include if we need to include the same -# stuff in all test cases -Resource ../variables.robot Resource ../keywords.robot -Resource ../keys.robot -Resource ../lib/me.robot -Resource ../lib/docks.robot +Resource ../lib/utc.robot # TODO: # - document which setup/teardown keywords to use and what are they doing # - go threough them and make sure they are doing what the name suggest (not # exactly the case right now) -Suite Setup Run Keyword +Suite Setup Run Keywords ... Prepare Test Suite +... AND +... Check If Platform Sleep Type Can Be Selected +... AND +... Prepare UTC Test Suite Suite Teardown Run Keyword ... Log Out And Close Connection *** Test Cases *** -UTC004.001 USB Type-C Display output (semi-automatic) +# Not automated +# UTC101.001 USB Type-A charging capability (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test verifies that the USB-A ports are able to provide +# ... charging to a connected smartphone. +# Usb Type-A Charging Capability 001 Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC103.001 Thunderbolt 4 USB Type-C power output (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test verifies that the Thunderbolt 4 port is able +# ... to provide charging to a USB Type-C accessory. +# Thunderbolt 4 Usb Type-C Power Output 001 Enabled WL-UMD05 Pro Rev.E + +UTC115.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Usb Type-C Docking Station Usb Devices Recognition 001 Enabled WL-UMD05 Pro Rev.E + +UTC117.001 USB Type-C docking station USB keyboard (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Usb Type-C Docking Station Usb Keyboard 001 Enabled WL-UMD05 Pro Rev.E + +UTC105.201 USB Type-C PD power input (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC107.201 USB Type-C Display output (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC004.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC004.001 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${out}= List Devices In Linux usb - Should Contain ${out} ${CLEVO_USB_C_HUB} - Exit From Root User - -UTC004.005 USB Type-C Display output With Me Disabled(semi-automatic) - [Documentation] Check whether the DUT can detect the USB Type-C hub - ... when Intel ME is disabled - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC004.002 not supported - Skip If not ${DASHARO_INTEL_ME_MENU_SUPPORT} Dasharo Intel ME menu not supported - Set UEFI Option MeMode Disabled (HAP) - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${result}= Check ME Out - Should Not Be Equal As Strings ${result} Enabled - ${out}= List Devices In Linux usb - Should Contain ${out} ${CLEVO_USB_C_HUB} - Exit From Root User - -UTC004.006 USB Type-C Display output With Me Enabled (semi-automatic) - [Documentation] Check whether the DUT can detect the USB Type-C hub - ... when Intel ME is enabled - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} TMD004.003 not supported - Skip If not ${DASHARO_INTEL_ME_MENU_SUPPORT} Dasharo Intel ME menu not supported - Set UEFI Option MeMode Enabled - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${result}= Check ME Out - Should Be Equal As Strings ${result} Enabled - ${out}= List Devices In Linux usb - Should Contain ${out} ${CLEVO_USB_C_HUB} - Exit From Root User - -UTC005.001 - Docking station HDMI display in OS (DP Alt mode) (Ubuntu) - [Documentation] This test aims to verify that the display connected with - ... the HDMI cable to the docking station is correctly - ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} UTC005.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC005.001 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Check PCON On MST Hub In Linux - Exit From Root User - -UTC005.002 - Docking station HDMI display in OS (DP Alt mode) (Windows) - [Documentation] This test aims to verify that the display connected with - ... the HDMI cable to the docking station is correctly - ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} UTC005.002 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC005.002 not supported - Power On - Login To Windows - Check Docking Station HDMI Windows + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Display Output ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E -UTC005.003 - Docking station HDMI display in OS (Ubuntu) +UTC109.201 USB Type-C docking station HDMI display (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} UTC005.003 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC005.003 not supported - Power On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Check Display Port On Hub In Linux HDMI - Exit From Root User - -UTC005.005 USB Type-C docking station HDMI display with ME disabled(Ubuntu) - [Documentation] This test aims to verify that the display connected with - ... the HDMI cable to the docking station is correctly - ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} UTC005.005 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC005.005 not supported - Set UEFI Option MeMode Disabled (HAP) - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${result}= Check ME Out - Should Not Be Equal As Strings ${result} Enabled - Check Display Port On Hub In Linux HDMI - Exit From Root User - -UTC005.007 USB Type-C docking station HDMI display with ME enabled(Ubuntu) - [Documentation] This test aims to verify that the display connected with - ... the HDMI cable to the docking station is correctly - ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} UTC005.007 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC005.007 not supported - Set UEFI Option MeMode Enabled - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${result}= Check ME Out - Should Be Equal As Strings ${result} Enabled - Check Display Port On Hub In Linux HDMI - Exit From Root User + Skip If not ${DOCKING_STATION_HDMI} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E -UTC006.001 - Docking station DP display in OS (DP Alt mode) (Ubuntu) +UTC111.201 USB Type-C docking station DP display (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC006.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC006.001 not supported - Power Cycle On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Check DP Port On MST Hub In Linux - Exit From Root User + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Dp Display ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC113.201 USB Type-C docking station Triple display (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Triple Display ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC115.201 USB Type-C docking station USB devices recognition (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC117.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC119.201 USB Type-C docking station upload 1GB file on USB storage (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC121.201 USB Type-C docking station Ethernet connection (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC123.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC125.201 USB Type-C docking station audio playback (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC127.201 USB Type-C docking station audio capture (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC129.201 USB Type-C docking station SD Card reader detection (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC131.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC133.201 USB Type-C PD current limiting (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Pd Current Limiting ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC135.201 Docking station detection after coldboot (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether he DUT properly detects the docking station + ... after coldboot. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E -UTC006.002 - Docking station DP display in OS (DP Alt mode) (Windows) +UTC137.201 Docking station detection after warmboot (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether he DUT properly detects the docking station + ... after warmboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC139.201 Docking station detection after reboot (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC141.201 Docking station detection after suspend (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC143.201 Docking station detection after suspend (S0ix) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend '${POWER_CTRL}' == 'none'(S0ix). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC145.201 Docking station detection after suspend (S3) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S3) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC147.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after coldboot then hotplug. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC149.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after warmboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC151.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC153.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend then hotplug. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC155.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S0ix) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC157.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E + +UTC105.202 USB Type-C PD power input (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC107.202 USB Type-C Display output (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Display Output ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC109.202 USB Type-C docking station HDMI display (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with - ... the DisplayPort cable to the docking station is correctly + ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC006.002 not supported - Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC006.002 not supported - Power On - Login To Windows - Check Docking Station DP Windows + Skip If not ${DOCKING_STATION_HDMI} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E -UTC006.003 - Docking station DP display in OS (Ubuntu) +UTC111.202 USB Type-C docking station DP display (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC006.003 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC006.003 not supported - Power Cycle On - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - Check Display Port On Hub In Linux DP - Exit From Root User + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Dp Display ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC113.202 USB Type-C docking station Triple display (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Triple Display ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC115.202 USB Type-C docking station USB devices recognition (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC117.202 USB Type-C docking station USB keyboard (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC119.202 USB Type-C docking station upload 1GB file on USB storage (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC121.202 USB Type-C docking station Ethernet connection (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC123.202 USB Type-C docking station audio recognition (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC125.202 USB Type-C docking station audio playback (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC127.202 USB Type-C docking station audio capture (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC129.202 USB Type-C docking station SD Card reader detection (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC131.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC133.202 USB Type-C PD current limiting (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Pd Current Limiting ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC135.202 Docking station detection after coldboot (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether he DUT properly detects the docking station + ... after coldboot. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC137.202 Docking station detection after warmboot (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether he DUT properly detects the docking station + ... after warmboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC139.202 Docking station detection after reboot (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC141.202 Docking station detection after suspend (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC143.202 Docking station detection after suspend (S0ix) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend '${POWER_CTRL}' == 'none'(S0ix). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC145.202 Docking station detection after suspend (S3) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S3) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC147.202 Docking station detection after coldboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after coldboot then hotplug. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC149.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after warmboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC151.202 Docking station detection after reboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC153.202 Docking station detection after suspend then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend then hotplug. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC155.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S0ix) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E -UTC006.005 USB Type-C docking station DP display with ME disabled(Ubuntu) +UTC157.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E + +UTC105.301 USB Type-C PD power input (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E + +UTC107.301 USB Type-C Display output (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Display Output ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E + +UTC109.301 USB Type-C docking station HDMI display (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC006.005 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC006.005 not supported - Set UEFI Option MeMode Disabled (HAP) - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${result}= Check ME Out - Should Not Be Equal As Strings ${result} Enabled - Check Display Port On Hub In Linux DP - Exit From Root User + Skip If not ${DOCKING_STATION_HDMI} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E -UTC006.007 USB Type-C docking station DP display with ME enabled(Ubuntu) +UTC111.301 USB Type-C docking station DP display (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC006.007 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC006.007 not supported - Set UEFI Option MeMode Enabled - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - ${result}= Check ME Out - Should Be Equal As Strings ${result} Enabled - Check Display Port On Hub In Linux DP - Exit From Root User + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Dp Display ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E -UTC012.002 USB devices recognition (Ubuntu) - [Documentation] Check whether the external USB devices connected to the - ... docking station are detected correctly in Linux OS. - Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC012.002 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC012.002 not supported - Power On - Login To Linux - Switch To Root User - ${out}= List Devices In Linux usb - Should Contain ${out} SanDisk - Exit From Root User - -UTC012.003 USB devices recognition (Windows) +# Not automated +# UTC113.301 USB Type-C docking station Triple display (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Triple Display ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E + +UTC115.301 USB Type-C docking station USB devices recognition (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB devices connected to the - ... docking station are detected correctly in Windows OS. - Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC012.003 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC012.003 not supported - Power On - Login To Windows - ${out}= Execute Command In Terminal Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' } - Should Contain ${out} OK${SPACE*9}DiskDrive${SPACE*8}USB${SPACE*2}SanDisk - -UTC013.002 USB keyboard detection (Ubuntu) - [Documentation] Check whether the external USB keyboard connected to the - ... docking station is detected correctly by the Linux OS. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC013.002 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC013.002 not supported - Power On - Login To Linux - Switch To Root User - ${out}= List Devices In Linux usb - Should Contain ${out} ${DEVICE_USB_KEYBOARD} - Exit From Root User - -UTC013.003 USB keyboard detection (Windows) + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E + +UTC117.301 USB Type-C docking station USB keyboard (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB keyboard connected to the - ... docking station is detected correctly by the Windows OS. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC013.003 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC013.003 not supported - Power On - Login To Windows - ${out}= Execute Command In Terminal Get-CimInstance win32_KEYBOARD - Should Contain ${out} Description${SPACE*17}: USB Input Device strip_spaces=True - -UTC014.001 Ethernet connection (Ubuntu) - [Documentation] This test aims to verify that the connection to internet - ... via docking station's Ethernet port can be obtained on - ... Ubuntu 22.04. - Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC014.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC014.001 not supported - Power On - Login To Linux - Switch To Root User - Check Internet Connection On Linux - Exit From Root User - -UTC014.002 Ethernet connection (Windows) + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC119.301 USB Type-C docking station upload 1GB file on USB storage (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E + +UTC121.301 USB Type-C docking station Ethernet connection (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on - ... Windows 11. - Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC014.002 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC014.002 not supported - Power On - Login To Windows - Check Internet Connection On Windows - -UTC015.001 Audio recognition (Ubuntu) + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E + +UTC123.301 USB Type-C docking station audio recognition (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the external headset is - ... properly recognized after plugging in the 3.5 mm jack into the - ... docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC015.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC015.001 not supported - Power On - Login To Linux - Switch To Root User - ${out}= List Devices In Linux usb - Should Contain ${out} ${EXTERNAL_HEADSET} - Exit From Root User - -UTC18.001 Docking Station SD Card reader detection (Ubuntu) + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC125.301 USB Type-C docking station audio playback (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC127.301 USB Type-C docking station audio capture (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E + +UTC129.301 USB Type-C docking station SD Card reader detection (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC18.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC18.001 not supported - Power On - Login To Linux - Switch To Root User - ${disks}= Identify Disks In Linux - Should Match str(${disks}) pattern=*SD* - Exit From Root User - -UTC018.002 Docking Station SD Card reader detection (Windows) + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E + +UTC131.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC133.301 USB Type-C PD current limiting (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Pd Current Limiting ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC102.001 USB Type-A charging capability (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test verifies that the USB-A ports are able to provide +# ... charging to a connected smartphone. +# Usb Type-A Charging Capability 001 Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC104.001 Thunderbolt 4 USB Type-C power output (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test verifies that the Thunderbolt 4 port is able +# ... to provide charging to a USB Type-C accessory. +# Thunderbolt 4 Usb Type-C Power Output 001 Disabled WL-UMD05 Pro Rev.E + +UTC116.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Usb Type-C Docking Station Usb Devices Recognition 001 Disabled WL-UMD05 Pro Rev.E + +UTC118.001 USB Type-C docking station USB keyboard (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Usb Type-C Docking Station Usb Keyboard 001 Disabled WL-UMD05 Pro Rev.E + +UTC106.201 USB Type-C PD power input (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC108.201 USB Type-C Display output (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Display Output ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC110.201 USB Type-C docking station HDMI display (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC112.201 USB Type-C docking station DP display (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Dp Display ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC114.201 USB Type-C docking station Triple display (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Triple Display ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC116.201 USB Type-C docking station USB devices recognition (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC118.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC120.201 USB Type-C docking station upload 1GB file on USB storage (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC122.201 USB Type-C docking station Ethernet connection (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC124.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC126.201 USB Type-C docking station audio playback (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC128.201 USB Type-C docking station audio capture (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC130.201 USB Type-C docking station SD Card reader detection (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC018.001 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC018.001 not supported - Power On - Login To Windows - ${out}= Execute Command In Terminal - ... Get-PnpDevice -Status "OK" -Class "DiskDrive" | ForEach-Object { $_.FriendlyName } - @{lines}= Split To Lines ${out} - FOR ${disk} IN @{lines} - ${disk}= Replace String Using Regexp ${disk} ${SPACE}+ ${SPACE} - TRY - Should Contain Any ${disk} ${DOCKING_STATION_MODEL_1} ${DOCKING_STATION_MODEL_2} - EXCEPT - Log ${disk} is not SD Card - END - END - -UTC019.001 Docking Station SD Card read/write (Ubuntu) + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC132.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC019.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC019.001 not supported - Power On - Login To Linux - Switch To Root User - ${path}= Identify Path To SD Card In Linux - FOR ${disk} IN @{path} - Check Read Write To External Drive In Linux ${disk} - END - Exit From Root User - -UTC019.002 Docking Station SD Card read/write (Windows) + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC134.201 USB Type-C PD current limiting (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Pd Current Limiting ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC136.201 Docking station detection after coldboot (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether he DUT properly detects the docking station + ... after coldboot. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC138.201 Docking station detection after warmboot (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether he DUT properly detects the docking station + ... after warmboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC140.201 Docking station detection after reboot (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC142.201 Docking station detection after suspend (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC144.201 Docking station detection after suspend (S0ix) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend '${POWER_CTRL}' == 'none'(S0ix). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC146.201 Docking station detection after suspend (S3) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S3) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC148.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after coldboot then hotplug. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC150.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after warmboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC152.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC154.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend then hotplug. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC156.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S0ix) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC158.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E + +UTC106.202 USB Type-C PD power input (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC108.202 USB Type-C Display output (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Display Output ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC110.202 USB Type-C docking station HDMI display (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC112.202 USB Type-C docking station DP display (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Dp Display ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC114.202 USB Type-C docking station Triple display (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Triple Display ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC116.202 USB Type-C docking station USB devices recognition (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC118.202 USB Type-C docking station USB keyboard (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC120.202 USB Type-C docking station upload 1GB file on USB storage (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC122.202 USB Type-C docking station Ethernet connection (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC124.202 USB Type-C docking station audio recognition (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC126.202 USB Type-C docking station audio playback (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC128.202 USB Type-C docking station audio capture (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC130.202 USB Type-C docking station SD Card reader detection (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC132.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC019.001 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC019.001 not supported - Power On - Login To Windows - ${drive_letter}= Identify Path To SD Card In Windows - Check Read Write To External Drive In Windows ${drive_letter} - -UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC134.202 USB Type-C PD current limiting (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Pd Current Limiting ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC136.202 Docking station detection after coldboot (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether he DUT properly detects the docking station + ... after coldboot. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC138.202 Docking station detection after warmboot (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether he DUT properly detects the docking station + ... after warmboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC140.202 Docking station detection after reboot (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC142.202 Docking station detection after suspend (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC144.202 Docking station detection after suspend (S0ix) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend '${POWER_CTRL}' == 'none'(S0ix). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC146.202 Docking station detection after suspend (S3) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S3) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC148.202 Docking station detection after coldboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after coldboot then hotplug. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC150.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after warmboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC152.202 Docking station detection after reboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC154.202 Docking station detection after suspend then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend then hotplug. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC156.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S0ix) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC158.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E + +UTC106.301 USB Type-C PD power input (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT can be charged using a ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port. - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC021.001 not supported - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC021.001 not supported - Power On - Login To Linux - Switch To Root User - Check Charging State In Linux - Exit From Root User - -UTC021.002 USB Type-C laptop charging (Windows) + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +UTC108.301 USB Type-C Display output (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Display Output ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +UTC110.301 USB Type-C docking station HDMI display (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +UTC112.301 USB Type-C docking station DP display (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Dp Display ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC114.301 USB Type-C docking station Triple display (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Triple Display ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +UTC116.301 USB Type-C docking station USB devices recognition (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +UTC118.301 USB Type-C docking station USB keyboard (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC120.301 USB Type-C docking station upload 1GB file on USB storage (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +UTC122.301 USB Type-C docking station Ethernet connection (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +UTC124.301 USB Type-C docking station audio recognition (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC126.301 USB Type-C docking station audio playback (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC128.301 USB Type-C docking station audio capture (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +UTC130.301 USB Type-C docking station SD Card reader detection (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +UTC132.301 USB Type-C docking station SD Card read/write (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC134.301 USB Type-C PD current limiting (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Pd Current Limiting ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E + +# Not automated +# UTC201.001 USB Type-A charging capability (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test verifies that the USB-A ports are able to provide +# ... charging to a connected smartphone. +# Usb Type-A Charging Capability 001 Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC203.001 Thunderbolt 4 USB Type-C power output (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test verifies that the Thunderbolt 4 port is able +# ... to provide charging to a USB Type-C accessory. +# Thunderbolt 4 Usb Type-C Power Output 001 Enabled WL-UMD05 Pro Rev.C1 + +UTC215.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Usb Type-C Docking Station Usb Devices Recognition 001 Enabled WL-UMD05 Pro Rev.C1 + +UTC217.001 USB Type-C docking station USB keyboard (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Usb Type-C Docking Station Usb Keyboard 001 Enabled WL-UMD05 Pro Rev.C1 + +UTC205.201 USB Type-C PD power input (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT can be charged using a ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port. - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC021.002 not supported - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC021.002 not supported - Power On - Login To Windows - Check Charging State In Windows + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC207.201 USB Type-C Display output (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Display Output ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC209.201 USB Type-C docking station HDMI display (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC211.201 USB Type-C docking station DP display (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Dp Display ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC213.201 USB Type-C docking station Triple display (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Triple Display ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC215.201 USB Type-C docking station USB devices recognition (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC217.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC219.201 USB Type-C docking station upload 1GB file on USB storage (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC221.201 USB Type-C docking station Ethernet connection (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC223.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC225.201 USB Type-C docking station audio playback (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC227.201 USB Type-C docking station audio capture (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC229.201 USB Type-C docking station SD Card reader detection (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC231.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC233.201 USB Type-C PD current limiting (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Pd Current Limiting ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC235.201 Docking station detection after coldboot (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether he DUT properly detects the docking station + ... after coldboot. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC237.201 Docking station detection after warmboot (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether he DUT properly detects the docking station + ... after warmboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC239.201 Docking station detection after reboot (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC241.201 Docking station detection after suspend (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC243.201 Docking station detection after suspend (S0ix) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend '${POWER_CTRL}' == 'none'(S0ix). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC245.201 Docking station detection after suspend (S3) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S3) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC247.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after coldboot then hotplug. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC249.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after warmboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC251.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC253.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend then hotplug. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC255.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S0ix) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC257.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 + +UTC205.202 USB Type-C PD power input (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC207.202 USB Type-C Display output (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Display Output ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC209.202 USB Type-C docking station HDMI display (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC211.202 USB Type-C docking station DP display (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Dp Display ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC213.202 USB Type-C docking station Triple display (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Triple Display ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC215.202 USB Type-C docking station USB devices recognition (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC217.202 USB Type-C docking station USB keyboard (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC219.202 USB Type-C docking station upload 1GB file on USB storage (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC221.202 USB Type-C docking station Ethernet connection (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC223.202 USB Type-C docking station audio recognition (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC225.202 USB Type-C docking station audio playback (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC227.202 USB Type-C docking station audio capture (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC229.202 USB Type-C docking station SD Card reader detection (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC231.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC233.202 USB Type-C PD current limiting (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Pd Current Limiting ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC235.202 Docking station detection after coldboot (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether he DUT properly detects the docking station + ... after coldboot. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC237.202 Docking station detection after warmboot (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether he DUT properly detects the docking station + ... after warmboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC239.202 Docking station detection after reboot (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC241.202 Docking station detection after suspend (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC243.202 Docking station detection after suspend (S0ix) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend '${POWER_CTRL}' == 'none'(S0ix). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC245.202 Docking station detection after suspend (S3) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S3) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC247.202 Docking station detection after coldboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after coldboot then hotplug. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC249.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after warmboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC251.202 Docking station detection after reboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC253.202 Docking station detection after suspend then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend then hotplug. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC255.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S0ix) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC257.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 + +UTC205.301 USB Type-C PD power input (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +UTC207.301 USB Type-C Display output (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Display Output ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +UTC209.301 USB Type-C docking station HDMI display (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +UTC211.301 USB Type-C docking station DP display (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Dp Display ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC213.301 USB Type-C docking station Triple display (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Triple Display ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +UTC215.301 USB Type-C docking station USB devices recognition (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +UTC217.301 USB Type-C docking station USB keyboard (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC219.301 USB Type-C docking station upload 1GB file on USB storage (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +UTC221.301 USB Type-C docking station Ethernet connection (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +UTC223.301 USB Type-C docking station audio recognition (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC225.301 USB Type-C docking station audio playback (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC227.301 USB Type-C docking station audio capture (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +UTC229.301 USB Type-C docking station SD Card reader detection (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +UTC231.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC233.301 USB Type-C PD current limiting (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Pd Current Limiting ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC202.001 USB Type-A charging capability (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test verifies that the USB-A ports are able to provide +# ... charging to a connected smartphone. +# Usb Type-A Charging Capability 001 Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC204.001 Thunderbolt 4 USB Type-C power output (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test verifies that the Thunderbolt 4 port is able +# ... to provide charging to a USB Type-C accessory. +# Thunderbolt 4 Usb Type-C Power Output 001 Disabled WL-UMD05 Pro Rev.C1 + +UTC216.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Usb Type-C Docking Station Usb Devices Recognition 001 Disabled WL-UMD05 Pro Rev.C1 + +UTC218.001 USB Type-C docking station USB keyboard (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Usb Type-C Docking Station Usb Keyboard 001 Disabled WL-UMD05 Pro Rev.C1 + +UTC206.201 USB Type-C PD power input (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC208.201 USB Type-C Display output (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Display Output ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC210.201 USB Type-C docking station HDMI display (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC212.201 USB Type-C docking station DP display (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Dp Display ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC214.201 USB Type-C docking station Triple display (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Triple Display ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC216.201 USB Type-C docking station USB devices recognition (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC218.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC220.201 USB Type-C docking station upload 1GB file on USB storage (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC222.201 USB Type-C docking station Ethernet connection (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC224.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC226.201 USB Type-C docking station audio playback (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC228.201 USB Type-C docking station audio capture (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC230.201 USB Type-C docking station SD Card reader detection (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC232.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC234.201 USB Type-C PD current limiting (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Pd Current Limiting ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC236.201 Docking station detection after coldboot (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether he DUT properly detects the docking station + ... after coldboot. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC238.201 Docking station detection after warmboot (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether he DUT properly detects the docking station + ... after warmboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC240.201 Docking station detection after reboot (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC242.201 Docking station detection after suspend (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC244.201 Docking station detection after suspend (S0ix) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend '${POWER_CTRL}' == 'none'(S0ix). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC246.201 Docking station detection after suspend (S3) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S3) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC248.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after coldboot then hotplug. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC250.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after warmboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC252.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC254.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend then hotplug. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC256.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S0ix) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC258.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 + +UTC206.202 USB Type-C PD power input (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC208.202 USB Type-C Display output (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Display Output ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC210.202 USB Type-C docking station HDMI display (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC212.202 USB Type-C docking station DP display (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Dp Display ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC214.202 USB Type-C docking station Triple display (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Triple Display ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC216.202 USB Type-C docking station USB devices recognition (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC218.202 USB Type-C docking station USB keyboard (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC220.202 USB Type-C docking station upload 1GB file on USB storage (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC222.202 USB Type-C docking station Ethernet connection (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC224.202 USB Type-C docking station audio recognition (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC226.202 USB Type-C docking station audio playback (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC228.202 USB Type-C docking station audio capture (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC230.202 USB Type-C docking station SD Card reader detection (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC232.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC234.202 USB Type-C PD current limiting (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Pd Current Limiting ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC236.202 Docking station detection after coldboot (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether he DUT properly detects the docking station + ... after coldboot. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC238.202 Docking station detection after warmboot (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether he DUT properly detects the docking station + ... after warmboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC240.202 Docking station detection after reboot (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC242.202 Docking station detection after suspend (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC244.202 Docking station detection after suspend (S0ix) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend '${POWER_CTRL}' == 'none'(S0ix). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC246.202 Docking station detection after suspend (S3) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S3) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC248.202 Docking station detection after coldboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after coldboot then hotplug. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC250.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after warmboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC252.202 Docking station detection after reboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC254.202 Docking station detection after suspend then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend then hotplug. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC256.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S0ix) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC258.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 + +UTC206.301 USB Type-C PD power input (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +UTC208.301 USB Type-C Display output (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Display Output ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +UTC210.301 USB Type-C docking station HDMI display (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +UTC212.301 USB Type-C docking station DP display (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Dp Display ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC214.301 USB Type-C docking station Triple display (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Triple Display ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +UTC216.301 USB Type-C docking station USB devices recognition (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +UTC218.301 USB Type-C docking station USB keyboard (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC220.301 USB Type-C docking station upload 1GB file on USB storage (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +UTC222.301 USB Type-C docking station Ethernet connection (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +UTC224.301 USB Type-C docking station audio recognition (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC226.301 USB Type-C docking station audio playback (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC228.301 USB Type-C docking station audio capture (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +UTC230.301 USB Type-C docking station SD Card reader detection (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +UTC232.301 USB Type-C docking station SD Card read/write (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC234.301 USB Type-C PD current limiting (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Pd Current Limiting ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 + +# Not automated +# UTC301.001 USB Type-A charging capability (Firmware) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test verifies that the USB-A ports are able to provide +# ... charging to a connected smartphone. +# Usb Type-A Charging Capability 001 Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC303.001 Thunderbolt 4 USB Type-C power output (Firmware) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test verifies that the Thunderbolt 4 port is able +# ... to provide charging to a USB Type-C accessory. +# Thunderbolt 4 Usb Type-C Power Output 001 Enabled WL-UG69PD2 Rev.A1 + +UTC315.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Usb Type-C Docking Station Usb Devices Recognition 001 Enabled WL-UG69PD2 Rev.A1 + +UTC317.001 USB Type-C docking station USB keyboard (Firmware) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Usb Type-C Docking Station Usb Keyboard 001 Enabled WL-UG69PD2 Rev.A1 + +UTC305.201 USB Type-C PD power input (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC307.201 USB Type-C Display output (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Display Output ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC309.201 USB Type-C docking station HDMI display (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC311.201 USB Type-C docking station DP display (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Dp Display ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC313.201 USB Type-C docking station Triple display (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Triple Display ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC315.201 USB Type-C docking station USB devices recognition (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC317.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC319.201 USB Type-C docking station upload 1GB file on USB storage (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC321.201 USB Type-C docking station Ethernet connection (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC323.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC325.201 USB Type-C docking station audio playback (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC327.201 USB Type-C docking station audio capture (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC329.201 USB Type-C docking station SD Card reader detection (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC331.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC333.201 USB Type-C PD current limiting (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Pd Current Limiting ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC335.201 Docking station detection after coldboot (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether he DUT properly detects the docking station + ... after coldboot. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC337.201 Docking station detection after warmboot (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether he DUT properly detects the docking station + ... after warmboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC339.201 Docking station detection after reboot (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC341.201 Docking station detection after suspend (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC343.201 Docking station detection after suspend (S0ix) (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend '${POWER_CTRL}' == 'none'(S0ix). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC345.201 Docking station detection after suspend (S3) (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S3) ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC347.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after coldboot then hotplug. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC349.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after warmboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC351.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC353.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend then hotplug. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC355.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S0ix) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC357.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 + +UTC305.202 USB Type-C PD power input (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC307.202 USB Type-C Display output (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Display Output ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC309.202 USB Type-C docking station HDMI display (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC311.202 USB Type-C docking station DP display (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Dp Display ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC313.202 USB Type-C docking station Triple display (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Triple Display ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC315.202 USB Type-C docking station USB devices recognition (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC317.202 USB Type-C docking station USB keyboard (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC319.202 USB Type-C docking station upload 1GB file on USB storage (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC321.202 USB Type-C docking station Ethernet connection (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC323.202 USB Type-C docking station audio recognition (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC325.202 USB Type-C docking station audio playback (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC327.202 USB Type-C docking station audio capture (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC329.202 USB Type-C docking station SD Card reader detection (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC331.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC333.202 USB Type-C PD current limiting (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Pd Current Limiting ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC335.202 Docking station detection after coldboot (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether he DUT properly detects the docking station + ... after coldboot. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC337.202 Docking station detection after warmboot (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether he DUT properly detects the docking station + ... after warmboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC339.202 Docking station detection after reboot (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC341.202 Docking station detection after suspend (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC343.202 Docking station detection after suspend (S0ix) (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend '${POWER_CTRL}' == 'none'(S0ix). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC345.202 Docking station detection after suspend (S3) (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S3) ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC347.202 Docking station detection after coldboot then hotplug (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after coldboot then hotplug. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC349.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after warmboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC351.202 Docking station detection after reboot then hotplug (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC353.202 Docking station detection after suspend then hotplug (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend then hotplug. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC355.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S0ix) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC357.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 + +UTC305.301 USB Type-C PD power input (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +UTC307.301 USB Type-C Display output (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Display Output ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +UTC309.301 USB Type-C docking station HDMI display (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +UTC311.301 USB Type-C docking station DP display (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Dp Display ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC313.301 USB Type-C docking station Triple display (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Triple Display ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +UTC315.301 USB Type-C docking station USB devices recognition (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +UTC317.301 USB Type-C docking station USB keyboard (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC319.301 USB Type-C docking station upload 1GB file on USB storage (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +UTC321.301 USB Type-C docking station Ethernet connection (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +UTC323.301 USB Type-C docking station audio recognition (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC325.301 USB Type-C docking station audio playback (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC327.301 USB Type-C docking station audio capture (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +UTC329.301 USB Type-C docking station SD Card reader detection (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +UTC331.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC333.301 USB Type-C PD current limiting (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Pd Current Limiting ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC302.001 USB Type-A charging capability (Firmware) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test verifies that the USB-A ports are able to provide +# ... charging to a connected smartphone. +# Usb Type-A Charging Capability 001 Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC304.001 Thunderbolt 4 USB Type-C power output (Firmware) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test verifies that the Thunderbolt 4 port is able +# ... to provide charging to a USB Type-C accessory. +# Thunderbolt 4 Usb Type-C Power Output 001 Disabled WL-UG69PD2 Rev.A1 + +UTC316.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Usb Type-C Docking Station Usb Devices Recognition 001 Disabled WL-UG69PD2 Rev.A1 + +UTC318.001 USB Type-C docking station USB keyboard (Firmware) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Usb Type-C Docking Station Usb Keyboard 001 Disabled WL-UG69PD2 Rev.A1 + +UTC306.201 USB Type-C PD power input (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC308.201 USB Type-C Display output (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Display Output ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC310.201 USB Type-C docking station HDMI display (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC312.201 USB Type-C docking station DP display (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Dp Display ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC314.201 USB Type-C docking station Triple display (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Triple Display ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC316.201 USB Type-C docking station USB devices recognition (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC318.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC320.201 USB Type-C docking station upload 1GB file on USB storage (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC322.201 USB Type-C docking station Ethernet connection (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC324.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC326.201 USB Type-C docking station audio playback (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC328.201 USB Type-C docking station audio capture (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC330.201 USB Type-C docking station SD Card reader detection (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC332.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC334.201 USB Type-C PD current limiting (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Pd Current Limiting ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC336.201 Docking station detection after coldboot (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether he DUT properly detects the docking station + ... after coldboot. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC338.201 Docking station detection after warmboot (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether he DUT properly detects the docking station + ... after warmboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC340.201 Docking station detection after reboot (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC342.201 Docking station detection after suspend (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC344.201 Docking station detection after suspend (S0ix) (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend '${POWER_CTRL}' == 'none'(S0ix). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC346.201 Docking station detection after suspend (S3) (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S3) ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC348.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after coldboot then hotplug. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC350.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after warmboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC352.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC354.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend then hotplug. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC356.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S0ix) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC358.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 + +UTC306.202 USB Type-C PD power input (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC308.202 USB Type-C Display output (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Display Output ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC310.202 USB Type-C docking station HDMI display (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC312.202 USB Type-C docking station DP display (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Dp Display ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC314.202 USB Type-C docking station Triple display (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Triple Display ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC316.202 USB Type-C docking station USB devices recognition (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC318.202 USB Type-C docking station USB keyboard (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC320.202 USB Type-C docking station upload 1GB file on USB storage (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC322.202 USB Type-C docking station Ethernet connection (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC324.202 USB Type-C docking station audio recognition (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC326.202 USB Type-C docking station audio playback (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC328.202 USB Type-C docking station audio capture (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC330.202 USB Type-C docking station SD Card reader detection (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC332.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC334.202 USB Type-C PD current limiting (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Usb Type-C Pd Current Limiting ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC336.202 Docking station detection after coldboot (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether he DUT properly detects the docking station + ... after coldboot. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC338.202 Docking station detection after warmboot (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether he DUT properly detects the docking station + ... after warmboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC340.202 Docking station detection after reboot (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC342.202 Docking station detection after suspend (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC344.202 Docking station detection after suspend (S0ix) (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend '${POWER_CTRL}' == 'none'(S0ix). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC346.202 Docking station detection after suspend (S3) (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3). + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend (S3) ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC348.202 Docking station detection after coldboot then hotplug (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after coldboot then hotplug. + Skip If '${POWER_CTRL}' == 'none' + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC350.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after warmboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC352.202 Docking station detection after reboot then hotplug (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after reboot then hotplug. + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC354.202 Docking station detection after suspend then hotplug (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend then hotplug. + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC356.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S0ix) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC358.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT properly detects the docking station + ... after suspend (S3) then hotplug. + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 + +UTC306.301 USB Type-C PD power input (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT can be charged using a + ... PD power supply connected to the docking station, which + ... is connected to the USB Type-C port + ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) + Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +UTC308.301 USB Type-C Display output (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the DUT can detect the USB Type-C hub. + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Display Output ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +UTC310.301 USB Type-C docking station HDMI display (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_HDMI} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Hdmi Display ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +UTC312.301 USB Type-C docking station DP display (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the display connected with + ... the HDMI cable to the docking station is correctly + ... recognized by the OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_DISPLAY_PORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Dp Display ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC314.301 USB Type-C docking station Triple display (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the three display +# ... simultaneously connected to the docking station is correctly +# ... recognized by the OPERATING_SYSTEM. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Triple Display ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +UTC316.301 USB Type-C docking station USB devices recognition (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB devices connected to the + ... docking station are detected correctly + Skip If not ${DOCKING_STATION_USB_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +UTC318.301 USB Type-C docking station USB keyboard (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the external USB keyboard connected to the + ... docking station is detected correctly. + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Usb Keyboard ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC320.301 USB Type-C docking station upload 1GB file on USB storage (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the 1GB file can be +# ... transferred from the OPERATING_SYSTEM to the USB storage +# ... connected to the docking station. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +UTC322.301 USB Type-C docking station Ethernet connection (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the connection to internet + ... via docking station's Ethernet port can be obtained on + ... OPERATING_SYSTEM. + Skip If not ${DOCKING_STATION_NET_INTERFACE} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Ethernet Connection ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +UTC324.301 USB Type-C docking station audio recognition (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] This test aims to verify that the external headset is + ... properly recognized after plugging in the 3.5 mm jack into + ... the docking station. + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Audio Recognition ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC326.301 USB Type-C docking station audio playback (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to playback audio recordings by using the external headset +# ... speakers connected to the docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Audio Playback ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC328.301 USB Type-C docking station audio capture (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the audio subsystem is able +# ... to capture audio from external headset connected to the +# ... docking station. +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Docking Station Audio Capture ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +UTC330.301 USB Type-C docking station SD Card reader detection (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the SD Card reader is enumerated correctly + ... and can be detected from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +UTC332.301 USB Type-C docking station SD Card read/write (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) + [Documentation] Check whether the SD Card reader is initialized correctly + ... and can be used from the operating system. + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 + +# Not automated +# UTC334.301 USB Type-C PD current limiting (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] This test aims to verify that the power draw from a USB-C PD +# ... power supply does not exceed the limits of the power supply's +# ... specifications. +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Usb Type-C Pd Current Limiting ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 From 3aeeabc5b7255d6e211f4827dec0d557eb994d85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 9 Apr 2025 10:19:00 +0200 Subject: [PATCH 378/416] lib/utc.robot: Add library with UTC tests implementation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit UTC test suite is generated automatically using a script. It is already over 3k lines in size. The generic keywords that implement the test cases, which (currently) repeat up to 18 times during the test suite were moved to a library, so that the test suite can remain fully automatically generated. The keyword implementations are based on, and mostly just copies of the implementations from the old versions of the UTC test case. Signed-off-by: Filip Gołaś --- lib/utc.robot | 581 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 581 insertions(+) create mode 100644 lib/utc.robot diff --git a/lib/utc.robot b/lib/utc.robot new file mode 100644 index 0000000000..1517b8b1c6 --- /dev/null +++ b/lib/utc.robot @@ -0,0 +1,581 @@ +*** Comments *** +# robocop: disable=unused-argument + + +*** Settings *** +Library Collections +Library OperatingSystem +Library Process +Library String +Library Telnet timeout=20 seconds connection_timeout=120 seconds +Library SSHLibrary timeout=90 seconds +Library RequestsLibrary +# TODO: maybe have a single file to include if we need to include the same +# stuff in all test cases +Resource ../variables.robot +Resource ../keywords.robot +Resource ../keys.robot +Resource ../lib/me.robot +Resource ../lib/docks.robot +Resource options/options-lib_dcu.robot + + +*** Keywords *** +Prepare UTC Test Suite + Set Suite Variable ${UTC_CURRENT_ME_STATE} unknown + +Ensure ME State + [Arguments] ${me_state} + IF '${me_state}' != '${UTC_CURRENT_ME_STATE}' + IF '${me_state}' == 'Enabled' + Set UEFI Option MeMode Enabled + ELSE + Set UEFI Option MeMode Disabled (HAP) + END + Set Suite Variable ${UTC_CURRENT_ME_STATE} ${me_state} + END + +# Not automated +# Usb Type-A Charging Capability +# [Arguments] ${env_id} ${me_state} ${dock_name} + +# Not automated +# Thunderbolt 4 Usb Type-C Power Output +# [Arguments] ${env_id} ${me_state} ${dock_name} + +Usb Type-C Pd Power Input + [Arguments] ${env_id} ${me_state} ${dock_name} + Ensure ME State ${me_state} + Power On + IF '${env_id}'.startswith('2') # Linux + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + Check Charging State In Linux + Exit From Root User + ELSE IF '${env_id}'.startswith('3') # Windows + Login To Windows + Check Charging State In Windows + ELSE + Fail Not implemented on ENV_ID ${env_id} + END + +Usb Type-C Display Output + [Arguments] ${env_id} ${me_state} ${dock_name} + Ensure ME State ${me_state} + Power On + IF '${env_id}'.startswith('2') # Linux + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + ${result}= Check ME Out + Should Not Be Equal As Strings ${result} Enabled + ${out}= List Devices In Linux usb + Should Contain ${out} ${CLEVO_USB_C_HUB} + Exit From Root User + ELSE + Fail Not implemented on ENV_ID ${env_id} + END + +Usb Type-C Docking Station Hdmi Display + [Arguments] ${env_id} ${me_state} ${dock_name} + Ensure ME State ${me_state} + Power On + IF '${env_id}'.startswith('2') # Linux + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + Check PCON On MST Hub In Linux + Check Display Port On Hub In Linux HDMI + Exit From Root User + ELSE IF '${env_id}'.startswith('3') # Windows + Login To Windows + Check Docking Station HDMI Windows + ELSE + Fail Not implemented on ENV_ID ${env_id} + END + +Usb Type-C Docking Station Dp Display + [Arguments] ${env_id} ${me_state} ${dock_name} + Ensure ME State ${me_state} + Power On + IF '${env_id}'.startswith('2') # Linux + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + Check DP Port On MST Hub In Linux + Check Display Port On Hub In Linux DP + Exit From Root User + ELSE IF '${env_id}'.startswith('3') # Windows + Login To Windows + Check Docking Station DP Windows + ELSE + Fail Not implemented on ENV_ID ${env_id} + END + +# Not automated +# Usb Type-C Docking Station Triple Display +# [Arguments] ${env_id} ${me_state} ${dock_name} + +Usb Type-C Docking Station Usb Devices Recognition + [Arguments] ${env_id} ${me_state} ${dock_name} + Ensure ME State ${me_state} + Power On + IF '${env_id}'.startswith('2') # Linux + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + ${out}= List Devices In Linux usb + Should Contain ${out} SanDisk + Exit From Root User + ELSE IF '${env_id}'.startswith('3') # Windows + Login To Windows + ${out}= Execute Command In Terminal + ... Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' } + Should Contain ${out} OK${SPACE*9}DiskDrive${SPACE*8}USB${SPACE*2}SanDisk + ELSE + Fail Not implemented on ENV_ID ${env_id} + END + +Usb Type-C Docking Station Usb Keyboard + [Arguments] ${env_id} ${me_state} ${dock_name} + Ensure ME State ${me_state} + Power On + IF '${env_id}'.startswith('2') # Linux + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + ${out}= List Devices In Linux usb + Should Contain ${out} ${DEVICE_USB_KEYBOARD} + Exit From Root User + ELSE IF '${env_id}'.startswith('3') # Windows + Login To Windows + ${out}= Execute Command In Terminal Get-CimInstance win32_KEYBOARD + Should Contain ${out} Description${SPACE*17}: USB Input Device strip_spaces=True + ELSE + Fail Not implemented on ENV_ID ${env_id} + END + +# Not automated +# Usb Type-C Docking Station Upload 1Gb File On Usb Storage +# [Arguments] ${env_id} ${me_state} ${dock_name} + +Usb Type-C Docking Station Ethernet Connection + [Arguments] ${env_id} ${me_state} ${dock_name} + Ensure ME State ${me_state} + Power On + IF '${env_id}'.startswith('2') # Linux + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + Check Internet Connection On Linux + Exit From Root User + ELSE IF '${env_id}'.startswith('3') # Windows + Login To Windows + Check Internet Connection On Windows + ELSE + Fail Not implemented on ENV_ID ${env_id} + END + +Usb Type-C Docking Station Audio Recognition + [Arguments] ${env_id} ${me_state} ${dock_name} + Ensure ME State ${me_state} + Power On + IF '${env_id}'.startswith('2') # Linux + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + ${out}= List Devices In Linux usb + Should Contain ${out} ${EXTERNAL_HEADSET} + Exit From Root User + ELSE + Fail Not implemented on ENV_ID ${env_id} + END + +# Not automated +# Usb Type-C Docking Station Audio Playback +# [Arguments] ${env_id} ${me_state} ${dock_name} + +# Not automated +# Usb Type-C Docking Station Audio Capture +# [Arguments] ${env_id} ${me_state} ${dock_name} + +Usb Type-C Docking Station Sd Card Reader Detection + [Arguments] ${env_id} ${me_state} ${dock_name} + Ensure ME State ${me_state} + Power On + IF '${env_id}'.startswith('2') # Linux + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + ${disks}= Identify Disks In Linux + Should Match str(${disks}) pattern=*SD* + Exit From Root User + ELSE IF '${env_id}'.startswith('3') # Windows + Login To Windows + ${out}= Execute Command In Terminal + ... Get-PnpDevice -Status "OK" -Class "DiskDrive" | ForEach-Object { $_.FriendlyName } + @{lines}= Split To Lines ${out} + FOR ${disk} IN @{lines} + ${disk}= Replace String Using Regexp ${disk} ${SPACE}+ ${SPACE} + TRY + Should Contain Any ${disk} ${DOCKING_STATION_MODEL_1} ${DOCKING_STATION_MODEL_2} + EXCEPT + Log ${disk} is not SD Card + END + END + ELSE + Fail Not implemented on ENV_ID ${env_id} + END + +Usb Type-C Docking Station Sd Card Read/Write + [Arguments] ${env_id} ${me_state} ${dock_name} + Ensure ME State ${me_state} + Power On + IF '${env_id}'.startswith('2') # Linux + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + ${path}= Identify Path To SD Card In Linux + FOR ${disk} IN @{path} + Check Read Write To External Drive In Linux ${disk} + END + Exit From Root User + ELSE IF '${env_id}'.startswith('3') # Windows + Login To Windows + ${drive_letter}= Identify Path To SD Card In Windows + Check Read Write To External Drive In Windows ${drive_letter} + ELSE + Fail Not implemented on ENV_ID ${env_id} + END +# Not automated +# Usb Type-C Pd Current Limiting +# [Arguments] ${env_id} ${me_state} ${dock_name} + +Docking Station Detection After Coldboot + [Arguments] ${env_id} ${me_state} ${dock_name} + IF not '${env_id}'.startswith('2') + Fail Not implemented on ENV_ID ${env_id} + END + Ensure ME State ${me_state} + Power On + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + ${out_after_reboot}= Execute Linux Command uptime --since + Detect Docking Station In Linux ${dock_name} + Set Global Variable ${FAILED_DETECTION} 0 + FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_COLDBOOT_ITERATIONS} + Log To Console Cold boot iteration ${iteration+1}/${STABILITY_DETECTION_COLDBOOT_ITERATIONS} + TRY + ${out_before_reboot}= Execute Linux Command uptime --since + WHILE '${out_before_reboot}' == '${out_after_reboot}' + Power Cycle On + Login To Linux + Switch To Root User + ${out_after_reboot}= Execute Linux Command uptime --since + Detect Docking Station In Linux ${dock_name} + END + EXCEPT + ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 + END + END + IF '${failed_detection}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' + FAIL \n ${failed_detection} iterations failed. + END + Log To Console \nAll iterations passed. + +Docking Station Detection After Warmboot + [Arguments] ${env_id} ${me_state} ${dock_name} + IF not '${env_id}'.startswith('2') + Fail Not implemented on ENV_ID ${env_id} + END + Ensure ME State ${me_state} + Power On + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + ${out_after_reboot}= Execute Linux Command uptime --since + Detect Docking Station In Linux ${dock_name} + Set Global Variable ${FAILED_DETECTION} 0 + FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_WARMBOOT_ITERATIONS} + Log To Console Warm boot iteration ${iteration+1}/${STABILITY_DETECTION_WARMBOOT_ITERATIONS} + TRY + ${out_before_reboot}= Execute Linux Command uptime --since + WHILE '${out_before_reboot}' == '${out_after_reboot}' + Perform Warmboot Using Rtcwake + Login To Linux + Switch To Root User + ${out_after_reboot}= Execute Linux Command uptime --since + Detect Docking Station In Linux ${dock_name} + END + EXCEPT + ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 + END + END + IF '${failed_detection}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' + FAIL \n ${failed_detection} iterations failed. + END + Log To Console \nAll iterations passed. + +Docking Station Detection After Reboot + [Arguments] ${env_id} ${me_state} ${dock_name} + IF not '${env_id}'.startswith('2') + Fail Not implemented on ENV_ID ${env_id} + END + Ensure ME State ${me_state} + Power On + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + Detect Docking Station In Linux ${dock_name} + Set Global Variable ${FAILED_DETECTION} 0 + FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} + Log To Console Reboot iteration ${iteration+1}/${STABILITY_DETECTION_REBOOT_ITERATIONS} + TRY + Execute Reboot Command + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + Detect Docking Station In Linux ${dock_name} + EXCEPT + ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 + END + END + IF '${failed_detection}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' + FAIL \n ${failed_detection} iterations failed. + END + Log To Console \nAll iterations passed. + +Docking Station Detection After Suspend + [Arguments] ${env_id} ${me_state} ${dock_name} ${platform_sleep_type}=${EMPTY} + IF not '${env_id}'.startswith('2') + Fail Not implemented on ENV_ID ${env_id} + END + Ensure ME State ${me_state} + Power On + Boot System Or From Connected Disk ${env_id} + Login To Linux + Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} + Switch To Root User + Detect Docking Station In Linux ${dock_name} + Set Global Variable ${FAILED_DETECTION} 0 + FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_SUSPEND_ITERATIONS} + Log To Console + ... Suspend ${platform_sleep_type} iteration ${iteration+1}/${STABILITY_DETECTION_SUSPEND_ITERATIONS} + Perform Suspend Test Using FWTS + TRY + Detect Docking Station In Linux ${dock_name} + EXCEPT message + Evaluate ${FAILED_DETECTION}= ${FAILED_DETECTION}+1 + END + END + IF '${FAILED_DETECTION}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' + FAIL \n ${FAILED_DETECTION} iterations failed. + END + Log To Console \nAll iterations passed. + +Docking Station Detection After Suspend (S0Ix) + [Arguments] ${env_id} ${me_state} ${dock_name} + IF not '${env_id}'.startswith('2') + Fail Not implemented on ENV_ID ${env_id} + END + Docking Station Detection After Suspend ${env_id} ${me_state} ${dock_name} S0Ix + +Docking Station Detection After Suspend (S3) + [Arguments] ${env_id} ${me_state} ${dock_name} + IF not '${env_id}'.startswith('2') + Fail Not implemented on ENV_ID ${env_id} + END + Docking Station Detection After Suspend ${env_id} ${me_state} ${dock_name} S3 + +Docking Station Detection After Coldboot Then Hotplug + [Arguments] ${env_id} ${me_state} ${dock_name} + IF not '${env_id}'.startswith('2') + Fail Not implemented on ENV_ID ${env_id} + END + Ensure ME State ${me_state} + Pause Execution In Console Please make sure the docking station is disconnected and press ENTER + Power On + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + ${out_after_reboot}= Execute Linux Command uptime --since + ${out_before_reboot}= Execute Linux Command uptime --since + Run Keyword And Expect Error * does not contain * Detect Docking Station In Linux ${dock_name} + Set Global Variable ${FAILED_DETECTION} 0 + WHILE '${out_before_reboot}' == '${out_after_reboot}' + Log To Console Coldboot the DUT manually + # coldboot - msi ./sonoff, protectli RteCtrl -rel, novacustom ??? + Pause Execution In Console Do power cut-off, reconnect and press ENTER. + Power On + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + ${out_after_reboot}= Execute Linux Command uptime --since + Run Keyword And Expect Error + ... * does not contain * + ... Detect Docking Station In Linux + ... ${dock_name} + END + FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_COLDBOOT_ITERATIONS} + Log To Console Hotplug after Cold boot iteration ${iteration+1}/${STABILITY_DETECTION_COLDBOOT_ITERATIONS} + TRY + Pause Execution In Console Connect docking station ${dock_name} and press ENTER. + Detect Docking Station In Linux ${dock_name} + Pause Execution In Console Disconnect docking station ${dock_name} and press ENTER. + Run Keyword And Expect Error + ... * does not contain * + ... Detect Docking Station In Linux + ... ${dock_name} + EXCEPT + ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 + END + END + IF '${failed_detection}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' + FAIL \n ${failed_detection} iterations failed. + END + Log To Console \nAll iterations passed. + +Docking Station Detection After Warmboot Then Hotplug + [Arguments] ${env_id} ${me_state} ${dock_name} + IF not '${env_id}'.startswith('2') + Fail Not implemented on ENV_ID ${env_id} + END + Ensure ME State ${me_state} + Pause Execution In Console Please make sure the docking station is disconnected and press ENTER + Power On + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + ${out_after_reboot}= Execute Linux Command uptime --since + ${out_before_reboot}= Execute Linux Command uptime --since + Run Keyword And Expect Error * does not contain * Detect Docking Station In Linux ${dock_name} + Set Global Variable ${FAILED_DETECTION} 0 + WHILE '${out_before_reboot}' == '${out_after_reboot}' + Perform Warmboot Using Rtcwake + Pause Execution In Console Press power button on platform and press ENTER. + Power On + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + ${out_after_reboot}= Execute Linux Command uptime --since + Run Keyword And Expect Error + ... * does not contain * + ... Detect Docking Station In Linux + ... ${dock_name} + END + FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_WARMBOOT_ITERATIONS} + Log To Console Hotplug after Warm boot iteration ${iteration+1}/${STABILITY_DETECTION_WARMBOOT_ITERATIONS} + TRY + Pause Execution In Console Connect docking station ${dock_name} and press ENTER. + Detect Docking Station In Linux ${dock_name} + Pause Execution In Console Disconnect docking station ${dock_name} and press ENTER. + Run Keyword And Expect Error + ... * does not contain * + ... Detect Docking Station In Linux + ... ${dock_name} + EXCEPT + ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 + END + END + IF '${failed_detection}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' + FAIL \n ${failed_detection} iterations failed. + END + Log To Console \nAll iterations passed. + +Docking Station Detection After Reboot Then Hotplug + [Arguments] ${env_id} ${me_state} ${dock_name} + IF not '${env_id}'.startswith('2') + Fail Not implemented on ENV_ID ${env_id} + END + Ensure ME State ${me_state} + Pause Execution In Console Please make sure the docking station is disconnected and press ENTER + Power On + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + Run Keyword And Expect Error * does not contain * Detect Docking Station In Linux ${dock_name} + Set Global Variable ${FAILED_DETECTION} 0 + Execute Reboot Command + Boot System Or From Connected Disk ${env_id} + Login To Linux + Switch To Root User + FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_REBOOT_ITERATIONS} + Log To Console Hotplug after Reboot iteration ${iteration+1}/${STABILITY_DETECTION_REBOOT_ITERATIONS} + TRY + Pause Execution In Console Connect docking station ${dock_name} and press ENTER. + Detect Docking Station In Linux ${dock_name} + Pause Execution In Console Disconnect docking station ${dock_name} and press ENTER. + Run Keyword And Expect Error + ... * does not contain * + ... Detect Docking Station In Linux + ... ${dock_name} + EXCEPT + ${failed_detection}= Evaluate ${FAILED_DETECTION} + 1 + END + END + IF '${failed_detection}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' + FAIL \n ${failed_detection} iterations failed. + END + Log To Console \nAll iterations passed. + +Docking Station Detection After Suspend Then Hotplug + [Arguments] ${env_id} ${me_state} ${dock_name} ${platform_sleep_type}=${EMPTY} + IF not '${env_id}'.startswith('2') + Fail Not implemented on ENV_ID ${env_id} + END + Ensure ME State ${me_state} + Power On + Boot System Or From Connected Disk ${env_id} + Login To Linux + Check Platform Sleep Type Is Correct On Linux ${platform_sleep_type} + Switch To Root User + Run Keyword And Expect Error * does not contain * Detect Docking Station In Linux ${dock_name} + Set Global Variable ${FAILED_DETECTION} 0 + Perform Suspend Test Using FWTS + FOR ${iteration} IN RANGE 0 ${STABILITY_DETECTION_SUSPEND_ITERATIONS} + Log To Console + ... Hotplug after Suspend ${platform_sleep_type} iteration ${iteration+1}/${STABILITY_DETECTION_SUSPEND_ITERATIONS} + TRY + Pause Execution In Console Connect docking station ${dock_name} and press ENTER. + Detect Docking Station In Linux ${dock_name} + Pause Execution In Console Disconnect docking station ${dock_name} and press ENTER. + Run Keyword And Expect Error + ... * does not contain * + ... Detect Docking Station In Linux + ... ${dock_name} + EXCEPT message + Evaluate ${FAILED_DETECTION}= ${FAILED_DETECTION}+1 + END + END + IF '${FAILED_DETECTION}' > '${ALLOWED_DOCKING_STATION_DETECT_FAILS}' + FAIL \n ${FAILED_DETECTION} iterations failed. + END + Log To Console \nAll iterations passed. + +Docking Station Detection After Suspend Then Hotplug (S0Ix) + [Arguments] ${env_id} ${me_state} ${dock_name} + IF not '${env_id}'.startswith('2') + Fail Not implemented on ENV_ID ${env_id} + END + Ensure ME State ${me_state} + Docking Station Detection After Suspend ${env_id} ${me_state} ${dock_name} S0Ix + +Docking Station Detection After Suspend Then Hotplug (S3) + [Arguments] ${env_id} ${me_state} ${dock_name} + IF not '${env_id}'.startswith('2') + Fail Not implemented on ENV_ID ${env_id} + END + Ensure ME State ${me_state} + Docking Station Detection After Suspend ${env_id} ${me_state} ${dock_name} S3 + +Pause Execution In Console + [Documentation] Pauses execution until user press ENTER. + [Tags] robot:private + [Arguments] ${message}= Press ENTER to continue... + Run notify-send "Please execute Manual Step in ${TEST_NAME}" # GUI message + Run echo -ne '\007' # ASCII BEL (\007) + Log To Console ${message} + Run read ignore + Log To Console Manual step confirmed From 974199b19eaa7fae1feef3945558e1b50732e209 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 9 Apr 2025 17:37:29 +0200 Subject: [PATCH 379/416] utc_generator & default.robot: Add SEMI_AUTO variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- platform-configs/include/default.robot | 3 +++ scripts/utc_generator.py | 21 +++++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/platform-configs/include/default.robot b/platform-configs/include/default.robot index 2058a51cf8..fab75d4cee 100644 --- a/platform-configs/include/default.robot +++ b/platform-configs/include/default.robot @@ -31,6 +31,9 @@ ${SNIPEIT}= yes ${SEABIOS_BOOT_DEVICE}= ${EMPTY} ${CHECK_POWER_LED_SUPPORT}= ${TRUE} +# Should semi auto tests be performed +${SEMI_AUTO}= ${FALSE} + # Hello, world! ${HELLO_EFI_STRING}= UEFI Hello, Dasharo Universe! ${SB_ERROR_STRING}= The image signature is invalid or missing! diff --git a/scripts/utc_generator.py b/scripts/utc_generator.py index 47ea3fd634..7923c92bf1 100644 --- a/scripts/utc_generator.py +++ b/scripts/utc_generator.py @@ -300,7 +300,6 @@ def full_test_name(test_row): robot_tests_lines = [] for idx, row in enumerate(test_rows): robot_tests_lines.append([]) - robot_tests_lines[idx].append(f"{full_test_name(row)}\n") documentation = row["doc"].splitlines() robot_tests_lines[idx].append(f" [Documentation] {documentation[0]}\n") @@ -308,8 +307,14 @@ def full_test_name(test_row): for line in documentation[1:]: robot_tests_lines[idx].append(f"{line}\n") + # Semiauto tag + if row["automation"] == "semi": + robot_tests_lines[idx].append(f" [Tags] semiauto\n") + for skip in row["skips"]: - robot_tests_lines[idx].append(f" Skip If {skip}\n") + robot_tests_lines[idx].append( + f" Skip If {skip} {row['Test ID']} not supported\n" + ) # Skips dependent on env/os ID if row["OS ID"] == "301": @@ -317,10 +322,18 @@ def full_test_name(test_row): " Skip If not ${TESTS_IN_WINDOWS_SUPPORT}\n" ) if row["OS ID"] == "201": - robot_tests_lines[idx].append(" Skip If not ${TESTS_IN_UBUNTU_SUPPORT}\n") + robot_tests_lines[idx].append( + f" Skip If not ${{TESTS_IN_UBUNTU_SUPPORT}} {row['Test ID']} not supported\n" + ) if row["OS ID"][0] == "2": robot_tests_lines[idx].append( - f" Skip If '{os_id_variable_names[row['OS ID']]}' not in ${{TESTED_LINUX_DISTROS}}\n" + f" Skip If '{os_id_variable_names[row['OS ID']]}' not in ${{TESTED_LINUX_DISTROS}} {row['Test ID']} not supported\n" + ) + + # Semiauto skip + if row["automation"] == "semi": + robot_tests_lines[idx].append( + f" Skip If not ${{SEMI_AUTO}} semi auto test skipped: SEMI_AUTO==${{SEMI_AUTO}}\n" ) # call the generic keyword for that test case type From f240bed7e13eb6c0baf7309b9eb5e3db4df0057f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Wed, 9 Apr 2025 17:39:09 +0200 Subject: [PATCH 380/416] dasharo-compatibility/usb-type-c: Manual automation state update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/usb-type-c.robot | 204 +++++++++++++++++-------- 1 file changed, 144 insertions(+), 60 deletions(-) diff --git a/dasharo-compatibility/usb-type-c.robot b/dasharo-compatibility/usb-type-c.robot index aa937f5ecd..11631cb36f 100644 --- a/dasharo-compatibility/usb-type-c.robot +++ b/dasharo-compatibility/usb-type-c.robot @@ -33,17 +33,19 @@ Suite Teardown Run Keyword # ... to provide charging to a USB Type-C accessory. # Thunderbolt 4 Usb Type-C Power Output 001 Enabled WL-UMD05 Pro Rev.E -UTC115.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the external USB devices connected to the - ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Usb Type-C Docking Station Usb Devices Recognition 001 Enabled WL-UMD05 Pro Rev.E +# Not automated +# UTC115.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] Check whether the external USB devices connected to the +# ... docking station are detected correctly +# Skip If not ${DOCKING_STATION_USB_SUPPORT} +# Usb Type-C Docking Station Usb Devices Recognition 001 Enabled WL-UMD05 Pro Rev.E -UTC117.001 USB Type-C docking station USB keyboard (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the external USB keyboard connected to the - ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Usb Type-C Docking Station Usb Keyboard 001 Enabled WL-UMD05 Pro Rev.E +# Not automated +# UTC117.001 USB Type-C docking station USB keyboard (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] Check whether the external USB keyboard connected to the +# ... docking station is detected correctly. +# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} +# Usb Type-C Docking Station Usb Keyboard 001 Enabled WL-UMD05 Pro Rev.E UTC105.201 USB Type-C PD power input (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT can be charged using a @@ -236,6 +238,7 @@ UTC147.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: E Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC149.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) @@ -244,6 +247,7 @@ UTC149.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: E Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC151.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) @@ -252,6 +256,7 @@ UTC151.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Ena Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC153.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) @@ -261,6 +266,7 @@ UTC153.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: En Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC155.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) @@ -270,6 +276,7 @@ UTC155.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC157.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) @@ -279,6 +286,7 @@ UTC157.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (M Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC105.202 USB Type-C PD power input (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) @@ -450,6 +458,7 @@ UTC147.202 Docking station detection after coldboot then hotplug (Fedora) (ME: E Skip If '${POWER_CTRL}' == 'none' Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC149.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) @@ -457,6 +466,7 @@ UTC149.202 Docking station detection after warmboot then hotplug (Fedora) (ME: E ... after warmboot then hotplug. Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC151.202 Docking station detection after reboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) @@ -464,6 +474,7 @@ UTC151.202 Docking station detection after reboot then hotplug (Fedora) (ME: Ena ... after reboot then hotplug. Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC153.202 Docking station detection after suspend then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) @@ -472,6 +483,7 @@ UTC153.202 Docking station detection after suspend then hotplug (Fedora) (ME: En Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC155.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) @@ -480,6 +492,7 @@ UTC155.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC157.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) @@ -488,6 +501,7 @@ UTC157.202 Docking station detection after suspend then hotplug (S3) (Fedora) (M Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC105.301 USB Type-C PD power input (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) @@ -619,17 +633,19 @@ UTC131.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) # ... to provide charging to a USB Type-C accessory. # Thunderbolt 4 Usb Type-C Power Output 001 Disabled WL-UMD05 Pro Rev.E -UTC116.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the external USB devices connected to the - ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Usb Type-C Docking Station Usb Devices Recognition 001 Disabled WL-UMD05 Pro Rev.E +# Not automated +# UTC116.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] Check whether the external USB devices connected to the +# ... docking station are detected correctly +# Skip If not ${DOCKING_STATION_USB_SUPPORT} +# Usb Type-C Docking Station Usb Devices Recognition 001 Disabled WL-UMD05 Pro Rev.E -UTC118.001 USB Type-C docking station USB keyboard (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the external USB keyboard connected to the - ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Usb Type-C Docking Station Usb Keyboard 001 Disabled WL-UMD05 Pro Rev.E +# Not automated +# UTC118.001 USB Type-C docking station USB keyboard (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] Check whether the external USB keyboard connected to the +# ... docking station is detected correctly. +# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} +# Usb Type-C Docking Station Usb Keyboard 001 Disabled WL-UMD05 Pro Rev.E UTC106.201 USB Type-C PD power input (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT can be charged using a @@ -822,6 +838,7 @@ UTC148.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: D Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC150.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) @@ -830,6 +847,7 @@ UTC150.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: D Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC152.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) @@ -838,6 +856,7 @@ UTC152.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Dis Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC154.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) @@ -847,6 +866,7 @@ UTC154.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Di Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC156.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) @@ -856,6 +876,7 @@ UTC156.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC158.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) @@ -865,6 +886,7 @@ UTC158.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (M Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC106.202 USB Type-C PD power input (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) @@ -1036,6 +1058,7 @@ UTC148.202 Docking station detection after coldboot then hotplug (Fedora) (ME: D Skip If '${POWER_CTRL}' == 'none' Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC150.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) @@ -1043,6 +1066,7 @@ UTC150.202 Docking station detection after warmboot then hotplug (Fedora) (ME: D ... after warmboot then hotplug. Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC152.202 Docking station detection after reboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) @@ -1050,6 +1074,7 @@ UTC152.202 Docking station detection after reboot then hotplug (Fedora) (ME: Dis ... after reboot then hotplug. Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC154.202 Docking station detection after suspend then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) @@ -1058,6 +1083,7 @@ UTC154.202 Docking station detection after suspend then hotplug (Fedora) (ME: Di Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC156.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) @@ -1066,6 +1092,7 @@ UTC156.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC158.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) @@ -1074,6 +1101,7 @@ UTC158.202 Docking station detection after suspend then hotplug (S3) (Fedora) (M Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC106.301 USB Type-C PD power input (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) @@ -1205,17 +1233,19 @@ UTC132.301 USB Type-C docking station SD Card read/write (Windows) (ME: Disabled # ... to provide charging to a USB Type-C accessory. # Thunderbolt 4 Usb Type-C Power Output 001 Enabled WL-UMD05 Pro Rev.C1 -UTC215.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the external USB devices connected to the - ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Usb Type-C Docking Station Usb Devices Recognition 001 Enabled WL-UMD05 Pro Rev.C1 +# Not automated +# UTC215.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] Check whether the external USB devices connected to the +# ... docking station are detected correctly +# Skip If not ${DOCKING_STATION_USB_SUPPORT} +# Usb Type-C Docking Station Usb Devices Recognition 001 Enabled WL-UMD05 Pro Rev.C1 -UTC217.001 USB Type-C docking station USB keyboard (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the external USB keyboard connected to the - ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Usb Type-C Docking Station Usb Keyboard 001 Enabled WL-UMD05 Pro Rev.C1 +# Not automated +# UTC217.001 USB Type-C docking station USB keyboard (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] Check whether the external USB keyboard connected to the +# ... docking station is detected correctly. +# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} +# Usb Type-C Docking Station Usb Keyboard 001 Enabled WL-UMD05 Pro Rev.C1 UTC205.201 USB Type-C PD power input (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT can be charged using a @@ -1408,6 +1438,7 @@ UTC247.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: E Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC249.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) @@ -1416,6 +1447,7 @@ UTC249.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: E Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC251.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) @@ -1424,6 +1456,7 @@ UTC251.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Ena Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC253.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) @@ -1433,6 +1466,7 @@ UTC253.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: En Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC255.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) @@ -1442,6 +1476,7 @@ UTC255.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC257.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) @@ -1451,6 +1486,7 @@ UTC257.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (M Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC205.202 USB Type-C PD power input (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) @@ -1622,6 +1658,7 @@ UTC247.202 Docking station detection after coldboot then hotplug (Fedora) (ME: E Skip If '${POWER_CTRL}' == 'none' Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC249.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) @@ -1629,6 +1666,7 @@ UTC249.202 Docking station detection after warmboot then hotplug (Fedora) (ME: E ... after warmboot then hotplug. Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC251.202 Docking station detection after reboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) @@ -1636,6 +1674,7 @@ UTC251.202 Docking station detection after reboot then hotplug (Fedora) (ME: Ena ... after reboot then hotplug. Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC253.202 Docking station detection after suspend then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) @@ -1644,6 +1683,7 @@ UTC253.202 Docking station detection after suspend then hotplug (Fedora) (ME: En Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC255.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) @@ -1652,6 +1692,7 @@ UTC255.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC257.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) @@ -1660,6 +1701,7 @@ UTC257.202 Docking station detection after suspend then hotplug (S3) (Fedora) (M Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC205.301 USB Type-C PD power input (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) @@ -1791,17 +1833,19 @@ UTC231.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) # ... to provide charging to a USB Type-C accessory. # Thunderbolt 4 Usb Type-C Power Output 001 Disabled WL-UMD05 Pro Rev.C1 -UTC216.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the external USB devices connected to the - ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Usb Type-C Docking Station Usb Devices Recognition 001 Disabled WL-UMD05 Pro Rev.C1 +# Not automated +# UTC216.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] Check whether the external USB devices connected to the +# ... docking station are detected correctly +# Skip If not ${DOCKING_STATION_USB_SUPPORT} +# Usb Type-C Docking Station Usb Devices Recognition 001 Disabled WL-UMD05 Pro Rev.C1 -UTC218.001 USB Type-C docking station USB keyboard (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the external USB keyboard connected to the - ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Usb Type-C Docking Station Usb Keyboard 001 Disabled WL-UMD05 Pro Rev.C1 +# Not automated +# UTC218.001 USB Type-C docking station USB keyboard (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] Check whether the external USB keyboard connected to the +# ... docking station is detected correctly. +# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} +# Usb Type-C Docking Station Usb Keyboard 001 Disabled WL-UMD05 Pro Rev.C1 UTC206.201 USB Type-C PD power input (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT can be charged using a @@ -1994,6 +2038,7 @@ UTC248.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: D Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC250.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) @@ -2002,6 +2047,7 @@ UTC250.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: D Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC252.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) @@ -2010,6 +2056,7 @@ UTC252.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Dis Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC254.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) @@ -2019,6 +2066,7 @@ UTC254.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Di Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC256.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) @@ -2028,6 +2076,7 @@ UTC256.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC258.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) @@ -2037,6 +2086,7 @@ UTC258.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (M Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC206.202 USB Type-C PD power input (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) @@ -2208,6 +2258,7 @@ UTC248.202 Docking station detection after coldboot then hotplug (Fedora) (ME: D Skip If '${POWER_CTRL}' == 'none' Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC250.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) @@ -2215,6 +2266,7 @@ UTC250.202 Docking station detection after warmboot then hotplug (Fedora) (ME: D ... after warmboot then hotplug. Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC252.202 Docking station detection after reboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) @@ -2222,6 +2274,7 @@ UTC252.202 Docking station detection after reboot then hotplug (Fedora) (ME: Dis ... after reboot then hotplug. Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC254.202 Docking station detection after suspend then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) @@ -2230,6 +2283,7 @@ UTC254.202 Docking station detection after suspend then hotplug (Fedora) (ME: Di Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC256.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) @@ -2238,6 +2292,7 @@ UTC256.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC258.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) @@ -2246,6 +2301,7 @@ UTC258.202 Docking station detection after suspend then hotplug (S3) (Fedora) (M Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC206.301 USB Type-C PD power input (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) @@ -2377,17 +2433,19 @@ UTC232.301 USB Type-C docking station SD Card read/write (Windows) (ME: Disabled # ... to provide charging to a USB Type-C accessory. # Thunderbolt 4 Usb Type-C Power Output 001 Enabled WL-UG69PD2 Rev.A1 -UTC315.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Enabled) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the external USB devices connected to the - ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Usb Type-C Docking Station Usb Devices Recognition 001 Enabled WL-UG69PD2 Rev.A1 +# Not automated +# UTC315.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] Check whether the external USB devices connected to the +# ... docking station are detected correctly +# Skip If not ${DOCKING_STATION_USB_SUPPORT} +# Usb Type-C Docking Station Usb Devices Recognition 001 Enabled WL-UG69PD2 Rev.A1 -UTC317.001 USB Type-C docking station USB keyboard (Firmware) (ME: Enabled) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the external USB keyboard connected to the - ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Usb Type-C Docking Station Usb Keyboard 001 Enabled WL-UG69PD2 Rev.A1 +# Not automated +# UTC317.001 USB Type-C docking station USB keyboard (Firmware) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] Check whether the external USB keyboard connected to the +# ... docking station is detected correctly. +# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} +# Usb Type-C Docking Station Usb Keyboard 001 Enabled WL-UG69PD2 Rev.A1 UTC305.201 USB Type-C PD power input (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT can be charged using a @@ -2580,6 +2638,7 @@ UTC347.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: E Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC349.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) @@ -2588,6 +2647,7 @@ UTC349.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: E Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC351.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) @@ -2596,6 +2656,7 @@ UTC351.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Ena Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC353.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) @@ -2605,6 +2666,7 @@ UTC353.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: En Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC355.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) @@ -2614,6 +2676,7 @@ UTC355.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC357.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) @@ -2623,6 +2686,7 @@ UTC357.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (M Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC305.202 USB Type-C PD power input (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) @@ -2794,6 +2858,7 @@ UTC347.202 Docking station detection after coldboot then hotplug (Fedora) (ME: E Skip If '${POWER_CTRL}' == 'none' Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC349.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) @@ -2801,6 +2866,7 @@ UTC349.202 Docking station detection after warmboot then hotplug (Fedora) (ME: E ... after warmboot then hotplug. Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC351.202 Docking station detection after reboot then hotplug (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) @@ -2808,6 +2874,7 @@ UTC351.202 Docking station detection after reboot then hotplug (Fedora) (ME: Ena ... after reboot then hotplug. Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC353.202 Docking station detection after suspend then hotplug (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) @@ -2816,6 +2883,7 @@ UTC353.202 Docking station detection after suspend then hotplug (Fedora) (ME: En Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC355.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) @@ -2824,6 +2892,7 @@ UTC355.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC357.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) @@ -2832,6 +2901,7 @@ UTC357.202 Docking station detection after suspend then hotplug (S3) (Fedora) (M Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC305.301 USB Type-C PD power input (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) @@ -2963,17 +3033,19 @@ UTC331.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) # ... to provide charging to a USB Type-C accessory. # Thunderbolt 4 Usb Type-C Power Output 001 Disabled WL-UG69PD2 Rev.A1 -UTC316.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Disabled) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the external USB devices connected to the - ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Usb Type-C Docking Station Usb Devices Recognition 001 Disabled WL-UG69PD2 Rev.A1 +# Not automated +# UTC316.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] Check whether the external USB devices connected to the +# ... docking station are detected correctly +# Skip If not ${DOCKING_STATION_USB_SUPPORT} +# Usb Type-C Docking Station Usb Devices Recognition 001 Disabled WL-UG69PD2 Rev.A1 -UTC318.001 USB Type-C docking station USB keyboard (Firmware) (ME: Disabled) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the external USB keyboard connected to the - ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Usb Type-C Docking Station Usb Keyboard 001 Disabled WL-UG69PD2 Rev.A1 +# Not automated +# UTC318.001 USB Type-C docking station USB keyboard (Firmware) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] Check whether the external USB keyboard connected to the +# ... docking station is detected correctly. +# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} +# Usb Type-C Docking Station Usb Keyboard 001 Disabled WL-UG69PD2 Rev.A1 UTC306.201 USB Type-C PD power input (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT can be charged using a @@ -3166,6 +3238,7 @@ UTC348.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: D Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC350.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) @@ -3174,6 +3247,7 @@ UTC350.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: D Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC352.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) @@ -3182,6 +3256,7 @@ UTC352.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Dis Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC354.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) @@ -3191,6 +3266,7 @@ UTC354.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Di Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC356.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) @@ -3200,6 +3276,7 @@ UTC356.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC358.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) @@ -3209,6 +3286,7 @@ UTC358.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (M Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC306.202 USB Type-C PD power input (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) @@ -3380,6 +3458,7 @@ UTC348.202 Docking station detection after coldboot then hotplug (Fedora) (ME: D Skip If '${POWER_CTRL}' == 'none' Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC350.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) @@ -3387,6 +3466,7 @@ UTC350.202 Docking station detection after warmboot then hotplug (Fedora) (ME: D ... after warmboot then hotplug. Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC352.202 Docking station detection after reboot then hotplug (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) @@ -3394,6 +3474,7 @@ UTC352.202 Docking station detection after reboot then hotplug (Fedora) (ME: Dis ... after reboot then hotplug. Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC354.202 Docking station detection after suspend then hotplug (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) @@ -3402,6 +3483,7 @@ UTC354.202 Docking station detection after suspend then hotplug (Fedora) (ME: Di Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC356.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) @@ -3410,6 +3492,7 @@ UTC356.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC358.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) @@ -3418,6 +3501,7 @@ UTC358.202 Docking station detection after suspend then hotplug (S3) (Fedora) (M Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} Skip If not ${DOCKING_STATION_DETECT_SUPPORT} Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC306.301 USB Type-C PD power input (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) From 07cd08059c16ab01a431911580f0cc654978ab98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 10 Apr 2025 11:01:01 +0200 Subject: [PATCH 381/416] utc_generator: Remove not automated cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- scripts/utc_generator.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/utc_generator.py b/scripts/utc_generator.py index 7923c92bf1..b7ab77001d 100644 --- a/scripts/utc_generator.py +++ b/scripts/utc_generator.py @@ -48,7 +48,7 @@ "automation": "manual", }, "USB Type-C Display output": { - "env_ids": ["201", "202", "301"], + "env_ids": ["201", "202"], "doc": "Check whether the DUT can detect the USB Type-C hub.", "skips": ["not ${USB_TYPE_C_DISPLAY_SUPPORT}"], "automation": "auto", @@ -108,7 +108,7 @@ "automation": "auto", }, "USB Type-C docking station audio recognition": { - "env_ids": ["201", "202", "301"], + "env_ids": ["201", "202"], "doc": """This test aims to verify that the external headset is ... properly recognized after plugging in the 3.5 mm jack into ... the docking station.""", @@ -319,7 +319,7 @@ def full_test_name(test_row): # Skips dependent on env/os ID if row["OS ID"] == "301": robot_tests_lines[idx].append( - " Skip If not ${TESTS_IN_WINDOWS_SUPPORT}\n" + f" Skip If not ${{TESTS_IN_WINDOWS_SUPPORT}} {row['Test ID']} not supported\n" ) if row["OS ID"] == "201": robot_tests_lines[idx].append( @@ -340,7 +340,7 @@ def full_test_name(test_row): keyword_call = f"{row['Test Name'].title()} {os_id_variable_names[row['OS ID']]} {row['ME State']} {row['Dock']}\n" robot_tests_lines[idx].append(f" {keyword_call}\n") - if row["automation"] == "manual": + if row["automation"] == "manual" or row["OS ID"] == "001": robot_tests_lines[idx] = ["# " + line for line in robot_tests_lines[idx]] robot_tests_lines[idx].insert(0, "# Not automated\n") From 35420e8cd1df66f7332aff6a5cfc2aa6d4733aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 10 Apr 2025 11:03:38 +0200 Subject: [PATCH 382/416] lib/utc: Ensure ME State: Check the actual ME state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/utc.robot | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/utc.robot b/lib/utc.robot index 1517b8b1c6..51982c01bf 100644 --- a/lib/utc.robot +++ b/lib/utc.robot @@ -34,6 +34,12 @@ Ensure ME State END Set Suite Variable ${UTC_CURRENT_ME_STATE} ${me_state} END + Boot System Or From Connected Disk ${BOOTED_OS_ID} + Login To Linux + Switch To Root User + ${actual_me_state}= Check ME Out + Should Contain ${actual_me_state} ${me_state} + Exit From Root User # Not automated # Usb Type-A Charging Capability From c2d8874894248ab72c328b0c9a93e3d38ca90bdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 10 Apr 2025 11:05:12 +0200 Subject: [PATCH 383/416] options-lib_dcu: Boot System...: Allow returning back from Windows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/options/options-lib_dcu.robot | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index bc15022ddc..93c99ca78d 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -172,6 +172,11 @@ Boot System Or From Connected Disk [Documentation] Keyword makes the DUT to reboot in chosen OS. [Arguments] ${env_id} + IF '${BOOTED_OS_ID}'.startswith('3') # Windows + Execute Reboot Command windows + Boot System Or From Connected Disk ${DEFAULT_BOOT_OS_ID} + END + ${os_boot_id}= Set Variable ${EMPTY} ${os_bootentry_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} From fcb6fdae18ea4e922ad704cb064743c63b743cfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Thu, 10 Apr 2025 11:06:57 +0200 Subject: [PATCH 384/416] usb-type-c.robot: Update using generator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- dasharo-compatibility/usb-type-c.robot | 2430 ++++++++++++------------ 1 file changed, 1218 insertions(+), 1212 deletions(-) diff --git a/dasharo-compatibility/usb-type-c.robot b/dasharo-compatibility/usb-type-c.robot index 11631cb36f..2e72d98e24 100644 --- a/dasharo-compatibility/usb-type-c.robot +++ b/dasharo-compatibility/usb-type-c.robot @@ -37,49 +37,50 @@ Suite Teardown Run Keyword # UTC115.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.E) # [Documentation] Check whether the external USB devices connected to the # ... docking station are detected correctly -# Skip If not ${DOCKING_STATION_USB_SUPPORT} +# Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC115.001 not supported # Usb Type-C Docking Station Usb Devices Recognition 001 Enabled WL-UMD05 Pro Rev.E # Not automated # UTC117.001 USB Type-C docking station USB keyboard (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.E) # [Documentation] Check whether the external USB keyboard connected to the # ... docking station is detected correctly. -# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} +# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC117.001 not supported # Usb Type-C Docking Station Usb Keyboard 001 Enabled WL-UMD05 Pro Rev.E -UTC105.201 USB Type-C PD power input (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} - Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E +# Not automated +# UTC105.201 USB Type-C PD power input (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC105.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC105.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC105.201 not supported +# Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC107.201 USB Type-C Display output (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC107.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC107.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC107.201 not supported Usb Type-C Display Output ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC109.201 USB Type-C docking station HDMI display (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_HDMI} UTC109.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC109.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC109.201 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC111.201 USB Type-C docking station DP display (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC111.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC111.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC111.201 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -87,24 +88,24 @@ UTC111.201 USB Type-C docking station DP display (Ubuntu) (ME: Enabled) (WL-UMD0 # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC113.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC113.201 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC115.201 USB Type-C docking station USB devices recognition (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC115.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC115.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC115.201 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC117.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC117.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC117.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC117.201 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -112,26 +113,26 @@ UTC117.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Enabled) (WL-UM # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC119.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC119.201 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC121.201 USB Type-C docking station Ethernet connection (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC121.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC121.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC121.201 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC123.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the external headset is ... properly recognized after plugging in the 3.5 mm jack into ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC123.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC123.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC123.201 not supported Usb Type-C Docking Station Audio Recognition ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -139,9 +140,9 @@ UTC123.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Enabled) ( # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC125.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC125.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC125.201 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -149,25 +150,25 @@ UTC123.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Enabled) ( # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC127.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC127.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC127.201 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC129.201 USB Type-C docking station SD Card reader detection (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC129.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC129.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC129.201 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC131.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC131.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC131.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC131.201 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -175,149 +176,156 @@ UTC131.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Enabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC133.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC133.201 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC135.201 Docking station detection after coldboot (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether he DUT properly detects the docking station ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If '${POWER_CTRL}' == 'none' UTC135.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC135.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC135.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC135.201 not supported Docking Station Detection After Coldboot ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC137.201 Docking station detection after warmboot (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether he DUT properly detects the docking station ... after warmboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC137.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC137.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC137.201 not supported Docking Station Detection After Warmboot ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC139.201 Docking station detection after reboot (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after reboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC139.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC139.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC139.201 not supported Docking Station Detection After Reboot ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC141.201 Docking station detection after suspend (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC141.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC141.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC141.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC141.201 not supported Docking Station Detection After Suspend ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC143.201 Docking station detection after suspend (S0ix) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend '${POWER_CTRL}' == 'none'(S0ix). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC143.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC143.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC143.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC143.201 not supported Docking Station Detection After Suspend (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC145.201 Docking station detection after suspend (S3) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC145.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC145.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC145.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC145.201 not supported Docking Station Detection After Suspend (S3) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC147.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after coldboot then hotplug. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If '${POWER_CTRL}' == 'none' UTC147.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC147.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC147.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC147.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC149.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after warmboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC149.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC149.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC149.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC151.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after reboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC151.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC151.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC151.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC153.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend then hotplug. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC153.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC153.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC153.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC153.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC155.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S0ix) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC155.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC155.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC155.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC155.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E UTC157.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC157.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC157.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC157.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC157.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.E -UTC105.202 USB Type-C PD power input (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} - Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E +# Not automated +# UTC105.202 USB Type-C PD power input (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC105.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC105.202 not supported +# Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC107.202 USB Type-C Display output (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC107.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC107.202 not supported Usb Type-C Display Output ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC109.202 USB Type-C docking station HDMI display (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_HDMI} UTC109.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC109.202 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC111.202 USB Type-C docking station DP display (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC111.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC111.202 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -325,21 +333,21 @@ UTC111.202 USB Type-C docking station DP display (Fedora) (ME: Enabled) (WL-UMD0 # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC113.202 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC115.202 USB Type-C docking station USB devices recognition (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC115.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC115.202 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC117.202 USB Type-C docking station USB keyboard (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC117.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC117.202 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -347,23 +355,23 @@ UTC117.202 USB Type-C docking station USB keyboard (Fedora) (ME: Enabled) (WL-UM # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC119.202 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC121.202 USB Type-C docking station Ethernet connection (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC121.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC121.202 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC123.202 USB Type-C docking station audio recognition (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the external headset is ... properly recognized after plugging in the 3.5 mm jack into ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC123.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC123.202 not supported Usb Type-C Docking Station Audio Recognition ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -371,8 +379,8 @@ UTC123.202 USB Type-C docking station audio recognition (Fedora) (ME: Enabled) ( # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC125.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC125.202 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -380,22 +388,22 @@ UTC123.202 USB Type-C docking station audio recognition (Fedora) (ME: Enabled) ( # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC127.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC127.202 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC129.202 USB Type-C docking station SD Card reader detection (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC129.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC129.202 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC131.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC131.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC131.202 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -403,136 +411,137 @@ UTC131.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Enabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC133.202 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC135.202 Docking station detection after coldboot (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether he DUT properly detects the docking station ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If '${POWER_CTRL}' == 'none' UTC135.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC135.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC135.202 not supported Docking Station Detection After Coldboot ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC137.202 Docking station detection after warmboot (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether he DUT properly detects the docking station ... after warmboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC137.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC137.202 not supported Docking Station Detection After Warmboot ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC139.202 Docking station detection after reboot (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after reboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC139.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC139.202 not supported Docking Station Detection After Reboot ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC141.202 Docking station detection after suspend (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC141.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC141.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC141.202 not supported Docking Station Detection After Suspend ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC143.202 Docking station detection after suspend (S0ix) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend '${POWER_CTRL}' == 'none'(S0ix). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC143.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC143.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC143.202 not supported Docking Station Detection After Suspend (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC145.202 Docking station detection after suspend (S3) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC145.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC145.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC145.202 not supported Docking Station Detection After Suspend (S3) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC147.202 Docking station detection after coldboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after coldboot then hotplug. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If '${POWER_CTRL}' == 'none' UTC147.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC147.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC147.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC149.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after warmboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC149.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC149.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC151.202 Docking station detection after reboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after reboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC151.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC151.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC153.202 Docking station detection after suspend then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend then hotplug. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC153.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC153.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC153.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC155.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S0ix) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC155.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC155.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC155.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E UTC157.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC157.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC157.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC157.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.E -UTC105.301 USB Type-C PD power input (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E - -UTC107.301 USB Type-C Display output (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Display Output ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E +# Not automated +# UTC105.301 USB Type-C PD power input (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC105.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC105.301 not supported +# Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E UTC109.301 USB Type-C docking station HDMI display (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_HDMI} UTC109.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC109.301 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E UTC111.301 USB Type-C docking station DP display (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC111.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC111.301 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -540,21 +549,21 @@ UTC111.301 USB Type-C docking station DP display (Windows) (ME: Enabled) (WL-UMD # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC113.301 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E UTC115.301 USB Type-C docking station USB devices recognition (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC115.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC115.301 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E UTC117.301 USB Type-C docking station USB keyboard (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC117.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC117.301 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -562,32 +571,24 @@ UTC117.301 USB Type-C docking station USB keyboard (Windows) (ME: Enabled) (WL-U # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC119.301 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E UTC121.301 USB Type-C docking station Ethernet connection (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC121.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC121.301 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E -UTC123.301 USB Type-C docking station audio recognition (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) - [Documentation] This test aims to verify that the external headset is - ... properly recognized after plugging in the 3.5 mm jack into - ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Docking Station Audio Recognition ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E - # Not automated # UTC125.301 USB Type-C docking station audio playback (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC125.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC125.301 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -595,22 +596,22 @@ UTC123.301 USB Type-C docking station audio recognition (Windows) (ME: Enabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC127.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC127.301 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E UTC129.301 USB Type-C docking station SD Card reader detection (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC129.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC129.301 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E UTC131.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC131.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC131.301 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -618,7 +619,7 @@ UTC131.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC133.301 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.E # Not automated @@ -637,49 +638,50 @@ UTC131.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) # UTC116.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.E) # [Documentation] Check whether the external USB devices connected to the # ... docking station are detected correctly -# Skip If not ${DOCKING_STATION_USB_SUPPORT} +# Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC116.001 not supported # Usb Type-C Docking Station Usb Devices Recognition 001 Disabled WL-UMD05 Pro Rev.E # Not automated # UTC118.001 USB Type-C docking station USB keyboard (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.E) # [Documentation] Check whether the external USB keyboard connected to the # ... docking station is detected correctly. -# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} +# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC118.001 not supported # Usb Type-C Docking Station Usb Keyboard 001 Disabled WL-UMD05 Pro Rev.E -UTC106.201 USB Type-C PD power input (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} - Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E +# Not automated +# UTC106.201 USB Type-C PD power input (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC106.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC106.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC106.201 not supported +# Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC108.201 USB Type-C Display output (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC108.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC108.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC108.201 not supported Usb Type-C Display Output ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC110.201 USB Type-C docking station HDMI display (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_HDMI} UTC110.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC110.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC110.201 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC112.201 USB Type-C docking station DP display (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC112.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC112.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC112.201 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -687,24 +689,24 @@ UTC112.201 USB Type-C docking station DP display (Ubuntu) (ME: Disabled) (WL-UMD # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC114.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC114.201 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC116.201 USB Type-C docking station USB devices recognition (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC116.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC116.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC116.201 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC118.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC118.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC118.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC118.201 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -712,26 +714,26 @@ UTC118.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Disabled) (WL-U # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC120.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC120.201 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC122.201 USB Type-C docking station Ethernet connection (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC122.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC122.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC122.201 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC124.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the external headset is ... properly recognized after plugging in the 3.5 mm jack into ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC124.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC124.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC124.201 not supported Usb Type-C Docking Station Audio Recognition ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -739,9 +741,9 @@ UTC124.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC126.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC126.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC126.201 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -749,25 +751,25 @@ UTC124.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC128.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC128.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC128.201 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC130.201 USB Type-C docking station SD Card reader detection (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC130.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC130.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC130.201 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC132.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC132.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC132.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC132.201 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -775,149 +777,156 @@ UTC132.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Disabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC134.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC134.201 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC136.201 Docking station detection after coldboot (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether he DUT properly detects the docking station ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If '${POWER_CTRL}' == 'none' UTC136.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC136.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC136.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC136.201 not supported Docking Station Detection After Coldboot ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC138.201 Docking station detection after warmboot (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether he DUT properly detects the docking station ... after warmboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC138.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC138.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC138.201 not supported Docking Station Detection After Warmboot ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC140.201 Docking station detection after reboot (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after reboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC140.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC140.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC140.201 not supported Docking Station Detection After Reboot ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC142.201 Docking station detection after suspend (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC142.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC142.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC142.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC142.201 not supported Docking Station Detection After Suspend ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC144.201 Docking station detection after suspend (S0ix) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend '${POWER_CTRL}' == 'none'(S0ix). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC144.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC144.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC144.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC144.201 not supported Docking Station Detection After Suspend (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC146.201 Docking station detection after suspend (S3) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC146.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC146.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC146.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC146.201 not supported Docking Station Detection After Suspend (S3) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC148.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after coldboot then hotplug. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If '${POWER_CTRL}' == 'none' UTC148.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC148.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC148.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC148.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC150.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after warmboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC150.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC150.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC150.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC152.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after reboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC152.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC152.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC152.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC154.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend then hotplug. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC154.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC154.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC154.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC154.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC156.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S0ix) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC156.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC156.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC156.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC156.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E UTC158.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC158.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC158.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC158.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC158.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.E -UTC106.202 USB Type-C PD power input (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} - Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E +# Not automated +# UTC106.202 USB Type-C PD power input (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC106.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC106.202 not supported +# Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC108.202 USB Type-C Display output (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC108.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC108.202 not supported Usb Type-C Display Output ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC110.202 USB Type-C docking station HDMI display (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_HDMI} UTC110.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC110.202 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC112.202 USB Type-C docking station DP display (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC112.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC112.202 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -925,21 +934,21 @@ UTC112.202 USB Type-C docking station DP display (Fedora) (ME: Disabled) (WL-UMD # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC114.202 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC116.202 USB Type-C docking station USB devices recognition (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC116.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC116.202 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC118.202 USB Type-C docking station USB keyboard (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC118.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC118.202 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -947,23 +956,23 @@ UTC118.202 USB Type-C docking station USB keyboard (Fedora) (ME: Disabled) (WL-U # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC120.202 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC122.202 USB Type-C docking station Ethernet connection (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC122.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC122.202 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC124.202 USB Type-C docking station audio recognition (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the external headset is ... properly recognized after plugging in the 3.5 mm jack into ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC124.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC124.202 not supported Usb Type-C Docking Station Audio Recognition ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -971,8 +980,8 @@ UTC124.202 USB Type-C docking station audio recognition (Fedora) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC126.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC126.202 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -980,22 +989,22 @@ UTC124.202 USB Type-C docking station audio recognition (Fedora) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC128.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC128.202 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC130.202 USB Type-C docking station SD Card reader detection (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC130.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC130.202 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC132.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC132.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC132.202 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -1003,136 +1012,137 @@ UTC132.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Disabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC134.202 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC136.202 Docking station detection after coldboot (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether he DUT properly detects the docking station ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If '${POWER_CTRL}' == 'none' UTC136.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC136.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC136.202 not supported Docking Station Detection After Coldboot ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC138.202 Docking station detection after warmboot (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether he DUT properly detects the docking station ... after warmboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC138.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC138.202 not supported Docking Station Detection After Warmboot ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC140.202 Docking station detection after reboot (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after reboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC140.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC140.202 not supported Docking Station Detection After Reboot ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC142.202 Docking station detection after suspend (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC142.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC142.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC142.202 not supported Docking Station Detection After Suspend ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC144.202 Docking station detection after suspend (S0ix) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend '${POWER_CTRL}' == 'none'(S0ix). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC144.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC144.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC144.202 not supported Docking Station Detection After Suspend (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC146.202 Docking station detection after suspend (S3) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC146.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC146.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC146.202 not supported Docking Station Detection After Suspend (S3) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC148.202 Docking station detection after coldboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after coldboot then hotplug. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If '${POWER_CTRL}' == 'none' UTC148.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC148.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC148.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC150.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after warmboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC150.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC150.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC152.202 Docking station detection after reboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after reboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC152.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC152.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC154.202 Docking station detection after suspend then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend then hotplug. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC154.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC154.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC154.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC156.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S0ix) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC156.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC156.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC156.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E UTC158.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC158.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC158.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC158.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.E -UTC106.301 USB Type-C PD power input (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E - -UTC108.301 USB Type-C Display output (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) - [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Display Output ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E +# Not automated +# UTC106.301 USB Type-C PD power input (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC106.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC106.301 not supported +# Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E UTC110.301 USB Type-C docking station HDMI display (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_HDMI} UTC110.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC110.301 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E UTC112.301 USB Type-C docking station DP display (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC112.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC112.301 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -1140,21 +1150,21 @@ UTC112.301 USB Type-C docking station DP display (Windows) (ME: Disabled) (WL-UM # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC114.301 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E UTC116.301 USB Type-C docking station USB devices recognition (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC116.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC116.301 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E UTC118.301 USB Type-C docking station USB keyboard (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC118.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC118.301 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -1162,32 +1172,24 @@ UTC118.301 USB Type-C docking station USB keyboard (Windows) (ME: Disabled) (WL- # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC120.301 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E UTC122.301 USB Type-C docking station Ethernet connection (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC122.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC122.301 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E -UTC124.301 USB Type-C docking station audio recognition (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) - [Documentation] This test aims to verify that the external headset is - ... properly recognized after plugging in the 3.5 mm jack into - ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Docking Station Audio Recognition ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E - # Not automated # UTC126.301 USB Type-C docking station audio playback (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC126.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC126.301 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -1195,22 +1197,22 @@ UTC124.301 USB Type-C docking station audio recognition (Windows) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC128.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC128.301 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E UTC130.301 USB Type-C docking station SD Card reader detection (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC130.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC130.301 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E UTC132.301 USB Type-C docking station SD Card read/write (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.E) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC132.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC132.301 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -1218,7 +1220,7 @@ UTC132.301 USB Type-C docking station SD Card read/write (Windows) (ME: Disabled # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC134.301 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.E # Not automated @@ -1237,49 +1239,50 @@ UTC132.301 USB Type-C docking station SD Card read/write (Windows) (ME: Disabled # UTC215.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.C1) # [Documentation] Check whether the external USB devices connected to the # ... docking station are detected correctly -# Skip If not ${DOCKING_STATION_USB_SUPPORT} +# Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC215.001 not supported # Usb Type-C Docking Station Usb Devices Recognition 001 Enabled WL-UMD05 Pro Rev.C1 # Not automated # UTC217.001 USB Type-C docking station USB keyboard (Firmware) (ME: Enabled) (WL-UMD05 Pro Rev.C1) # [Documentation] Check whether the external USB keyboard connected to the # ... docking station is detected correctly. -# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} +# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC217.001 not supported # Usb Type-C Docking Station Usb Keyboard 001 Enabled WL-UMD05 Pro Rev.C1 -UTC205.201 USB Type-C PD power input (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} - Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 +# Not automated +# UTC205.201 USB Type-C PD power input (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC205.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC205.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC205.201 not supported +# Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC207.201 USB Type-C Display output (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC207.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC207.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC207.201 not supported Usb Type-C Display Output ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC209.201 USB Type-C docking station HDMI display (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_HDMI} UTC209.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC209.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC209.201 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC211.201 USB Type-C docking station DP display (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC211.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC211.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC211.201 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1287,24 +1290,24 @@ UTC211.201 USB Type-C docking station DP display (Ubuntu) (ME: Enabled) (WL-UMD0 # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC213.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC213.201 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC215.201 USB Type-C docking station USB devices recognition (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC215.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC215.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC215.201 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC217.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC217.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC217.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC217.201 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1312,26 +1315,26 @@ UTC217.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Enabled) (WL-UM # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC219.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC219.201 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC221.201 USB Type-C docking station Ethernet connection (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC221.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC221.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC221.201 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC223.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the external headset is ... properly recognized after plugging in the 3.5 mm jack into ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC223.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC223.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC223.201 not supported Usb Type-C Docking Station Audio Recognition ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1339,9 +1342,9 @@ UTC223.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Enabled) ( # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC225.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC225.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC225.201 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1349,25 +1352,25 @@ UTC223.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Enabled) ( # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC227.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC227.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC227.201 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC229.201 USB Type-C docking station SD Card reader detection (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC229.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC229.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC229.201 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC231.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC231.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC231.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC231.201 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1375,149 +1378,156 @@ UTC231.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Enabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC233.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC233.201 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC235.201 Docking station detection after coldboot (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether he DUT properly detects the docking station ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If '${POWER_CTRL}' == 'none' UTC235.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC235.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC235.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC235.201 not supported Docking Station Detection After Coldboot ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC237.201 Docking station detection after warmboot (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether he DUT properly detects the docking station ... after warmboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC237.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC237.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC237.201 not supported Docking Station Detection After Warmboot ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC239.201 Docking station detection after reboot (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC239.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC239.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC239.201 not supported Docking Station Detection After Reboot ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC241.201 Docking station detection after suspend (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC241.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC241.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC241.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC241.201 not supported Docking Station Detection After Suspend ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC243.201 Docking station detection after suspend (S0ix) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend '${POWER_CTRL}' == 'none'(S0ix). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC243.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC243.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC243.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC243.201 not supported Docking Station Detection After Suspend (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC245.201 Docking station detection after suspend (S3) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC245.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC245.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC245.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC245.201 not supported Docking Station Detection After Suspend (S3) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC247.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after coldboot then hotplug. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If '${POWER_CTRL}' == 'none' UTC247.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC247.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC247.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC247.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC249.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after warmboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC249.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC249.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC249.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC251.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC251.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC251.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC251.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC253.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend then hotplug. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC253.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC253.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC253.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC253.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC255.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S0ix) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC255.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC255.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC255.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC255.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 UTC257.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC257.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC257.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC257.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC257.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Enabled WL-UMD05 Pro Rev.C1 -UTC205.202 USB Type-C PD power input (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} - Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 +# Not automated +# UTC205.202 USB Type-C PD power input (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC205.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC205.202 not supported +# Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC207.202 USB Type-C Display output (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC207.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC207.202 not supported Usb Type-C Display Output ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC209.202 USB Type-C docking station HDMI display (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_HDMI} UTC209.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC209.202 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC211.202 USB Type-C docking station DP display (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC211.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC211.202 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1525,21 +1535,21 @@ UTC211.202 USB Type-C docking station DP display (Fedora) (ME: Enabled) (WL-UMD0 # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC213.202 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC215.202 USB Type-C docking station USB devices recognition (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC215.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC215.202 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC217.202 USB Type-C docking station USB keyboard (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC217.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC217.202 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1547,23 +1557,23 @@ UTC217.202 USB Type-C docking station USB keyboard (Fedora) (ME: Enabled) (WL-UM # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC219.202 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC221.202 USB Type-C docking station Ethernet connection (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC221.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC221.202 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC223.202 USB Type-C docking station audio recognition (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the external headset is ... properly recognized after plugging in the 3.5 mm jack into ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC223.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC223.202 not supported Usb Type-C Docking Station Audio Recognition ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1571,8 +1581,8 @@ UTC223.202 USB Type-C docking station audio recognition (Fedora) (ME: Enabled) ( # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC225.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC225.202 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1580,22 +1590,22 @@ UTC223.202 USB Type-C docking station audio recognition (Fedora) (ME: Enabled) ( # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC227.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC227.202 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC229.202 USB Type-C docking station SD Card reader detection (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC229.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC229.202 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC231.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC231.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC231.202 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1603,136 +1613,137 @@ UTC231.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Enabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC233.202 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC235.202 Docking station detection after coldboot (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether he DUT properly detects the docking station ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If '${POWER_CTRL}' == 'none' UTC235.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC235.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC235.202 not supported Docking Station Detection After Coldboot ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC237.202 Docking station detection after warmboot (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether he DUT properly detects the docking station ... after warmboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC237.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC237.202 not supported Docking Station Detection After Warmboot ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC239.202 Docking station detection after reboot (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC239.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC239.202 not supported Docking Station Detection After Reboot ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC241.202 Docking station detection after suspend (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC241.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC241.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC241.202 not supported Docking Station Detection After Suspend ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC243.202 Docking station detection after suspend (S0ix) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend '${POWER_CTRL}' == 'none'(S0ix). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC243.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC243.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC243.202 not supported Docking Station Detection After Suspend (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC245.202 Docking station detection after suspend (S3) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC245.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC245.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC245.202 not supported Docking Station Detection After Suspend (S3) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC247.202 Docking station detection after coldboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after coldboot then hotplug. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If '${POWER_CTRL}' == 'none' UTC247.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC247.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC247.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC249.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after warmboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC249.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC249.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC251.202 Docking station detection after reboot then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC251.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC251.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC253.202 Docking station detection after suspend then hotplug (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend then hotplug. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC253.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC253.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC253.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC255.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S0ix) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC255.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC255.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC255.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 UTC257.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC257.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC257.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC257.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Enabled WL-UMD05 Pro Rev.C1 -UTC205.301 USB Type-C PD power input (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 - -UTC207.301 USB Type-C Display output (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Display Output ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 +# Not automated +# UTC205.301 USB Type-C PD power input (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC205.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC205.301 not supported +# Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 UTC209.301 USB Type-C docking station HDMI display (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_HDMI} UTC209.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC209.301 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 UTC211.301 USB Type-C docking station DP display (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC211.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC211.301 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1740,21 +1751,21 @@ UTC211.301 USB Type-C docking station DP display (Windows) (ME: Enabled) (WL-UMD # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC213.301 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 UTC215.301 USB Type-C docking station USB devices recognition (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC215.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC215.301 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 UTC217.301 USB Type-C docking station USB keyboard (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC217.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC217.301 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1762,32 +1773,24 @@ UTC217.301 USB Type-C docking station USB keyboard (Windows) (ME: Enabled) (WL-U # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC219.301 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 UTC221.301 USB Type-C docking station Ethernet connection (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC221.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC221.301 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 -UTC223.301 USB Type-C docking station audio recognition (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) - [Documentation] This test aims to verify that the external headset is - ... properly recognized after plugging in the 3.5 mm jack into - ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Docking Station Audio Recognition ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 - # Not automated # UTC225.301 USB Type-C docking station audio playback (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC225.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC225.301 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1795,22 +1798,22 @@ UTC223.301 USB Type-C docking station audio recognition (Windows) (ME: Enabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC227.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC227.301 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 UTC229.301 USB Type-C docking station SD Card reader detection (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC229.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC229.301 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 UTC231.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC231.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC231.301 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1818,7 +1821,7 @@ UTC231.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC233.301 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_WINDOWS} Enabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1837,49 +1840,50 @@ UTC231.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) # UTC216.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.C1) # [Documentation] Check whether the external USB devices connected to the # ... docking station are detected correctly -# Skip If not ${DOCKING_STATION_USB_SUPPORT} +# Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC216.001 not supported # Usb Type-C Docking Station Usb Devices Recognition 001 Disabled WL-UMD05 Pro Rev.C1 # Not automated # UTC218.001 USB Type-C docking station USB keyboard (Firmware) (ME: Disabled) (WL-UMD05 Pro Rev.C1) # [Documentation] Check whether the external USB keyboard connected to the # ... docking station is detected correctly. -# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} +# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC218.001 not supported # Usb Type-C Docking Station Usb Keyboard 001 Disabled WL-UMD05 Pro Rev.C1 -UTC206.201 USB Type-C PD power input (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} - Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 +# Not automated +# UTC206.201 USB Type-C PD power input (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC206.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC206.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC206.201 not supported +# Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC208.201 USB Type-C Display output (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC208.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC208.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC208.201 not supported Usb Type-C Display Output ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC210.201 USB Type-C docking station HDMI display (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_HDMI} UTC210.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC210.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC210.201 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC212.201 USB Type-C docking station DP display (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC212.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC212.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC212.201 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1887,24 +1891,24 @@ UTC212.201 USB Type-C docking station DP display (Ubuntu) (ME: Disabled) (WL-UMD # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC214.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC214.201 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC216.201 USB Type-C docking station USB devices recognition (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC216.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC216.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC216.201 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC218.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC218.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC218.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC218.201 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1912,26 +1916,26 @@ UTC218.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Disabled) (WL-U # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC220.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC220.201 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC222.201 USB Type-C docking station Ethernet connection (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC222.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC222.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC222.201 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC224.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the external headset is ... properly recognized after plugging in the 3.5 mm jack into ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC224.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC224.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC224.201 not supported Usb Type-C Docking Station Audio Recognition ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1939,9 +1943,9 @@ UTC224.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC226.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC226.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC226.201 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1949,25 +1953,25 @@ UTC224.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC228.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC228.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC228.201 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC230.201 USB Type-C docking station SD Card reader detection (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC230.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC230.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC230.201 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC232.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC232.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC232.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC232.201 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -1975,149 +1979,156 @@ UTC232.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Disabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC234.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC234.201 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC236.201 Docking station detection after coldboot (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether he DUT properly detects the docking station ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If '${POWER_CTRL}' == 'none' UTC236.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC236.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC236.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC236.201 not supported Docking Station Detection After Coldboot ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC238.201 Docking station detection after warmboot (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether he DUT properly detects the docking station ... after warmboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC238.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC238.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC238.201 not supported Docking Station Detection After Warmboot ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC240.201 Docking station detection after reboot (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC240.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC240.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC240.201 not supported Docking Station Detection After Reboot ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC242.201 Docking station detection after suspend (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC242.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC242.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC242.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC242.201 not supported Docking Station Detection After Suspend ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC244.201 Docking station detection after suspend (S0ix) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend '${POWER_CTRL}' == 'none'(S0ix). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC244.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC244.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC244.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC244.201 not supported Docking Station Detection After Suspend (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC246.201 Docking station detection after suspend (S3) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC246.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC246.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC246.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC246.201 not supported Docking Station Detection After Suspend (S3) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC248.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after coldboot then hotplug. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If '${POWER_CTRL}' == 'none' UTC248.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC248.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC248.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC248.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC250.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after warmboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC250.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC250.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC250.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC252.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC252.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC252.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC252.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC254.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend then hotplug. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC254.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC254.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC254.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC254.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC256.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S0ix) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC256.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC256.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC256.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC256.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 UTC258.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC258.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC258.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC258.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC258.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Disabled WL-UMD05 Pro Rev.C1 -UTC206.202 USB Type-C PD power input (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} - Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 +# Not automated +# UTC206.202 USB Type-C PD power input (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC206.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC206.202 not supported +# Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC208.202 USB Type-C Display output (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC208.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC208.202 not supported Usb Type-C Display Output ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC210.202 USB Type-C docking station HDMI display (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_HDMI} UTC210.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC210.202 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC212.202 USB Type-C docking station DP display (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC212.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC212.202 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -2125,21 +2136,21 @@ UTC212.202 USB Type-C docking station DP display (Fedora) (ME: Disabled) (WL-UMD # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC214.202 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC216.202 USB Type-C docking station USB devices recognition (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC216.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC216.202 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC218.202 USB Type-C docking station USB keyboard (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC218.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC218.202 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -2147,23 +2158,23 @@ UTC218.202 USB Type-C docking station USB keyboard (Fedora) (ME: Disabled) (WL-U # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC220.202 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC222.202 USB Type-C docking station Ethernet connection (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC222.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC222.202 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC224.202 USB Type-C docking station audio recognition (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the external headset is ... properly recognized after plugging in the 3.5 mm jack into ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC224.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC224.202 not supported Usb Type-C Docking Station Audio Recognition ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -2171,8 +2182,8 @@ UTC224.202 USB Type-C docking station audio recognition (Fedora) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC226.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC226.202 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -2180,22 +2191,22 @@ UTC224.202 USB Type-C docking station audio recognition (Fedora) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC228.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC228.202 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC230.202 USB Type-C docking station SD Card reader detection (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC230.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC230.202 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC232.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC232.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC232.202 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -2203,136 +2214,137 @@ UTC232.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Disabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC234.202 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC236.202 Docking station detection after coldboot (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether he DUT properly detects the docking station ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If '${POWER_CTRL}' == 'none' UTC236.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC236.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC236.202 not supported Docking Station Detection After Coldboot ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC238.202 Docking station detection after warmboot (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether he DUT properly detects the docking station ... after warmboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC238.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC238.202 not supported Docking Station Detection After Warmboot ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC240.202 Docking station detection after reboot (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC240.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC240.202 not supported Docking Station Detection After Reboot ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC242.202 Docking station detection after suspend (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC242.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC242.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC242.202 not supported Docking Station Detection After Suspend ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC244.202 Docking station detection after suspend (S0ix) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend '${POWER_CTRL}' == 'none'(S0ix). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC244.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC244.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC244.202 not supported Docking Station Detection After Suspend (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC246.202 Docking station detection after suspend (S3) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC246.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC246.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC246.202 not supported Docking Station Detection After Suspend (S3) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC248.202 Docking station detection after coldboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after coldboot then hotplug. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If '${POWER_CTRL}' == 'none' UTC248.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC248.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC248.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC250.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after warmboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC250.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC250.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC252.202 Docking station detection after reboot then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC252.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC252.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC254.202 Docking station detection after suspend then hotplug (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend then hotplug. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC254.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC254.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC254.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC256.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S0ix) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC256.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC256.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC256.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 UTC258.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC258.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC258.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC258.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Disabled WL-UMD05 Pro Rev.C1 -UTC206.301 USB Type-C PD power input (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 - -UTC208.301 USB Type-C Display output (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) - [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Display Output ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 +# Not automated +# UTC206.301 USB Type-C PD power input (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC206.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC206.301 not supported +# Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 UTC210.301 USB Type-C docking station HDMI display (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_HDMI} UTC210.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC210.301 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 UTC212.301 USB Type-C docking station DP display (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC212.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC212.301 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -2340,21 +2352,21 @@ UTC212.301 USB Type-C docking station DP display (Windows) (ME: Disabled) (WL-UM # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC214.301 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 UTC216.301 USB Type-C docking station USB devices recognition (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC216.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC216.301 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 UTC218.301 USB Type-C docking station USB keyboard (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC218.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC218.301 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -2362,32 +2374,24 @@ UTC218.301 USB Type-C docking station USB keyboard (Windows) (ME: Disabled) (WL- # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC220.301 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 UTC222.301 USB Type-C docking station Ethernet connection (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC222.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC222.301 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 -UTC224.301 USB Type-C docking station audio recognition (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) - [Documentation] This test aims to verify that the external headset is - ... properly recognized after plugging in the 3.5 mm jack into - ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Docking Station Audio Recognition ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 - # Not automated # UTC226.301 USB Type-C docking station audio playback (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC226.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC226.301 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -2395,22 +2399,22 @@ UTC224.301 USB Type-C docking station audio recognition (Windows) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC228.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC228.301 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 UTC230.301 USB Type-C docking station SD Card reader detection (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC230.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC230.301 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 UTC232.301 USB Type-C docking station SD Card read/write (Windows) (ME: Disabled) (WL-UMD05 Pro Rev.C1) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC232.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC232.301 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -2418,7 +2422,7 @@ UTC232.301 USB Type-C docking station SD Card read/write (Windows) (ME: Disabled # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC234.301 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_WINDOWS} Disabled WL-UMD05 Pro Rev.C1 # Not automated @@ -2437,49 +2441,50 @@ UTC232.301 USB Type-C docking station SD Card read/write (Windows) (ME: Disabled # UTC315.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Enabled) (WL-UG69PD2 Rev.A1) # [Documentation] Check whether the external USB devices connected to the # ... docking station are detected correctly -# Skip If not ${DOCKING_STATION_USB_SUPPORT} +# Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC315.001 not supported # Usb Type-C Docking Station Usb Devices Recognition 001 Enabled WL-UG69PD2 Rev.A1 # Not automated # UTC317.001 USB Type-C docking station USB keyboard (Firmware) (ME: Enabled) (WL-UG69PD2 Rev.A1) # [Documentation] Check whether the external USB keyboard connected to the # ... docking station is detected correctly. -# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} +# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC317.001 not supported # Usb Type-C Docking Station Usb Keyboard 001 Enabled WL-UG69PD2 Rev.A1 -UTC305.201 USB Type-C PD power input (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} - Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 +# Not automated +# UTC305.201 USB Type-C PD power input (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC305.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC305.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC305.201 not supported +# Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC307.201 USB Type-C Display output (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC307.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC307.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC307.201 not supported Usb Type-C Display Output ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC309.201 USB Type-C docking station HDMI display (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_HDMI} UTC309.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC309.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC309.201 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC311.201 USB Type-C docking station DP display (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC311.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC311.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC311.201 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -2487,24 +2492,24 @@ UTC311.201 USB Type-C docking station DP display (Ubuntu) (ME: Enabled) (WL-UG69 # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC313.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC313.201 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC315.201 USB Type-C docking station USB devices recognition (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC315.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC315.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC315.201 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC317.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC317.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC317.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC317.201 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -2512,26 +2517,26 @@ UTC317.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Enabled) (WL-UG # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC319.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC319.201 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC321.201 USB Type-C docking station Ethernet connection (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC321.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC321.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC321.201 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC323.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the external headset is ... properly recognized after plugging in the 3.5 mm jack into ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC323.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC323.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC323.201 not supported Usb Type-C Docking Station Audio Recognition ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -2539,9 +2544,9 @@ UTC323.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Enabled) ( # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC325.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC325.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC325.201 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -2549,25 +2554,25 @@ UTC323.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Enabled) ( # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC327.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC327.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC327.201 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC329.201 USB Type-C docking station SD Card reader detection (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC329.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC329.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC329.201 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC331.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC331.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC331.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC331.201 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -2575,149 +2580,156 @@ UTC331.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Enabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC333.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC333.201 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC335.201 Docking station detection after coldboot (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether he DUT properly detects the docking station ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If '${POWER_CTRL}' == 'none' UTC335.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC335.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC335.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC335.201 not supported Docking Station Detection After Coldboot ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC337.201 Docking station detection after warmboot (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether he DUT properly detects the docking station ... after warmboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC337.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC337.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC337.201 not supported Docking Station Detection After Warmboot ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC339.201 Docking station detection after reboot (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC339.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC339.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC339.201 not supported Docking Station Detection After Reboot ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC341.201 Docking station detection after suspend (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC341.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC341.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC341.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC341.201 not supported Docking Station Detection After Suspend ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC343.201 Docking station detection after suspend (S0ix) (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend '${POWER_CTRL}' == 'none'(S0ix). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC343.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC343.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC343.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC343.201 not supported Docking Station Detection After Suspend (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC345.201 Docking station detection after suspend (S3) (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC345.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC345.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC345.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC345.201 not supported Docking Station Detection After Suspend (S3) ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC347.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after coldboot then hotplug. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If '${POWER_CTRL}' == 'none' UTC347.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC347.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC347.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC347.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC349.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after warmboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC349.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC349.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC349.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC351.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC351.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC351.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC351.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC353.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend then hotplug. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC353.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC353.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC353.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC353.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC355.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S0ix) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC355.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC355.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC355.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC355.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 UTC357.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC357.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC357.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC357.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC357.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Enabled WL-UG69PD2 Rev.A1 -UTC305.202 USB Type-C PD power input (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} - Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 +# Not automated +# UTC305.202 USB Type-C PD power input (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC305.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC305.202 not supported +# Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC307.202 USB Type-C Display output (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC307.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC307.202 not supported Usb Type-C Display Output ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC309.202 USB Type-C docking station HDMI display (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_HDMI} UTC309.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC309.202 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC311.202 USB Type-C docking station DP display (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC311.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC311.202 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -2725,21 +2737,21 @@ UTC311.202 USB Type-C docking station DP display (Fedora) (ME: Enabled) (WL-UG69 # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC313.202 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC315.202 USB Type-C docking station USB devices recognition (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC315.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC315.202 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC317.202 USB Type-C docking station USB keyboard (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC317.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC317.202 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -2747,23 +2759,23 @@ UTC317.202 USB Type-C docking station USB keyboard (Fedora) (ME: Enabled) (WL-UG # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC319.202 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC321.202 USB Type-C docking station Ethernet connection (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC321.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC321.202 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC323.202 USB Type-C docking station audio recognition (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the external headset is ... properly recognized after plugging in the 3.5 mm jack into ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC323.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC323.202 not supported Usb Type-C Docking Station Audio Recognition ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -2771,8 +2783,8 @@ UTC323.202 USB Type-C docking station audio recognition (Fedora) (ME: Enabled) ( # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC325.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC325.202 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -2780,22 +2792,22 @@ UTC323.202 USB Type-C docking station audio recognition (Fedora) (ME: Enabled) ( # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC327.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC327.202 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC329.202 USB Type-C docking station SD Card reader detection (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC329.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC329.202 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC331.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC331.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC331.202 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -2803,136 +2815,137 @@ UTC331.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Enabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC333.202 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC335.202 Docking station detection after coldboot (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether he DUT properly detects the docking station ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If '${POWER_CTRL}' == 'none' UTC335.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC335.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC335.202 not supported Docking Station Detection After Coldboot ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC337.202 Docking station detection after warmboot (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether he DUT properly detects the docking station ... after warmboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC337.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC337.202 not supported Docking Station Detection After Warmboot ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC339.202 Docking station detection after reboot (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC339.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC339.202 not supported Docking Station Detection After Reboot ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC341.202 Docking station detection after suspend (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC341.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC341.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC341.202 not supported Docking Station Detection After Suspend ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC343.202 Docking station detection after suspend (S0ix) (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend '${POWER_CTRL}' == 'none'(S0ix). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC343.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC343.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC343.202 not supported Docking Station Detection After Suspend (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC345.202 Docking station detection after suspend (S3) (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC345.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC345.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC345.202 not supported Docking Station Detection After Suspend (S3) ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC347.202 Docking station detection after coldboot then hotplug (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after coldboot then hotplug. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If '${POWER_CTRL}' == 'none' UTC347.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC347.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC347.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC349.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after warmboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC349.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC349.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC351.202 Docking station detection after reboot then hotplug (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC351.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC351.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC353.202 Docking station detection after suspend then hotplug (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend then hotplug. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC353.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC353.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC353.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC355.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S0ix) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC355.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC355.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC355.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 UTC357.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC357.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC357.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC357.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Enabled WL-UG69PD2 Rev.A1 -UTC305.301 USB Type-C PD power input (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 - -UTC307.301 USB Type-C Display output (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Display Output ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 +# Not automated +# UTC305.301 USB Type-C PD power input (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC305.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC305.301 not supported +# Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 UTC309.301 USB Type-C docking station HDMI display (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_HDMI} UTC309.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC309.301 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 UTC311.301 USB Type-C docking station DP display (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC311.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC311.301 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -2940,21 +2953,21 @@ UTC311.301 USB Type-C docking station DP display (Windows) (ME: Enabled) (WL-UG6 # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC313.301 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 UTC315.301 USB Type-C docking station USB devices recognition (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC315.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC315.301 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 UTC317.301 USB Type-C docking station USB keyboard (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC317.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC317.301 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -2962,32 +2975,24 @@ UTC317.301 USB Type-C docking station USB keyboard (Windows) (ME: Enabled) (WL-U # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC319.301 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 UTC321.301 USB Type-C docking station Ethernet connection (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC321.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC321.301 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 -UTC323.301 USB Type-C docking station audio recognition (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) - [Documentation] This test aims to verify that the external headset is - ... properly recognized after plugging in the 3.5 mm jack into - ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Docking Station Audio Recognition ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 - # Not automated # UTC325.301 USB Type-C docking station audio playback (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC325.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC325.301 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -2995,22 +3000,22 @@ UTC323.301 USB Type-C docking station audio recognition (Windows) (ME: Enabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC327.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC327.301 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 UTC329.301 USB Type-C docking station SD Card reader detection (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC329.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC329.301 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 UTC331.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC331.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC331.301 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -3018,7 +3023,7 @@ UTC331.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC333.301 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_WINDOWS} Enabled WL-UG69PD2 Rev.A1 # Not automated @@ -3037,49 +3042,50 @@ UTC331.301 USB Type-C docking station SD Card read/write (Windows) (ME: Enabled) # UTC316.001 USB Type-C docking station USB devices recognition (Firmware) (ME: Disabled) (WL-UG69PD2 Rev.A1) # [Documentation] Check whether the external USB devices connected to the # ... docking station are detected correctly -# Skip If not ${DOCKING_STATION_USB_SUPPORT} +# Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC316.001 not supported # Usb Type-C Docking Station Usb Devices Recognition 001 Disabled WL-UG69PD2 Rev.A1 # Not automated # UTC318.001 USB Type-C docking station USB keyboard (Firmware) (ME: Disabled) (WL-UG69PD2 Rev.A1) # [Documentation] Check whether the external USB keyboard connected to the # ... docking station is detected correctly. -# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} +# Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC318.001 not supported # Usb Type-C Docking Station Usb Keyboard 001 Disabled WL-UG69PD2 Rev.A1 -UTC306.201 USB Type-C PD power input (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} - Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 +# Not automated +# UTC306.201 USB Type-C PD power input (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC306.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC306.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC306.201 not supported +# Usb Type-C Pd Power Input ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC308.201 USB Type-C Display output (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC308.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC308.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC308.201 not supported Usb Type-C Display Output ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC310.201 USB Type-C docking station HDMI display (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_HDMI} UTC310.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC310.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC310.201 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC312.201 USB Type-C docking station DP display (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC312.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC312.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC312.201 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3087,24 +3093,24 @@ UTC312.201 USB Type-C docking station DP display (Ubuntu) (ME: Disabled) (WL-UG6 # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC314.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC314.201 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC316.201 USB Type-C docking station USB devices recognition (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC316.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC316.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC316.201 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC318.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC318.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC318.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC318.201 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3112,26 +3118,26 @@ UTC318.201 USB Type-C docking station USB keyboard (Ubuntu) (ME: Disabled) (WL-U # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC320.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC320.201 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC322.201 USB Type-C docking station Ethernet connection (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC322.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC322.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC322.201 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC324.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the external headset is ... properly recognized after plugging in the 3.5 mm jack into ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC324.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC324.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC324.201 not supported Usb Type-C Docking Station Audio Recognition ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3139,9 +3145,9 @@ UTC324.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC326.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC326.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC326.201 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3149,25 +3155,25 @@ UTC324.201 USB Type-C docking station audio recognition (Ubuntu) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC328.201 not supported +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC328.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC328.201 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC330.201 USB Type-C docking station SD Card reader detection (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC330.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC330.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC330.201 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC332.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC332.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC332.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC332.201 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3175,149 +3181,156 @@ UTC332.201 USB Type-C docking station SD Card read/write (Ubuntu) (ME: Disabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} -# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC334.201 not supported +# Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC334.201 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC336.201 Docking station detection after coldboot (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether he DUT properly detects the docking station ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If '${POWER_CTRL}' == 'none' UTC336.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC336.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC336.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC336.201 not supported Docking Station Detection After Coldboot ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC338.201 Docking station detection after warmboot (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether he DUT properly detects the docking station ... after warmboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC338.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC338.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC338.201 not supported Docking Station Detection After Warmboot ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC340.201 Docking station detection after reboot (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC340.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC340.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC340.201 not supported Docking Station Detection After Reboot ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC342.201 Docking station detection after suspend (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC342.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC342.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC342.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC342.201 not supported Docking Station Detection After Suspend ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC344.201 Docking station detection after suspend (S0ix) (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend '${POWER_CTRL}' == 'none'(S0ix). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC344.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC344.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC344.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC344.201 not supported Docking Station Detection After Suspend (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC346.201 Docking station detection after suspend (S3) (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC346.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC346.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC346.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC346.201 not supported Docking Station Detection After Suspend (S3) ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC348.201 Docking station detection after coldboot then hotplug (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after coldboot then hotplug. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If '${POWER_CTRL}' == 'none' UTC348.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC348.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC348.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC348.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC350.201 Docking station detection after warmboot then hotplug (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after warmboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC350.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC350.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC350.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC352.201 Docking station detection after reboot then hotplug (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC352.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC352.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC352.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC354.201 Docking station detection after suspend then hotplug (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend then hotplug. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC354.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC354.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC354.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC354.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC356.201 Docking station detection after suspend then hotplug (S0ix) (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S0ix) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC356.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC356.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC356.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC356.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 UTC358.201 Docking station detection after suspend then hotplug (S3) (Ubuntu) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If not ${TESTS_IN_UBUNTU_SUPPORT} - Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC358.201 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC358.201 not supported + Skip If not ${TESTS_IN_UBUNTU_SUPPORT} UTC358.201 not supported + Skip If '${ENV_ID_UBUNTU}' not in ${TESTED_LINUX_DISTROS} UTC358.201 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_UBUNTU} Disabled WL-UG69PD2 Rev.A1 -UTC306.202 USB Type-C PD power input (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} - Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 +# Not automated +# UTC306.202 USB Type-C PD power input (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC306.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC306.202 not supported +# Usb Type-C Pd Power Input ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC308.202 USB Type-C Display output (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} UTC308.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC308.202 not supported Usb Type-C Display Output ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC310.202 USB Type-C docking station HDMI display (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_HDMI} UTC310.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC310.202 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC312.202 USB Type-C docking station DP display (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC312.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC312.202 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3325,21 +3338,21 @@ UTC312.202 USB Type-C docking station DP display (Fedora) (ME: Disabled) (WL-UG6 # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC314.202 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC316.202 USB Type-C docking station USB devices recognition (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC316.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC316.202 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC318.202 USB Type-C docking station USB keyboard (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC318.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC318.202 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3347,23 +3360,23 @@ UTC318.202 USB Type-C docking station USB keyboard (Fedora) (ME: Disabled) (WL-U # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC320.202 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC322.202 USB Type-C docking station Ethernet connection (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC322.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC322.202 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC324.202 USB Type-C docking station audio recognition (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the external headset is ... properly recognized after plugging in the 3.5 mm jack into ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC324.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC324.202 not supported Usb Type-C Docking Station Audio Recognition ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3371,8 +3384,8 @@ UTC324.202 USB Type-C docking station audio recognition (Fedora) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC326.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC326.202 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3380,22 +3393,22 @@ UTC324.202 USB Type-C docking station audio recognition (Fedora) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC328.202 not supported +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC328.202 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC330.202 USB Type-C docking station SD Card reader detection (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC330.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC330.202 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC332.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC332.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC332.202 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3403,136 +3416,137 @@ UTC332.202 USB Type-C docking station SD Card read/write (Fedora) (ME: Disabled) # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} +# Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC334.202 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC336.202 Docking station detection after coldboot (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether he DUT properly detects the docking station ... after coldboot. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If '${POWER_CTRL}' == 'none' UTC336.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC336.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC336.202 not supported Docking Station Detection After Coldboot ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC338.202 Docking station detection after warmboot (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether he DUT properly detects the docking station ... after warmboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC338.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC338.202 not supported Docking Station Detection After Warmboot ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC340.202 Docking station detection after reboot (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC340.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC340.202 not supported Docking Station Detection After Reboot ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC342.202 Docking station detection after suspend (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC342.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC342.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC342.202 not supported Docking Station Detection After Suspend ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC344.202 Docking station detection after suspend (S0ix) (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend '${POWER_CTRL}' == 'none'(S0ix). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC344.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC344.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC344.202 not supported Docking Station Detection After Suspend (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC346.202 Docking station detection after suspend (S3) (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3). - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC346.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC346.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC346.202 not supported Docking Station Detection After Suspend (S3) ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC348.202 Docking station detection after coldboot then hotplug (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after coldboot then hotplug. - Skip If '${POWER_CTRL}' == 'none' - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If '${POWER_CTRL}' == 'none' UTC348.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC348.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC348.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Coldboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC350.202 Docking station detection after warmboot then hotplug (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after warmboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC350.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC350.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Warmboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC352.202 Docking station detection after reboot then hotplug (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after reboot then hotplug. - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC352.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC352.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Reboot Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC354.202 Docking station detection after suspend then hotplug (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend then hotplug. - Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC354.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC354.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC354.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC356.202 Docking station detection after suspend then hotplug (S0ix) (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S0ix) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC356.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC356.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC356.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S0Ix) ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 UTC358.202 Docking station detection after suspend then hotplug (S3) (Fedora) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the DUT properly detects the docking station ... after suspend (S3) then hotplug. - Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} - Skip If not ${DOCKING_STATION_DETECT_SUPPORT} - Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} + [Tags] semiauto + Skip If not ${PLATFORM_SLEEP_TYPE_SELECTABLE} UTC358.202 not supported + Skip If not ${DOCKING_STATION_DETECT_SUPPORT} UTC358.202 not supported + Skip If '${ENV_ID_FEDORA}' not in ${TESTED_LINUX_DISTROS} UTC358.202 not supported Skip If not ${SEMI_AUTO} semi auto test skipped: SEMI_AUTO==${SEMI_AUTO} Docking Station Detection After Suspend Then Hotplug (S3) ${ENV_ID_FEDORA} Disabled WL-UG69PD2 Rev.A1 -UTC306.301 USB Type-C PD power input (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT can be charged using a - ... PD power supply connected to the docking station, which - ... is connected to the USB Type-C port - ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) - Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 - -UTC308.301 USB Type-C Display output (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) - [Documentation] Check whether the DUT can detect the USB Type-C hub. - Skip If not ${USB_TYPE_C_DISPLAY_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Display Output ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 +# Not automated +# UTC306.301 USB Type-C PD power input (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) +# [Documentation] Check whether the DUT can be charged using a +# ... PD power supply connected to the docking station, which +# ... is connected to the USB Type-C port +# ... Previous IDs: UTC021.001 USB Type-C laptop charging (Ubuntu) +# Skip If not ${DOCKING_STATION_USB_C_CHARGING_SUPPORT} UTC306.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC306.301 not supported +# Usb Type-C Pd Power Input ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 UTC310.301 USB Type-C docking station HDMI display (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_HDMI} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_HDMI} UTC310.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC310.301 not supported Usb Type-C Docking Station Hdmi Display ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 UTC312.301 USB Type-C docking station DP display (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the display connected with ... the HDMI cable to the docking station is correctly ... recognized by the OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_DISPLAY_PORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_DISPLAY_PORT} UTC312.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC312.301 not supported Usb Type-C Docking Station Dp Display ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3540,21 +3554,21 @@ UTC312.301 USB Type-C docking station DP display (Windows) (ME: Disabled) (WL-UG # [Documentation] This test aims to verify that the three display # ... simultaneously connected to the docking station is correctly # ... recognized by the OPERATING_SYSTEM. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC314.301 not supported # Usb Type-C Docking Station Triple Display ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 UTC316.301 USB Type-C docking station USB devices recognition (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the external USB devices connected to the ... docking station are detected correctly - Skip If not ${DOCKING_STATION_USB_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_USB_SUPPORT} UTC316.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC316.301 not supported Usb Type-C Docking Station Usb Devices Recognition ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 UTC318.301 USB Type-C docking station USB keyboard (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the external USB keyboard connected to the ... docking station is detected correctly. - Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_KEYBOARD_SUPPORT} UTC318.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC318.301 not supported Usb Type-C Docking Station Usb Keyboard ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3562,32 +3576,24 @@ UTC318.301 USB Type-C docking station USB keyboard (Windows) (ME: Disabled) (WL- # [Documentation] This test aims to verify that the 1GB file can be # ... transferred from the OPERATING_SYSTEM to the USB storage # ... connected to the docking station. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC320.301 not supported # Usb Type-C Docking Station Upload 1Gb File On Usb Storage ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 UTC322.301 USB Type-C docking station Ethernet connection (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] This test aims to verify that the connection to internet ... via docking station's Ethernet port can be obtained on ... OPERATING_SYSTEM. - Skip If not ${DOCKING_STATION_NET_INTERFACE} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_NET_INTERFACE} UTC322.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC322.301 not supported Usb Type-C Docking Station Ethernet Connection ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 -UTC324.301 USB Type-C docking station audio recognition (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) - [Documentation] This test aims to verify that the external headset is - ... properly recognized after plugging in the 3.5 mm jack into - ... the docking station. - Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} - Usb Type-C Docking Station Audio Recognition ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 - # Not automated # UTC326.301 USB Type-C docking station audio playback (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) # [Documentation] This test aims to verify that the audio subsystem is able # ... to playback audio recordings by using the external headset # ... speakers connected to the docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC326.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC326.301 not supported # Usb Type-C Docking Station Audio Playback ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3595,22 +3601,22 @@ UTC324.301 USB Type-C docking station audio recognition (Windows) (ME: Disabled) # [Documentation] This test aims to verify that the audio subsystem is able # ... to capture audio from external headset connected to the # ... docking station. -# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${DOCKING_STATION_AUDIO_SUPPORT} UTC328.301 not supported +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC328.301 not supported # Usb Type-C Docking Station Audio Capture ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 UTC330.301 USB Type-C docking station SD Card reader detection (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the SD Card reader is enumerated correctly ... and can be detected from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC330.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC330.301 not supported Usb Type-C Docking Station Sd Card Reader Detection ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 UTC332.301 USB Type-C docking station SD Card read/write (Windows) (ME: Disabled) (WL-UG69PD2 Rev.A1) [Documentation] Check whether the SD Card reader is initialized correctly ... and can be used from the operating system. - Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} - Skip If not ${TESTS_IN_WINDOWS_SUPPORT} + Skip If not ${DOCKING_STATION_SD_CARD_READER_SUPPORT} UTC332.301 not supported + Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC332.301 not supported Usb Type-C Docking Station Sd Card Read/Write ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 # Not automated @@ -3618,5 +3624,5 @@ UTC332.301 USB Type-C docking station SD Card read/write (Windows) (ME: Disabled # [Documentation] This test aims to verify that the power draw from a USB-C PD # ... power supply does not exceed the limits of the power supply's # ... specifications. -# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} +# Skip If not ${TESTS_IN_WINDOWS_SUPPORT} UTC334.301 not supported # Usb Type-C Pd Current Limiting ${ENV_ID_WINDOWS} Disabled WL-UG69PD2 Rev.A1 From 0522611489a34fb5ce2684180d633c8e2f21244d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 14 Apr 2025 13:43:12 +0200 Subject: [PATCH 385/416] lib/utc.robot: Usb Type-C Display Output: Remove redundant ME check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/utc.robot | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/utc.robot b/lib/utc.robot index 51982c01bf..73482f2957 100644 --- a/lib/utc.robot +++ b/lib/utc.robot @@ -74,8 +74,6 @@ Usb Type-C Display Output Boot System Or From Connected Disk ${env_id} Login To Linux Switch To Root User - ${result}= Check ME Out - Should Not Be Equal As Strings ${result} Enabled ${out}= List Devices In Linux usb Should Contain ${out} ${CLEVO_USB_C_HUB} Exit From Root User From b9c6fe08984f098253a6b0f7fa6e38bb00333c27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 14 Apr 2025 15:34:26 +0200 Subject: [PATCH 386/416] lib/utc: Separate display detect tests on dp-alt or thunderbolt support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- lib/utc.robot | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/utc.robot b/lib/utc.robot index 73482f2957..82444eafad 100644 --- a/lib/utc.robot +++ b/lib/utc.robot @@ -89,8 +89,13 @@ Usb Type-C Docking Station Hdmi Display Boot System Or From Connected Disk ${env_id} Login To Linux Switch To Root User - Check PCON On MST Hub In Linux - Check Display Port On Hub In Linux HDMI + IF '${dock_name}' == 'WL-UMD05 Pro Rev.E' + # dp alt mode + Check PCON On MST Hub In Linux + ELSE # Exact models not specified right now, add more branches later + # Thunderbolt + Check Display Port On Hub In Linux HDMI + END Exit From Root User ELSE IF '${env_id}'.startswith('3') # Windows Login To Windows @@ -107,8 +112,13 @@ Usb Type-C Docking Station Dp Display Boot System Or From Connected Disk ${env_id} Login To Linux Switch To Root User - Check DP Port On MST Hub In Linux - Check Display Port On Hub In Linux DP + IF '${dock_name}' == 'WL-UMD05 Pro Rev.E' + # dp alt mode + Check DP Port On MST Hub In Linux + ELSE # Exact models not specified right now, add more branches later + # Thunderbolt + Check Display Port On Hub In Linux DP + END Exit From Root User ELSE IF '${env_id}'.startswith('3') # Windows Login To Windows From 5e29b58b9e4cf777f784a7ac53f986837fa9fcf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Go=C5=82a=C5=9B?= Date: Mon, 14 Apr 2025 15:35:38 +0200 Subject: [PATCH 387/416] novacustom-v540tu.robot: Set variables for WL-UMD05 Pro Rev.E dock MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Gołaś --- platform-configs/novacustom-v540tu.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform-configs/novacustom-v540tu.robot b/platform-configs/novacustom-v540tu.robot index d031723b40..8b19eafe8f 100644 --- a/platform-configs/novacustom-v540tu.robot +++ b/platform-configs/novacustom-v540tu.robot @@ -11,7 +11,7 @@ ${3_MDEB_WIFI_NETWORK}= 3mdeb_abr ${DEVICE_NVME_DISK}= Non-Volatile memory controller ${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 ${DMIDECODE_PRODUCT_NAME}= V540TU -${EXTERNAL_HEADSET}= USB PnP Audio Device +${EXTERNAL_HEADSET}= JMTek, LLC. USB Audio ${CPU_MAX_FREQUENCY}= 4800 ${CPU_MIN_FREQUENCY}= 300 @@ -20,7 +20,7 @@ ${POWER_CTRL}= none ${DEFAULT_BOOT_OS_ID}= ${ENV_ID_UBUNTU} @{TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} ${ENV_ID_FEDORA} -${CLEVO_USB_C_HUB}= Thunderbolt 4 Dock +${CLEVO_USB_C_HUB}= Billboard Device ${USB_DEVICE}= Linux # performance From 71f03e83c9ace2673e6e0094c6c30a1cc4d71710 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Mon, 14 Apr 2025 18:46:12 +0200 Subject: [PATCH 388/416] lib/options/options-lib_dcu.robot: fix Signed-off-by: Wiktor Mowinski --- lib/options/options-lib_dcu.robot | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index 93c99ca78d..bf1e2170c3 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -134,6 +134,7 @@ Make Sure That Flash Locks Are Disabled Login To Windows Power On Boot System Or From Connected Disk ${ENV_ID_WINDOWS} + Login To Windows Via SSH ${DEVICE_OS_USERNAME} ${DEVICE_OS_PASSWORD} Set Nextboot [Documentation] Sets the OS of choice to be booted first on the next @@ -179,18 +180,21 @@ Boot System Or From Connected Disk ${os_boot_id}= Set Variable ${EMPTY} ${os_bootentry_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} + IF ${env_id} == '301' + Sleep 2 + ELSE + Import Variables ${CURDIR}/../../os-config/${BOOTED_OS_ID}-credentials.py + Login To Linux + Switch To Root User - Import Variables ${CURDIR}/../../os-config/${BOOTED_OS_ID}-credentials.py - Login To Linux - Switch To Root User + IF '${BOOTED_OS_ID}' == '${env_id}' + Log Target OS already booted + RETURN + END - IF '${BOOTED_OS_ID}' == '${env_id}' - Log Target OS already booted - RETURN + ${os_boot_id}= Set Nextboot ${env_id} + Write Into Terminal reboot END - - ${os_boot_id}= Set Nextboot ${env_id} - Write Into Terminal reboot Import Variables ${CURDIR}/../../os-config/${env_id}-credentials.py Set Suite Variable ${BOOTED_OS_ID} ${env_id} Sleep 30s From 1aba50fa2972813968db760cb7d2be7f48ab8ffa Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Tue, 15 Apr 2025 14:08:25 +0200 Subject: [PATCH 389/416] lib/options/options-lib_dcu.robot: actual fix Signed-off-by: Wiktor Mowinski --- lib/options/options-lib_dcu.robot | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/lib/options/options-lib_dcu.robot b/lib/options/options-lib_dcu.robot index bf1e2170c3..67c71216a0 100644 --- a/lib/options/options-lib_dcu.robot +++ b/lib/options/options-lib_dcu.robot @@ -134,6 +134,7 @@ Make Sure That Flash Locks Are Disabled Login To Windows Power On Boot System Or From Connected Disk ${ENV_ID_WINDOWS} + Sleep 60s Login To Windows Via SSH ${DEVICE_OS_USERNAME} ${DEVICE_OS_PASSWORD} Set Nextboot @@ -154,7 +155,6 @@ Set Nextboot ${tmp}= Encode String To Bytes ${line} ASCII errors=replace ${line}= Decode Bytes To String ${tmp} ASCII errors=replace ${line}= Get Substring ${line} 0 150 - ${line}= Convert To Lower Case ${line} IF '${os_bootentry_name}' in '${line}' ${os_boot_id}= Set Variable ${line} @@ -180,21 +180,19 @@ Boot System Or From Connected Disk ${os_boot_id}= Set Variable ${EMPTY} ${os_bootentry_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${env_id} - IF ${env_id} == '301' - Sleep 2 - ELSE - Import Variables ${CURDIR}/../../os-config/${BOOTED_OS_ID}-credentials.py - Login To Linux - Switch To Root User - IF '${BOOTED_OS_ID}' == '${env_id}' - Log Target OS already booted - RETURN - END + Import Variables ${CURDIR}/../../os-config/${BOOTED_OS_ID}-credentials.py + Login To Linux + Switch To Root User - ${os_boot_id}= Set Nextboot ${env_id} - Write Into Terminal reboot + IF '${BOOTED_OS_ID}' == '${env_id}' + Log Target OS already booted + RETURN END + + ${os_boot_id}= Set Nextboot ${env_id} + Write Into Terminal reboot + Import Variables ${CURDIR}/../../os-config/${env_id}-credentials.py Set Suite Variable ${BOOTED_OS_ID} ${env_id} Sleep 30s From 4ae78f6d4bfe728aeb62ab870c8339e11b18dfc9 Mon Sep 17 00:00:00 2001 From: Wiktor Mowinski Date: Wed, 16 Apr 2025 17:08:13 +0200 Subject: [PATCH 390/416] dasharo-performance/disk-io.robot: fix index Signed-off-by: Wiktor Mowinski --- dasharo-performance/disk-io.robot | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/dasharo-performance/disk-io.robot b/dasharo-performance/disk-io.robot index 64e377db36..b91f796d31 100644 --- a/dasharo-performance/disk-io.robot +++ b/dasharo-performance/disk-io.robot @@ -30,7 +30,7 @@ DIO001.201 Sequential Read Performance (Ubuntu) (AC) Should Be True ${seq_read_queued} >= ${UBU_SEQ_READ_QUEUED}*0.85 Sequential Read Queued is below expected Should Be True ${seq_read_nonque} >= ${UBU_SEQ_READ_NONQUE}*0.85 Sequential Read Non-Queued is below expected -DIO001.202 Sequential Read Performance (Ubuntu) (Battery) +DIO002.201 Sequential Read Performance (Ubuntu) (Battery) [Documentation] Check various scenarios of single threaded read ... performance, while powered by inbuilt battery. (Ubuntu) Sleep 20s @@ -51,7 +51,7 @@ DIO001.202 Sequential Read Performance (Ubuntu) (Battery) Should Be True ${seq_read_queued} >= ${UBU_SEQ_READ_QUEUED}*0.85 Sequential Read Queued is below expected Should Be True ${seq_read_nonque} >= ${UBU_SEQ_READ_NONQUE}*0.85 Sequential Read Non-Queued is below expected -DIO002.201 Sequential Write Performance (Ubuntu) (AC) +DIO003.201 Sequential Write Performance (Ubuntu) (AC) [Documentation] Check various scenarios of single-threaded write ... performance while powered by AC adapter. (Ubuntu) Sleep 20s @@ -71,7 +71,7 @@ DIO002.201 Sequential Write Performance (Ubuntu) (AC) ... ${seq_write_nonque} >= ${UBU_SEQ_WRITE_NONQUE}*0.85 ... Sequential Write Non-Queued is below expected -DIO002.202 Sequential Write Performance (Ubuntu) (Battery) +DIO004.201 Sequential Write Performance (Ubuntu) (Battery) [Documentation] Check various scenarios of single threaded write ... performance, while powered by inbuilt battery. (Ubuntu) Sleep 20s @@ -94,7 +94,7 @@ DIO002.202 Sequential Write Performance (Ubuntu) (Battery) ... ${seq_write_nonque} >= ${UBU_SEQ_WRITE_NONQUE}*0.85 ... Sequential Write Non-Queued is below expected -DIO003.201 Random Read Performance (Ubuntu) (AC) +DIO005.201 Random Read Performance (Ubuntu) (AC) [Documentation] Check various scenarios of random read performance ... while connected to power supply unit. (Ubuntu) Sleep 20s @@ -114,7 +114,7 @@ DIO003.201 Random Read Performance (Ubuntu) (AC) ... ${rand_read_nonque} >= ${UBU_RAND_READ_NONQUE}*0.85 ... Random Read BW Non-Queued is below expected -DIO003.202 Random Read Performance (Ubuntu) (Battery) +DIO006.201 Random Read Performance (Ubuntu) (Battery) [Documentation] Check various scenarios of random read performance ... while running on battery power. (Ubuntu) Sleep 20s @@ -137,7 +137,7 @@ DIO003.202 Random Read Performance (Ubuntu) (Battery) ... ${rand_read_nonque} >= ${UBU_RAND_READ_NONQUE}*0.85 ... Random Read BW Non-Queued is below expected -DIO004.201 Random Write Performance (Ubuntu) (AC) +DIO007.201 Random Write Performance (Ubuntu) (AC) [Documentation] Check various scenarios of random write performance ... while connected to power supply unit. (Ubuntu) Sleep 20s @@ -157,7 +157,7 @@ DIO004.201 Random Write Performance (Ubuntu) (AC) ... ${rand_write_nonque} >= ${UBU_RAND_WRITE_NONQUE}*0.85 ... Random Write BW Non-Queued is below expected -DIO004.202 Random Write Performance (Ubuntu) (Battery) +DIO008.201 Random Write Performance (Ubuntu) (Battery) [Documentation] Check various scenarios of sequential write performance ... while connected to power supply unit. (Ubuntu) Sleep 20s From 4ab114fe8293bfbd1f1a94d458f945b0a348fd33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Fri, 18 Apr 2025 15:54:43 +0200 Subject: [PATCH 391/416] platform-configs: prepare for laptop testing with FTDI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- .../include/novacustom-common.robot | 6 --- platform-configs/novacustom-nv41pz.robot | 46 ++++++++++--------- variables.robot | 2 +- 3 files changed, 25 insertions(+), 29 deletions(-) diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index 5da1d4f9ac..bb94375dee 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -147,13 +147,7 @@ ${L2_CACHE_SUPPORT}= ${TRUE} Power On [Documentation] Implementation of keywords.Power On IF "${POWER_CTRL}"=="none" RETURN - Restore Initial DUT Connection Method Power Cycle On - Sleep 2s - RteCtrl Set OC GPIO 12 low - Sleep 1s - RteCtrl Set OC GPIO 12 high-z - # TODO make these generic Configure Wake In Linux diff --git a/platform-configs/novacustom-nv41pz.robot b/platform-configs/novacustom-nv41pz.robot index f8f4f00e90..21e2435ef5 100644 --- a/platform-configs/novacustom-nv41pz.robot +++ b/platform-configs/novacustom-nv41pz.robot @@ -8,25 +8,27 @@ Resource include/novacustom-common.robot ${CPU}= Intel(R) Core(TM) i5-1240P CPU # Test configuration -${3_MDEB_WIFI_NETWORK}= 3mdeb_abr -${CLEVO_BATTERY_CAPACITY}= 3200*1000 -${CLEVO_DISK}= Samsung SSD 980 PRO -${CLEVO_USB_C_HUB}= 4-port -${DEVICE_NVME_DISK}= Non-Volatile memory controller -${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 -${DMIDECODE_PRODUCT_NAME}= NV4xPZ -${EXTERNAL_HEADSET}= USB PnP Audio Device -${USB_DEVICE}= Kingston -${USB_MODEL}= USB Flash Memory -${CPU_MAX_FREQUENCY}= 4800 -${CPU_MIN_FREQUENCY}= 300 - -${BLUETOOTH_CARD_UBUNTU}= 8087:0026 - -${POWER_CTRL}= none - -${USB_STACK_SUPPORT}= ${TRUE} -${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} - -${TPM_SUPPORTED_VERSION}= 2 -${TPM_EXPECTED_CHIP}= SLB9670 +${3_MDEB_WIFI_NETWORK}= 3mdeb_abr +${CLEVO_BATTERY_CAPACITY}= 3200*1000 +${CLEVO_DISK}= Samsung SSD 980 PRO +${CLEVO_USB_C_HUB}= 4-port +${DEVICE_NVME_DISK}= Non-Volatile memory controller +${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 +${DMIDECODE_PRODUCT_NAME}= NV4xPZ +${EXTERNAL_HEADSET}= USB PnP Audio Device +${USB_DEVICE}= Kingston +${USB_MODEL}= USB Flash Memory +${CPU_MAX_FREQUENCY}= 4800 +${CPU_MIN_FREQUENCY}= 300 +${OPTIONS_LIB}= uefi-setup-menu +${INITIAL_DUT_CONNECTION_METHOD}= Telnet +${DUT_CONNECTION_METHOD}= Telnet +${TESTS_IN_FIRMWARE_SUPPORT}= ${TRUE} +${BLUETOOTH_CARD_UBUNTU}= 8087:0026 +${POWER_CTRL}= sonoff +${USB_STACK_SUPPORT}= ${TRUE} +${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} +${TESTS_IN_UBUNTU_SUPPORT}= ${FALSE} +${DTS_SUPPORT}= ${TRUE} +${SNIPEIT}= no +${SONOFF_IP}= 192.168.10.57 diff --git a/variables.robot b/variables.robot index cfa219a91f..cd61c8f148 100644 --- a/variables.robot +++ b/variables.robot @@ -180,7 +180,7 @@ ${OS_UBUNTU}= ubuntu ... platform=qemu ... platform_vendor=qemu # NovaCustom NV4x ADL -------------------------------------------------------- -&{RTE51}= ip=0.0.0.0 +&{RTE51}= ip=192.168.10.58 sonoff_ip=192.168.10.57 ... platform=novacustom-nv41pz platform_vendor=Clevo # NovaCustom automated laptop testing station -------------------------------- &{RTE52}= ip=192.168.10.91 From 2bf00bd5252da47802e949890c246d0abd8aa9cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Tue, 22 Apr 2025 16:15:04 +0200 Subject: [PATCH 392/416] platform-configs/novacustom-ns50mu.robot: enable telnet and sonoff MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- platform-configs/novacustom-ns50mu.robot | 42 +++++++++++++----------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/platform-configs/novacustom-ns50mu.robot b/platform-configs/novacustom-ns50mu.robot index b05ed30ee7..df6b6daae3 100644 --- a/platform-configs/novacustom-ns50mu.robot +++ b/platform-configs/novacustom-ns50mu.robot @@ -4,30 +4,34 @@ Resource include/novacustom-common.robot *** Variables *** +${INITIAL_DUT_CONNECTION_METHOD}= Telnet +${DUT_CONNECTION_METHOD}= Telnet +${POWER_CTRL}= sonoff + # CPU -${CPU}= Intel(R) Core(TM) i7-1165G7 CPU +${CPU}= Intel(R) Core(TM) i7-1165G7 CPU # Test configuration -${3_MDEB_WIFI_NETWORK}= 3mdeb_abr -${CLEVO_BATTERY_CAPACITY}= 3200*1000 -${CLEVO_DISK}= Samsung SSD 980 PRO -${CLEVO_USB_C_HUB}= 4-port -${DEVICE_NVME_DISK}= Non-Volatile memory controller -${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 -${DMIDECODE_PRODUCT_NAME}= NS50_70MU -${EXTERNAL_HEADSET}= USB PnP Audio Device -${USB_DEVICE}= SanDisk -${USB_MODEL}= USB Flash Memory -${CPU_MAX_FREQUENCY}= 4800 -${CPU_MIN_FREQUENCY}= 300 +${3_MDEB_WIFI_NETWORK}= 3mdeb_abr +${CLEVO_BATTERY_CAPACITY}= 3200*1000 +${CLEVO_DISK}= Samsung SSD 980 PRO +${CLEVO_USB_C_HUB}= 4-port +${DEVICE_NVME_DISK}= Non-Volatile memory controller +${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 +${DMIDECODE_PRODUCT_NAME}= NS50_70MU +${EXTERNAL_HEADSET}= USB PnP Audio Device +${USB_DEVICE}= SanDisk +${USB_MODEL}= USB Flash Memory +${CPU_MAX_FREQUENCY}= 4800 +${CPU_MIN_FREQUENCY}= 300 # dasharo-compability ${FW_NO_EC_SYNC_DOWNLOAD_LINK}= -... https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_tgl/v1.5.1/novacustom_ns5x_tgl_v1.5.1.rom +... https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_tgl/v1.5.1/novacustom_ns5x_tgl_v1.5.1.rom ${EC_NO_SYNC_DOWNLOAD_LINK}= -... https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_tgl/v1.5.1/novacustom_ns5x_tgl_ec_v1.5.1.rom -${FW_NO_EC_SYNC_VERSION}= v1.5.1 -${EC_NO_SYNC_VERSION}= 2023-10-31_f148431 -${POWER_CTRL}= none +... https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_tgl/v1.5.1/novacustom_ns5x_tgl_ec_v1.5.1.rom +${FW_NO_EC_SYNC_VERSION}= v1.5.1 +${EC_NO_SYNC_VERSION}= 2023-10-31_f148431 -@{TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} +${TESTS_IN_FIRMWARE_SUPPORT}= ${TRUE} +@{TESTED_LINUX_DISTROS}= ${ENV_ID_UBUNTU} From ffc95e278fb8b2394e6a314df946f80b02dbed1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Tue, 22 Apr 2025 16:15:19 +0200 Subject: [PATCH 393/416] requirements.txt: bump osfv_cli for ns50mu support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 88c86c4584..e43c036602 100644 --- a/requirements.txt +++ b/requirements.txt @@ -38,7 +38,7 @@ mdurl==0.1.2 nodeenv==1.8.0 numpy==2.2.3 oauth2client==4.1.3 -osfv @ git+https://github.com/Dasharo/osfv-scripts.git@06bf5d45b21bdec86486aba8aafd5664d470beff#subdirectory=osfv_cli +osfv @ git+https://github.com/Dasharo/osfv-scripts.git@5d1a6aea261c321b059326f4fd112dbb13e37d6e#subdirectory=osfv_cli packaging==24.2 pandas==2.2.3 paramiko==3.4.0 From ee24a6203844ea8410d63485a3bc958238bf23b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Tue, 22 Apr 2025 16:15:45 +0200 Subject: [PATCH 394/416] platform-configs/include/novacustom-common.robot: unset options lib MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- platform-configs/include/novacustom-common.robot | 2 -- 1 file changed, 2 deletions(-) diff --git a/platform-configs/include/novacustom-common.robot b/platform-configs/include/novacustom-common.robot index bb94375dee..5bf4130a82 100644 --- a/platform-configs/include/novacustom-common.robot +++ b/platform-configs/include/novacustom-common.robot @@ -32,8 +32,6 @@ ${DMIDECODE_VENDOR}= 3mdeb ${DMIDECODE_FAMILY}= Not Applicable ${DMIDECODE_TYPE}= Notebook -${OPTIONS_LIB}= options-lib_dcu - ${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 ${CLEVO_USB_C_HUB}= 4-port ${3_MDEB_WIFI_NETWORK}= 3mdeb_abr From 325d59694ce62e80750997b3f2482ef2fed8106a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Tue, 22 Apr 2025 16:16:18 +0200 Subject: [PATCH 395/416] variables.robot: add ns50mu rack MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- variables.robot | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/variables.robot b/variables.robot index cd61c8f148..4d4e955b09 100644 --- a/variables.robot +++ b/variables.robot @@ -180,7 +180,7 @@ ${OS_UBUNTU}= ubuntu ... platform=qemu ... platform_vendor=qemu # NovaCustom NV4x ADL -------------------------------------------------------- -&{RTE51}= ip=192.168.10.58 sonoff_ip=192.168.10.57 +&{RTE51}= ip=192.168.10.58 sonoff_ip=192.168.10.57 ... platform=novacustom-nv41pz platform_vendor=Clevo # NovaCustom automated laptop testing station -------------------------------- &{RTE52}= ip=192.168.10.91 @@ -248,6 +248,12 @@ ${OS_UBUNTU}= ubuntu ... platform=protectli-vp3210 ... platform_vendor=protectli +# NovaCustom NS50MU test rack +&{RTE70}= ip=192.168.10.73 +... platform=novacustom-ns50mu +... platform_vendor=Clevo +... sonoff_ip=192.168.10.67 + @{RTE_LIST}= &{RTE05} ... &{RTE06} &{RTE07} &{RTE08} &{RTE09} &{RTE10} ... &{RTE11} &{RTE12} &{RTE13} &{RTE14} &{RTE15} @@ -261,7 +267,7 @@ ${OS_UBUNTU}= ubuntu ... &{RTE51} &{RTE52} &{RTE53} &{RTE54} &{RTE55} ... &{RTE56} &{RTE57} &{RTE58} &{RTE59} &{RTE60} ... &{RTE61} &{RTE62} &{RTE63} &{RTE64} &{RTE65} -... &{RTE66} &{RTE67} &{RTE68} &{RTE69} +... &{RTE66} &{RTE67} &{RTE68} &{RTE69} &{RTE70} # hardware database: # ----------------------------------------------------------------------------- &{HDD01}= vendor=SAMSUNG volume=500GB type=HDD_Storage From 2543f56ad39c1710c0f9ef69894856fb3c372389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Tue, 22 Apr 2025 16:16:41 +0200 Subject: [PATCH 396/416] platform-configs/include/novacustom-tgl.robot: set version to v1.6.0-rc1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- platform-configs/include/novacustom-tgl.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-configs/include/novacustom-tgl.robot b/platform-configs/include/novacustom-tgl.robot index ff29a04276..d3ed4a60dc 100644 --- a/platform-configs/include/novacustom-tgl.robot +++ b/platform-configs/include/novacustom-tgl.robot @@ -20,7 +20,7 @@ ${BLUETOOTH_CARD_UBUNTU}= Intel Corp. AX201 Bluetooth ${WEBCAM_UBUNTU}= Chicony Electronics Co., Ltd Chicony USB2.0 Camera # DMI -${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v1.5.2 +${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v1.6.0-rc1 # TODO verify ${DMIDECODE_RELEASE_DATE}= 03/17/2022 From 470908afb9923693b700fafefac060d3d221f4e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kope=C4=87?= Date: Tue, 22 Apr 2025 16:29:53 +0200 Subject: [PATCH 397/416] platform-configs/novacustom-*: set options lib explicitly per board MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Kopeć --- platform-configs/novacustom-ns50pu.robot | 2 ++ platform-configs/novacustom-ns70mu.robot | 2 ++ platform-configs/novacustom-ns70pu.robot | 2 ++ platform-configs/novacustom-nv41mb.robot | 1 + platform-configs/novacustom-nv41mz.robot | 2 ++ platform-configs/novacustom-nv41pz.robot | 8 ++++---- platform-configs/novacustom-v540tnd.robot | 2 ++ platform-configs/novacustom-v560tne.robot | 2 ++ platform-configs/novacustom-v560tu.robot | 2 ++ 9 files changed, 19 insertions(+), 4 deletions(-) diff --git a/platform-configs/novacustom-ns50pu.robot b/platform-configs/novacustom-ns50pu.robot index 66b9ce0b75..df2ea3f2d5 100644 --- a/platform-configs/novacustom-ns50pu.robot +++ b/platform-configs/novacustom-ns50pu.robot @@ -20,3 +20,5 @@ ${USB_DEVICE}= Kingston ${USB_MODEL}= USB Flash Memory ${CPU_MAX_FREQUENCY}= 4500 ${CPU_MIN_FREQUENCY}= 300 + +${OPTIONS_LIB}= options-lib_dcu diff --git a/platform-configs/novacustom-ns70mu.robot b/platform-configs/novacustom-ns70mu.robot index 015637dbe6..6ab5d86edb 100644 --- a/platform-configs/novacustom-ns70mu.robot +++ b/platform-configs/novacustom-ns70mu.robot @@ -28,3 +28,5 @@ ${EC_NO_SYNC_DOWNLOAD_LINK}= ... https://dl.3mdeb.com/open-source-firmware/Dasharo/novacustom_ns5x_tgl/v1.5.1/novacustom_ns5x_tgl_ec_v1.5.1.rom ${FW_NO_EC_SYNC_VERSION}= v1.5.1 ${EC_NO_SYNC_VERSION}= 2023-10-31_f148431 + +${OPTIONS_LIB}= options-lib_dcu diff --git a/platform-configs/novacustom-ns70pu.robot b/platform-configs/novacustom-ns70pu.robot index 6b60065604..86f9523163 100644 --- a/platform-configs/novacustom-ns70pu.robot +++ b/platform-configs/novacustom-ns70pu.robot @@ -20,3 +20,5 @@ ${USB_DEVICE}= Kingston ${USB_MODEL}= USB Flash Memory ${CPU_MAX_FREQUENCY}= 4500 ${CPU_MIN_FREQUENCY}= 300 + +${OPTIONS_LIB}= options-lib_dcu diff --git a/platform-configs/novacustom-nv41mb.robot b/platform-configs/novacustom-nv41mb.robot index f7fcb4c9e3..1e19758ea5 100644 --- a/platform-configs/novacustom-nv41mb.robot +++ b/platform-configs/novacustom-nv41mb.robot @@ -21,3 +21,4 @@ ${CPU_MAX_FREQUENCY}= 4800 ${CPU_MIN_FREQUENCY}= 300 ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${TRUE} +${OPTIONS_LIB}= options-lib_dcu diff --git a/platform-configs/novacustom-nv41mz.robot b/platform-configs/novacustom-nv41mz.robot index 299eb1c99c..6cfc3bd481 100644 --- a/platform-configs/novacustom-nv41mz.robot +++ b/platform-configs/novacustom-nv41mz.robot @@ -20,3 +20,5 @@ ${USB_DEVICE}= SanDisk ${USB_MODEL}= USB Flash Memory ${CPU_MAX_FREQUENCY}= 4800 ${CPU_MIN_FREQUENCY}= 300 + +${OPTIONS_LIB}= options-lib_dcu diff --git a/platform-configs/novacustom-nv41pz.robot b/platform-configs/novacustom-nv41pz.robot index 21e2435ef5..5406bd1c5b 100644 --- a/platform-configs/novacustom-nv41pz.robot +++ b/platform-configs/novacustom-nv41pz.robot @@ -5,7 +5,7 @@ Resource include/novacustom-common.robot *** Variables *** # CPU -${CPU}= Intel(R) Core(TM) i5-1240P CPU +${CPU}= Intel(R) Core(TM) i5-1240P CPU # Test configuration ${3_MDEB_WIFI_NETWORK}= 3mdeb_abr @@ -28,7 +28,7 @@ ${BLUETOOTH_CARD_UBUNTU}= 8087:0026 ${POWER_CTRL}= sonoff ${USB_STACK_SUPPORT}= ${TRUE} ${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} -${TESTS_IN_UBUNTU_SUPPORT}= ${FALSE} +${TESTS_IN_UBUNTU_SUPPORT}= ${FALSE} ${DTS_SUPPORT}= ${TRUE} -${SNIPEIT}= no -${SONOFF_IP}= 192.168.10.57 +${SNIPEIT}= no +${SONOFF_IP}= 192.168.10.57 diff --git a/platform-configs/novacustom-v540tnd.robot b/platform-configs/novacustom-v540tnd.robot index 8f63d6960a..513ff693ba 100644 --- a/platform-configs/novacustom-v540tnd.robot +++ b/platform-configs/novacustom-v540tnd.robot @@ -70,3 +70,5 @@ ${GPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${TRUE} ${UNIGINE_SUPERPOSITION_RESULT_AC}= 94.4 # FPS ${UNIGINE_SUPERPOSITION_RESULT_BAT}= 21.9 # FPS + +${OPTIONS_LIB}= options-lib_dcu diff --git a/platform-configs/novacustom-v560tne.robot b/platform-configs/novacustom-v560tne.robot index 852c223c54..9e02795aeb 100644 --- a/platform-configs/novacustom-v560tne.robot +++ b/platform-configs/novacustom-v560tne.robot @@ -56,3 +56,5 @@ ${GPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} ${NVIDIA_GRAPHICS_CARD_SUPPORT}= ${TRUE} ${UNIGINE_SUPERPOSITION_RESULT_AC}= 114 # FPS ${UNIGINE_SUPERPOSITION_RESULT_BAT}= 26.2 # FPS + +${OPTIONS_LIB}= options-lib_dcu diff --git a/platform-configs/novacustom-v560tu.robot b/platform-configs/novacustom-v560tu.robot index aa2400f1d3..67b2842faa 100644 --- a/platform-configs/novacustom-v560tu.robot +++ b/platform-configs/novacustom-v560tu.robot @@ -61,3 +61,5 @@ ${WIN_RAND_WRITE_NONQUE}= ${EMPTY} # MB/s ${GPU_PERFORMANCE_TESTS_SUPPORT}= ${TRUE} ${UNIGINE_SUPERPOSITION_RESULT_AC}= 24.5 # FPS ${UNIGINE_SUPERPOSITION_RESULT_BAT}= 23.5 # FPS + +${OPTIONS_LIB}= options-lib_dcu From b3a6500a0541d0e73786d5832df64a06fb5a0ee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Wed, 23 Apr 2025 12:36:26 +0200 Subject: [PATCH 398/416] docs/novacustom.md: update setup process with FTDI info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/novacustom.md | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/docs/novacustom.md b/docs/novacustom.md index 0785b5a12b..f55413d312 100644 --- a/docs/novacustom.md +++ b/docs/novacustom.md @@ -11,10 +11,42 @@ first. A major hurdle when testing NVC laptops is the lack of an available serial console, which is the main mode of access for most of our other platforms. -So far, we have been testing our laptops over SSH with the help of -[DCU](https://github.com/Dasharo/dcu). -This approach, however, needs some prerequisites to be satisfied: +We have so far come up with two solutions to this problem. The one we currently +implement in our testing procedure is plugging an FTDI USB-TTL converter +into the DUT, and setting it as the serial console in the EDK2 setup menu. The +former method was testing our laptops over SSH with the help of +[DCU](https://github.com/Dasharo/dcu). You can find the instructions for both +approaches below. + +## FTDI converter + +The obvious prerequisite is that you have an FTDI FT232-based USB-TTL +converter. Currently, that's the only hardware that's been tested, and the +driver seems to be rather picky, so a random USB-TTL might not cut it. + +The steps are: + +* Plug the converter into the DUT +* Enable `Serial Console Redirection` from the `Dasharo System Features` menu +* Navigate to `Boot Maintenance Manager` -> `Console Options` +* Find and select the FTDI terminal device in each Console Input, Console + Output and Stderr menus. It will likely appear at the very end, the device + path should resemble + + ``` + PciRoot(0x0)/Pci(0x14,0x0)/USB(0x0,0x0)/Uart(115200,8,N,1)/TtyTerm() + ``` + +After that, the laptop can be used just like a regular platform with serial +console access. Just **make sure** you set up the OS'es to use the right +console, eg. `ttyUSB0`, not `ttyS1`. + +## SSH + DCU + +If you couldn't manage to get a hold of an FTDI converter, you will need to +set up SSH on the platform and change the UEFI options by reading, modifying +and writing back the NVRAM region with the help of DCU. * If you have multiple OS'es on your platform, you need to ensure that the **first boot option** is set to a Linux system. Switching between OSes From 9a7107cb15ddc585ca929eec8fef83c7454114e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Wed, 23 Apr 2025 12:37:36 +0200 Subject: [PATCH 399/416] pre-commit fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- docs/novacustom.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/novacustom.md b/docs/novacustom.md index f55413d312..57520e3c96 100644 --- a/docs/novacustom.md +++ b/docs/novacustom.md @@ -34,7 +34,7 @@ The steps are: Output and Stderr menus. It will likely appear at the very end, the device path should resemble - ``` + ```text PciRoot(0x0)/Pci(0x14,0x0)/USB(0x0,0x0)/Uart(115200,8,N,1)/TtyTerm() ``` From b7d5760703bbb9f4766ecd959782d2fff6451b74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Wed, 23 Apr 2025 13:04:51 +0200 Subject: [PATCH 400/416] platform-configs: revert temporary desk testing setup for NV41 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- platform-configs/novacustom-nv41pz.robot | 50 ++++++++++++------------ variables.robot | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/platform-configs/novacustom-nv41pz.robot b/platform-configs/novacustom-nv41pz.robot index 5406bd1c5b..6dc9a7f00a 100644 --- a/platform-configs/novacustom-nv41pz.robot +++ b/platform-configs/novacustom-nv41pz.robot @@ -5,30 +5,30 @@ Resource include/novacustom-common.robot *** Variables *** # CPU -${CPU}= Intel(R) Core(TM) i5-1240P CPU +${CPU}= Intel(R) Core(TM) i5-1240P CPU # Test configuration -${3_MDEB_WIFI_NETWORK}= 3mdeb_abr -${CLEVO_BATTERY_CAPACITY}= 3200*1000 -${CLEVO_DISK}= Samsung SSD 980 PRO -${CLEVO_USB_C_HUB}= 4-port -${DEVICE_NVME_DISK}= Non-Volatile memory controller -${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 -${DMIDECODE_PRODUCT_NAME}= NV4xPZ -${EXTERNAL_HEADSET}= USB PnP Audio Device -${USB_DEVICE}= Kingston -${USB_MODEL}= USB Flash Memory -${CPU_MAX_FREQUENCY}= 4800 -${CPU_MIN_FREQUENCY}= 300 -${OPTIONS_LIB}= uefi-setup-menu -${INITIAL_DUT_CONNECTION_METHOD}= Telnet -${DUT_CONNECTION_METHOD}= Telnet -${TESTS_IN_FIRMWARE_SUPPORT}= ${TRUE} -${BLUETOOTH_CARD_UBUNTU}= 8087:0026 -${POWER_CTRL}= sonoff -${USB_STACK_SUPPORT}= ${TRUE} -${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} -${TESTS_IN_UBUNTU_SUPPORT}= ${FALSE} -${DTS_SUPPORT}= ${TRUE} -${SNIPEIT}= no -${SONOFF_IP}= 192.168.10.57 +${3_MDEB_WIFI_NETWORK}= 3mdeb_abr +${CLEVO_BATTERY_CAPACITY}= 3200*1000 +${CLEVO_DISK}= Samsung SSD 980 PRO +${CLEVO_USB_C_HUB}= 4-port +${DEVICE_NVME_DISK}= Non-Volatile memory controller +${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 +${DMIDECODE_PRODUCT_NAME}= NV4xPZ +${EXTERNAL_HEADSET}= USB PnP Audio Device +${USB_DEVICE}= Kingston +${USB_MODEL}= USB Flash Memory +${CPU_MAX_FREQUENCY}= 4800 +${CPU_MIN_FREQUENCY}= 300 + +${BLUETOOTH_CARD_UBUNTU}= 8087:0026 + +${POWER_CTRL}= none + +${USB_STACK_SUPPORT}= ${TRUE} +${TESTS_IN_WINDOWS_SUPPORT}= ${FALSE} + +${TPM_SUPPORTED_VERSION}= 2 +${TPM_EXPECTED_CHIP}= SLB9670 + +${OPTIONS_LIB}= options-lib_dcu diff --git a/variables.robot b/variables.robot index 4d4e955b09..e79d20e828 100644 --- a/variables.robot +++ b/variables.robot @@ -180,7 +180,7 @@ ${OS_UBUNTU}= ubuntu ... platform=qemu ... platform_vendor=qemu # NovaCustom NV4x ADL -------------------------------------------------------- -&{RTE51}= ip=192.168.10.58 sonoff_ip=192.168.10.57 +&{RTE51}= ip=0.0.0.0 ... platform=novacustom-nv41pz platform_vendor=Clevo # NovaCustom automated laptop testing station -------------------------------- &{RTE52}= ip=192.168.10.91 From ca5a43345bec7ea6c1e1a3bc62c0e73e38875125 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Thu, 17 Apr 2025 16:40:18 +0200 Subject: [PATCH 401/416] dasharo-compatibility/network-speed.robot: 2.5G semi-manual mode Semi-manual execution mode (incl. DUT reconnection) added to ETHPERF001.001 Check Performance of 2.5G Wired Network Interface (Ubuntu) for platforms with two 2.5GBASE-T ethernet ports Signed-off-by: Mateusz Maciejewski --- dasharo-compatibility/network-speed.robot | 42 ++++++++++++++++++- .../include/protectli-vp32xx.robot | 1 + platform-configs/protectli-v1210.robot | 1 + platform-configs/protectli-v1211.robot | 1 + 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/dasharo-compatibility/network-speed.robot b/dasharo-compatibility/network-speed.robot index a3c1905003..8caf16ecc5 100644 --- a/dasharo-compatibility/network-speed.robot +++ b/dasharo-compatibility/network-speed.robot @@ -1,5 +1,6 @@ *** Settings *** Library Collections +Library Dialogs Library OperatingSystem Library Process Library String @@ -23,9 +24,35 @@ Suite Teardown Run Keyword *** Test Cases *** -ETHPERF001.001 Check Performance of 2.5G Wired Network Interface (Ubuntu) +ETHPERF001.201 Check Performance of 2.5G Wired Network Interface (Ubuntu) [Documentation] This test aims to verify the performance of Ethernet connection Depends On ${ETH_PERF_PAIR_2_G} + Depends On ${ETH_PORTS} + + ${eth_ports_number}= Get Length ${ETH_PORTS} + IF '${eth_ports_number}' == '2' + Skip If '${DUT_CONNECTION_METHOD}' != 'Telnet' + Pause Execution + ... [1/10] This is semi-manual execution, in next step there will be instruction checklist of DUT setup modification. + ${lab_network_port}= Get Value From User + ... [2/10] Enter DUT ethernet port number connected to lab network. 1 + + @{manual_eth_loop_setup}= Create List + ... 1. On DUT, disconnect lab network ethernet cable from port ${lab_network_port} + ... 2. On DUT, connect both ethernet ports with Cat 6a patch cable. + @{manual_eth_restore}= Create List + ... 1. On DUT, disconnect Cat 6a patch cable from both ethernet ports + ... 2. On DUT, reconnect lab network ethernet cable to port ${lab_network_port} + + @{dut_setup_values}= Get Selections From User + ... [3/10] Follow the steps, mark each when done, click OK when finished. + ... ${manual_eth_loop_setup}[0] + ... ${manual_eth_loop_setup}[1] + Lists Should Be Equal ${manual_eth_loop_setup} ${dut_setup_values} + + Pause Execution [3/10] Click OK to begin speed testing. + END + Power On Boot System Or From Connected Disk ${ENV_ID_UBUNTU} Login To Linux @@ -34,9 +61,20 @@ ETHPERF001.001 Check Performance of 2.5G Wired Network Interface (Ubuntu) ${eth_1}= Get From List ${ETH_PERF_PAIR_2_G} 0 ${eth_2}= Get From List ${ETH_PERF_PAIR_2_G} 1 Configure Network Interfaces For Testing ${eth_1} ${eth_2} + Test Network Performance 2.35 -ETHPERF002.001 Check Performance of 10G Wired Network Interface (Ubuntu) + IF '${eth_ports_number}' == '2' + Pause Execution + ... [4/10] This is semi-manual execution, in next step there will be instruction checklist of DUT setup modification. + @{dut_restore_values}= Get Selections From User + ... [5/10] Follow the steps, mark each when done, click OK when finished. + ... ${manual_eth_restore}[0] + ... ${manual_eth_restore}[1] + Lists Should Be Equal ${manual_eth_restore} ${dut_restore_values} + END + +ETHPERF002.201 Check Performance of 10G Wired Network Interface (Ubuntu) [Documentation] This test aims to verify the performance of Ethernet connection Depends On ${ETH_PERF_PAIR_10_G} Power On diff --git a/platform-configs/include/protectli-vp32xx.robot b/platform-configs/include/protectli-vp32xx.robot index eed8e2d1da..a3d74f9a80 100644 --- a/platform-configs/include/protectli-vp32xx.robot +++ b/platform-configs/include/protectli-vp32xx.robot @@ -9,5 +9,6 @@ ${FLASH_SIZE}= ${16*1024*1024} ${MAX_CPU_TEMP}= 82 ${DEVICE_USB_KEYBOARD}= Logitech, Inc. Keyboard K120 ${ETHERNET_ID}= 8086:125c +@{ETH_PERF_PAIR_2_G}= enp2s0 enp4s0 ${SENSORS_CONFIG_FILE}= include/sensors/default-sensors-config.yaml diff --git a/platform-configs/protectli-v1210.robot b/platform-configs/protectli-v1210.robot index 85824c100b..f4b7d7ce3d 100644 --- a/platform-configs/protectli-v1210.robot +++ b/platform-configs/protectli-v1210.robot @@ -15,3 +15,4 @@ ${PLATFORM_RAM_SIZE}= 4096 @{ETH_PORTS}= 64-62-66-2f-00-12 ... 64-62-66-2f-00-13 ${ETHERNET_ID}= 8086:125c +@{ETH_PERF_PAIR_2_G}= eno0 eno1 diff --git a/platform-configs/protectli-v1211.robot b/platform-configs/protectli-v1211.robot index b3da8cf58c..2506ddcb4b 100644 --- a/platform-configs/protectli-v1211.robot +++ b/platform-configs/protectli-v1211.robot @@ -15,3 +15,4 @@ ${PLATFORM_RAM_SIZE}= 8192 @{ETH_PORTS}= 64-62-66-2f-07-d2 ... 64-62-66-2f-07-d3 ${ETHERNET_ID}= 8086:125c +@{ETH_PERF_PAIR_2_G}= eno0 eno1 From 48623bd82f1526ae75e40b34e9825a2d33568ec5 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Tue, 22 Apr 2025 16:43:42 +0200 Subject: [PATCH 402/416] dasharo-compatibility/network-speed.robot: step numbers fixed Step numbers fixed in ETHPERF001.201. Signed-off-by: Mateusz Maciejewski --- dasharo-compatibility/network-speed.robot | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dasharo-compatibility/network-speed.robot b/dasharo-compatibility/network-speed.robot index 8caf16ecc5..8dc090c102 100644 --- a/dasharo-compatibility/network-speed.robot +++ b/dasharo-compatibility/network-speed.robot @@ -33,9 +33,9 @@ ETHPERF001.201 Check Performance of 2.5G Wired Network Interface (Ubuntu) IF '${eth_ports_number}' == '2' Skip If '${DUT_CONNECTION_METHOD}' != 'Telnet' Pause Execution - ... [1/10] This is semi-manual execution, in next step there will be instruction checklist of DUT setup modification. + ... [1/6] This is semi-manual execution, in next step there will be instruction checklist of DUT setup modification. ${lab_network_port}= Get Value From User - ... [2/10] Enter DUT ethernet port number connected to lab network. 1 + ... [2/6] Enter DUT ethernet port number connected to lab network. 1 @{manual_eth_loop_setup}= Create List ... 1. On DUT, disconnect lab network ethernet cable from port ${lab_network_port} @@ -45,12 +45,12 @@ ETHPERF001.201 Check Performance of 2.5G Wired Network Interface (Ubuntu) ... 2. On DUT, reconnect lab network ethernet cable to port ${lab_network_port} @{dut_setup_values}= Get Selections From User - ... [3/10] Follow the steps, mark each when done, click OK when finished. + ... [3/6] Follow the steps, mark each when done, click OK when finished. ... ${manual_eth_loop_setup}[0] ... ${manual_eth_loop_setup}[1] Lists Should Be Equal ${manual_eth_loop_setup} ${dut_setup_values} - Pause Execution [3/10] Click OK to begin speed testing. + Pause Execution [4/6] Click OK to begin speed testing. END Power On @@ -66,9 +66,9 @@ ETHPERF001.201 Check Performance of 2.5G Wired Network Interface (Ubuntu) IF '${eth_ports_number}' == '2' Pause Execution - ... [4/10] This is semi-manual execution, in next step there will be instruction checklist of DUT setup modification. + ... [5/6] This is semi-manual execution, in next step there will be instruction checklist of DUT setup modification. @{dut_restore_values}= Get Selections From User - ... [5/10] Follow the steps, mark each when done, click OK when finished. + ... [6/6] Follow the steps, mark each when done, click OK when finished. ... ${manual_eth_restore}[0] ... ${manual_eth_restore}[1] Lists Should Be Equal ${manual_eth_restore} ${dut_restore_values} From a93d2456256c737f53c5d4ed205a7c4e3dd59568 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Tue, 1 Apr 2025 10:11:36 +0200 Subject: [PATCH 403/416] DCU004.201: Moving to USBMassStorage menu option - Moved from "Enable network boot" to "Enable USB Mass Storage" as tested option on Protectli platforms - Getting rid of unwrapped SSHLibrary keywords from lib/dcu.robot Signed-off-by: Mateusz Maciejewski --- lib/dcu.robot | 4 ++-- platform-configs/include/protectli-common.robot | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/dcu.robot b/lib/dcu.robot index 55c2c7af05..d4c3d216a6 100644 --- a/lib/dcu.robot +++ b/lib/dcu.robot @@ -55,12 +55,12 @@ DCU Variable Read SMMSTORE Execute Command In Terminal flashrom -p internal -r coreboot.rom --fmap -i FMAP -i SMMSTORE &> /dev/null Execute Command In Terminal chmod 666 coreboot.rom - SSHLibrary.Get File coreboot.rom ${out_file} + Get File From DUT coreboot.rom ${out_file} DCU Variable Flash SMMSTORE [Documentation] Write the UEFI SMMSTORE to commit the changes [Arguments] ${fw_file} - SSHLibrary.Put File ${fw_file} coreboot.rom + Send File To DUT ${fw_file} coreboot.rom Execute Command In Terminal flashrom -p internal -w coreboot.rom --fmap -i SMMSTORE --noverify-all &> /dev/null DCU Variable Get UEFI Option From File diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index a84060368d..85204defdb 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -74,6 +74,7 @@ ${USB_DISKS_DETECTION_SUPPORT}= ${TRUE} ${USB_KEYBOARD_DETECTION_SUPPORT}= ${TRUE} ${DCU_UUID_SUPPORT}= ${TRUE} ${DCU_SERIAL_SUPPORT}= ${TRUE} +${DCU_SUPPORTED_BOOLEAN_SMMSTORE_VARIABLE}= UsbMassStorage ${HDMI_AUDIO_SUPPORT}= ${TRUE} # Test module: dasharo-security From 60f9a049e1717eb5084efa122378c4f497e884d7 Mon Sep 17 00:00:00 2001 From: Jakub Redmerski Date: Fri, 25 Apr 2025 17:13:33 +0200 Subject: [PATCH 404/416] dasharo-compatibility/acpi-driver.robot change: test id Signed-off-by: Jakub Redmerski --- dasharo-compatibility/acpi-driver.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dasharo-compatibility/acpi-driver.robot b/dasharo-compatibility/acpi-driver.robot index 8dcb79a96b..c25cc12aef 100644 --- a/dasharo-compatibility/acpi-driver.robot +++ b/dasharo-compatibility/acpi-driver.robot @@ -38,7 +38,7 @@ Suite Teardown Run Keyword *** Test Cases *** -ACPI001.001 ACPI driver test (Ubuntu) +ACPI001.201 ACPI driver test (Ubuntu) [Documentation] Tests if ACPI drivers can be recognised Skip If not ${TESTS_IN_UBUNTU_SUPPORT} ACP001.001 not supported Boot System Or From Connected Disk ${ENV_ID_UBUNTU} @@ -61,7 +61,7 @@ ACPI001.001 ACPI driver test (Ubuntu) ${out}= Execute Command In Terminal sensors Should Contain All ${out} @{EXPECTED_OUTPUT} -ACPI001.002 ACPI driver test (Fedora) +ACPI001.202 ACPI driver test (Fedora) [Documentation] Tests if ACPI drivers can be recognised # Skip If not ${TEST_IN_FE} or ACP001.002 not supported Boot System Or From Connected Disk ${ENV_ID_FEDORA} From 5b60942f23d82bbafa2770af06ba4cb6fea8a5f7 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Fri, 14 Mar 2025 17:24:13 +0100 Subject: [PATCH 405/416] platform-configs/include/protectli-common.robot: Remove UEFI Shell dependency Signed-off-by: Sebastian Czapla --- platform-configs/include/protectli-common.robot | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/platform-configs/include/protectli-common.robot b/platform-configs/include/protectli-common.robot index 85204defdb..67608aef6c 100644 --- a/platform-configs/include/protectli-common.robot +++ b/platform-configs/include/protectli-common.robot @@ -18,8 +18,7 @@ ${EDK2_IPXE_CHECKPOINT}= Advanced ${MANUFACTURER}= ${TBD} ${CPU}= ${TBD} ${POWER_CTRL}= RteCtrl -${FLASH_VERIFY_METHOD}= tianocore-shell -${FLASH_VERIFY_OPTION}= UEFI Shell +${FLASH_VERIFY_METHOD}= none ${DMIDECODE_SERIAL_NUMBER}= N/A ${DMIDECODE_MANUFACTURER}= Protectli From 70353627cfea8686f7335b12db9310236460f7be Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Wed, 26 Mar 2025 11:52:08 +0100 Subject: [PATCH 406/416] platform-configs/protectli-vp3230.robot: Add eth ports for perf measure Signed-off-by: Sebastian Czapla --- platform-configs/protectli-vp3230.robot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platform-configs/protectli-vp3230.robot b/platform-configs/protectli-vp3230.robot index 738b373eb2..a75067f729 100644 --- a/platform-configs/protectli-vp3230.robot +++ b/platform-configs/protectli-vp3230.robot @@ -43,3 +43,5 @@ ${CLEVO_DISK}= N/A ${TPM_SUPPORTED_VERSION}= 2 ${TPM_EXPECTED_CHIP}= SLB9670 + +@{ETH_PERF_PAIR_2_G}= enp2s0 enp4s0 From f3fbca416cc50e0ef88f8952f04342b420968a16 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Wed, 26 Mar 2025 12:01:39 +0100 Subject: [PATCH 407/416] platform-configs/protectli-vp3230.robot: Update DMI config Signed-off-by: Sebastian Czapla --- platform-configs/protectli-vp3230.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform-configs/protectli-vp3230.robot b/platform-configs/protectli-vp3230.robot index a75067f729..3fea554f3e 100644 --- a/platform-configs/protectli-vp3230.robot +++ b/platform-configs/protectli-vp3230.robot @@ -27,8 +27,8 @@ ${DMIDECODE_SERIAL_NUMBER}= 123456789 ${DMIDECODE_PRODUCT_NAME}= VP3230 ${DMIDECODE_FAMILY}= Vault Pro ${DMIDECODE_TYPE}= Desktop -${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.0-rc4 -${DMIDECODE_RELEASE_DATE}= 11/13/2024 +${DMIDECODE_FIRMWARE_VERSION}= Dasharo (coreboot+UEFI) v0.9.0-rc10 +${DMIDECODE_RELEASE_DATE}= 03/14/2025 ${DEF_THREADS_TOTAL}= 8 ${DEF_THREADS_PER_CORE}= 1 ${DEF_CORES_PER_SOCKET}= 8 From d041b95288595aa71bed71a6bb8b8e27c811fa87 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Wed, 26 Mar 2025 17:59:44 +0100 Subject: [PATCH 408/416] platform-configs/protectli-vp3230.robot: Add NVMe to platform config Signed-off-by: Sebastian Czapla --- platform-configs/protectli-vp3230.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform-configs/protectli-vp3230.robot b/platform-configs/protectli-vp3230.robot index 3fea554f3e..fc083a1bf3 100644 --- a/platform-configs/protectli-vp3230.robot +++ b/platform-configs/protectli-vp3230.robot @@ -35,8 +35,8 @@ ${DEF_CORES_PER_SOCKET}= 8 ${DEF_SOCKETS}= 1 ${DEF_ONLINE_CPU}= 0-7 -${DEVICE_NVME_DISK}= N/A -${CLEVO_DISK}= N/A +${DEVICE_NVME_DISK}= Phison Electronics Corporation PS5019-E19 +${CLEVO_DISK}= Protectli 256GB M.2 @{ETH_PORTS}= 64-62-66-23-8f-19 ... 64-62-66-23-8f-1a From d4974af77ed6b27de65d0adb4ab698b306de8b7f Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Wed, 2 Apr 2025 14:32:56 +0200 Subject: [PATCH 409/416] lib/network.robot: Add intermediate file location during transfer Signed-off-by: Sebastian Czapla --- lib/network.robot | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/network.robot b/lib/network.robot index e1c10da15e..6556140e59 100644 --- a/lib/network.robot +++ b/lib/network.robot @@ -10,6 +10,8 @@ Resource ../keywords.robot Send File To DUT [Documentation] Sends file DUT and saves it at given location [Arguments] ${source_path} ${target_path} + ${filename}= Evaluate os.path.basename(r"${target_path}") + ${tmp_target}= Set Variable /tmp/${filename} ${hash_source}= Run md5sum ${source_path} | cut -d ' ' -f 1 IF '${DUT_CONNECTION_METHOD}' == 'Telnet' IF '${MANUFACTURER}' == 'QEMU' @@ -24,15 +26,21 @@ Send File To DUT Execute Command In Terminal rm -f ${target_path} SSHLibrary.Open Connection ${ip_address} port=${port} SSHLibrary.Login ${DEVICE_OS_USERNAME} ${DEVICE_OS_PASSWORD} - SSHLibrary.Put File ${source_path} ${target_path} + SSHLibrary.Put File ${source_path} ${tmp_target} SSHLibrary.Close Connection ELSE - SSHLibrary.Put File ${source_path} ${target_path} + SSHLibrary.Put File ${source_path} ${tmp_target} END - ${hash_target}= Execute Command In Terminal md5sum ${target_path} | cut -d ' ' -f 1 + ${hash_target}= Execute Command In Terminal md5sum ${tmp_target} | cut -d ' ' -f 1 ${hash_target}= Strip String ${hash_target} Should Be Equal ${hash_source} ${hash_target} msg=File was not correctly sent to DUT + ${issuer}= Execute Command In Terminal whoami + IF '${issuer}' != 'root' Switch To Root User + Execute Command In Terminal mv ${tmp_target} ${target_path} + Execute Command In Terminal chown ${issuer}:${issuer} ${target_path} + IF '${issuer}' != 'root' Exit From Root User + Get File From DUT [Documentation] Downloads a file from DUT and saves it at given location [Arguments] ${source_path} ${target_path} From ecb478011496067cff20ff21994e371255437fd6 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Thu, 24 Apr 2025 11:12:53 +0200 Subject: [PATCH 410/416] dasharo-compatibility/usb-hid-and-msc-support.robot: Use mount and sync in test Signed-off-by: Sebastian Czapla --- dasharo-compatibility/usb-hid-and-msc-support.robot | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index bb6ef014c8..1f6269d6c8 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -206,7 +206,10 @@ Upload 1GB File On USB Storage Switch To Root User Execute Linux Command openssl rand -out test_file.txt -base64 $(( 2**30 * 3/4 )) ${path_to_usb}= Identify Path To USB - Execute Linux Command yes | cp -f test_file.txt ${path_to_usb} 120 - Check If Files Are Identical In Linux test_file.txt ${path_to_usb}/test_file.txt + Execute Linux Command mount ${path_to_usb} /mnt + Execute Linux Command yes | cp -f test_file.txt /mnt 120 + Execute Linux Command sync 120 + Check If Files Are Identical In Linux test_file.txt /mnt/test_file.txt Execute Linux Command yes | rm test_file.txt ${path_to_usb}/test_file.txt + Execute Linux Command sync && umount ${path_to_usb} 120 Exit From Root User From f14a73a9be35d3adda2abd671e7d73eb0f121216 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Tue, 29 Apr 2025 17:44:14 +0200 Subject: [PATCH 411/416] dasharo-compatibility/usb-hid-and-msc-support.robot: Fix file removal Signed-off-by: Sebastian Czapla --- dasharo-compatibility/usb-hid-and-msc-support.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dasharo-compatibility/usb-hid-and-msc-support.robot b/dasharo-compatibility/usb-hid-and-msc-support.robot index 1f6269d6c8..f1d4e53c47 100644 --- a/dasharo-compatibility/usb-hid-and-msc-support.robot +++ b/dasharo-compatibility/usb-hid-and-msc-support.robot @@ -210,6 +210,6 @@ Upload 1GB File On USB Storage Execute Linux Command yes | cp -f test_file.txt /mnt 120 Execute Linux Command sync 120 Check If Files Are Identical In Linux test_file.txt /mnt/test_file.txt - Execute Linux Command yes | rm test_file.txt ${path_to_usb}/test_file.txt + Execute Linux Command yes | rm test_file.txt /mnt/test_file.txt Execute Linux Command sync && umount ${path_to_usb} 120 Exit From Root User From ff87a528a5b585e1e63dba734943790efc8c714c Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 28 Apr 2025 15:18:31 +0200 Subject: [PATCH 412/416] dasharo-compatibility/custom-boot-order.robot: Add new test suite Additionally, create new lib entry for boot order mgmt keywords. Signed-off-by: Sebastian Czapla --- dasharo-compatibility/custom-boot-order.robot | 21 +++ dasharo-performance/fast-boot.robot | 36 +--- keys.robot | 1 + lib/platform/boot.robot | 167 ++++++++++++++++++ 4 files changed, 191 insertions(+), 34 deletions(-) create mode 100644 dasharo-compatibility/custom-boot-order.robot create mode 100644 lib/platform/boot.robot diff --git a/dasharo-compatibility/custom-boot-order.robot b/dasharo-compatibility/custom-boot-order.robot new file mode 100644 index 0000000000..9d40c9f8c4 --- /dev/null +++ b/dasharo-compatibility/custom-boot-order.robot @@ -0,0 +1,21 @@ +*** Settings *** +Resource ../lib/platform/power.robot +Resource ../lib/platform/boot.robot + +Suite Setup Prepare Test Suite +Suite Teardown Log Out And Close Connection + + +*** Test Cases *** +CBO001.101 Custom Boot Order (EDK2) + [Documentation] Check if customization of Boot Order persists and + ... correct OS boots. + Depends On ${TESTS_IN_FIRMWARE_SUPPORT} + + Power Cycle Into Firmware Setup + Set Selected OS As First In Boot Order Via EDK2 ${ENV_ID_UBUNTU} + Verify Selected OS As First In Boot Order Via EDK2 ${ENV_ID_UBUNTU} + + Power Cycle Into Firmware Setup + Set Selected OS As First In Boot Order Via EDK2 ${ENV_ID_WINDOWS} + Verify Selected OS As First In Boot Order Via EDK2 ${ENV_ID_WINDOWS} diff --git a/dasharo-performance/fast-boot.robot b/dasharo-performance/fast-boot.robot index 9cf0429c3d..df2a2d75ca 100644 --- a/dasharo-performance/fast-boot.robot +++ b/dasharo-performance/fast-boot.robot @@ -1,16 +1,7 @@ *** Settings *** -Library Collections -Library OperatingSystem -Library Process -Library String Library Telnet timeout=20 seconds connection_timeout=120 seconds Library SSHLibrary timeout=90 seconds -Library RequestsLibrary -# TODO: maybe have a single file to include if we need to include the same -# stuff in all test cases -Resource ../variables.robot -Resource ../keywords.robot -Resource ../keys.robot +Resource ../lib/platform/boot.robot Suite Setup Initialize Fast Boot Suite Suite Teardown Log Out And Close Connection @@ -130,27 +121,4 @@ Initialize Fast Boot Suite Prepare Test Suite Skip If not ${FAST_AND_QUIET_BOOT_SUPPORT} Boot performance measurement tests not supported Skip If not ${TESTS_IN_UBUNTU_SUPPORT} Boot performance measurement tests not supported - - Boot System Or From Connected Disk ${ENV_ID_UBUNTU} - Login To Linux - Switch To Root User - - ${ubuntu_boot_id}= Execute Linux Command - ... efibootmgr | grep -i "ubuntu" | awk 'NR==1 {print $1}' | sed 's/Boot//g' | sed 's/*//g' - Should Not Be Empty ${ubuntu_boot_id} - - ${order_check}= Execute Linux Command - ... efibootmgr | grep "BootOrder: ${ubuntu_boot_id}" - - IF '${order_check}' == '${EMPTY}' - ${boot_order_no_ubuntu}= Execute Linux Command - ... efibootmgr | grep "BootOrder" | awk '{print $2}' | sed -e 's/,${ubuntu_boot_id}//g' - Should Not Be Empty ${boot_order_no_ubuntu} - - ${set_order_cmd}= Set Variable efibootmgr -o - ${set_order_cmd}= Catenate ${set_order_cmd} - ... ${ubuntu_boot_id},${boot_order_no_ubuntu} - - ${out}= Execute Linux Command ${set_order_cmd} - Should Contain ${out} BootOrder: ${ubuntu_boot_id} - END + Set Selected OS As First In Boot Order Via Efibootmgr ${ENV_ID_UBUNTU} diff --git a/keys.robot b/keys.robot index 5d4ac777b4..39a50f7d44 100644 --- a/keys.robot +++ b/keys.robot @@ -23,3 +23,4 @@ ${ENTER}= \x0d ${BACKSPACE}= \x08 ${KEY_SPACE}= \x20 ${DELETE}= \x1b\x5b\x33\x7e +${KEY_PLUS}= \x2b diff --git a/lib/platform/boot.robot b/lib/platform/boot.robot new file mode 100644 index 0000000000..c5600ed2de --- /dev/null +++ b/lib/platform/boot.robot @@ -0,0 +1,167 @@ +*** Settings *** +Documentation Common header for OSFV boot management + +Library Collections +Library OperatingSystem +Library Process +Library String +Library RequestsLibrary +Library SSHLibrary +Resource ../../variables.robot +Resource ../../keywords.robot +Resource ../../keys.robot + + +*** Keywords *** +Set Selected OS As First In Boot Order Via EDK2 + [Documentation] Uses EDK2 menu to select given OS as first in + ... boot menu. + ... + ... === Requirements === + ... - Serial port connection has to be supported by the platform + ... - Must be within Dasharo's main UEFI firmware setup + ... + ... === Arguments === + ... - ``${os}``: ``string`` - ENV_ID of the OS we want to boot + ... + ... === Return Value === + ... - None + ... + ... === Effects === + ... - OS specified by ENV_ID will be priority during subsequent boots + ... - Resets the DUT via EDK2 reset + [Arguments] ${os} + ${system_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${os} + + # When ESP scanning feature is there, boot entries are named differently than + # they used to + IF ${ESP_SCANNING_SUPPORT} == ${TRUE} + IF "${system_name}" == "ubuntu" + ${system_name}= Set Variable Ubuntu + ELSE IF "${system_name}" == "fedora" + ${system_name}= Set Variable Fedora + ELSE IF "${system_name}" == "trenchboot" and "${MANUFACTURER}" == "QEMU" + ${system_name}= Set Variable QEMU HARDDISK + END + END + + ${menu}= Get Setup Menu Construction + ${menu}= Enter Submenu From Snapshot And Return Construction + ... ${menu} + ... Boot Maintenance Manager + ${menu}= Enter Submenu From Snapshot And Return Construction + ... ${menu} + ... Boot Options + ${menu}= Enter Submenu From Snapshot And Return Construction + ... ${menu} + ... Change Boot Order + Press Enter + ${os_list_raw}= Read From Terminal Until ---/ + ${os_list}= Extract Strings From Frame ${os_list_raw} + ${first_item}= Set Variable ${os_list}[0] + ${is_first}= Run Keyword And Return Status Should Contain ${first_item} ${system_name} + + IF '${is_first}' == 'False' + ${index}= Set Variable -1 + FOR ${i} ${item} IN ENUMERATE @{os_list} + ${item_lower}= Convert To Lowercase ${item} + ${system_lower}= Convert To Lowercase ${system_name} + ${found}= Run Keyword And Return Status Should Contain ${item_lower} ${system_lower} + IF '${found}' == 'True' + ${index}= Set Variable ${i} + BREAK + END + END + + Should Not Be Equal As Integers ${index} -1 + ... System name '${system_name}' not found in boot menu list + + Press Key N Times ${index} ${ARROW_DOWN} + Press Key N Times ${index} ${KEY_PLUS} + Press Enter + Write Bare Into Terminal ${F10} + Sleep 1s + Write Bare Into Terminal y + # Return to main menu + Press Key N Times 3 ${ESC} + Sleep 1s + # Issue reset in the menu + Press Key N Times 2 ${ARROW_DOWN} + Press Enter + END + +Set Selected OS As First In Boot Order Via Efibootmgr + [Documentation] Uses Ubuntu and efibootmgr to select boot prioroty + ... + ... === Requirements === + ... - Connection to DUT must be established. + ... - Platform must boot Ubuntu to access efibootmgr + ... + ... === Arguments === + ... - ``${os}``: ``string`` - ENV_ID of the OS we want to boot + ... + ... === Return Value === + ... - None + ... + ... === Effects === + ... - OS specified by ENV_ID will be priority during subsequent + [Arguments] ${os} + ${system_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${os} + + Boot System Or From Connected Disk ${ENV_ID_UBUNTU} + Login To Linux + Switch To Root User + + ${os_boot_id}= Execute Linux Command + ... efibootmgr | grep -i "${system_name}" | awk 'NR==1 {print $1}' | sed 's/Boot//g' | sed 's/*//g' + Should Not Be Empty ${os_boot_id} + + ${order_check}= Execute Linux Command + ... efibootmgr | grep "BootOrder: ${os_boot_id}" + + # Trim the boot list to exclude target OS + IF '${order_check}' == '${EMPTY}' + ${boot_order_trimmed}= Execute Linux Command + ... efibootmgr | grep "BootOrder" | awk '{print $2}' | sed -e 's/,${os_boot_id}//g' + Should Not Be Empty ${boot_order_trimmed} + + ${set_order_cmd}= Set Variable efibootmgr -o + ${set_order_cmd}= Catenate ${set_order_cmd} + ... ${os_boot_id},${boot_order_trimmed} + + ${out}= Execute Linux Command ${set_order_cmd} + Should Contain ${out} BootOrder: ${os_boot_id} + END + +Verify Selected OS As First In Boot Order Via EDK2 + [Documentation] Uses dasharo edk2 boot menu to check first OS + ... in the boot order + ... === Requirements === + ... - Must be run in quick succession after Powering On + ... + ... === Arguments === + ... - ``${os}``: ``string`` - ENV_ID of the OS we want to check + ... + ... === Return Value === + ... - None + ... + ... === Effects === + ... - Fails if specified OS is not first boot entry + [Arguments] ${os} + ${system_name}= Get From Dictionary ${ENV_ID_OS_BOOTMENU_NAMES} ${os} + + # When ESP scanning feature is there, boot entries are named differently than + # they used to + IF ${ESP_SCANNING_SUPPORT} == ${TRUE} + IF "${system_name}" == "ubuntu" + ${system_name}= Set Variable Ubuntu + ELSE IF "${system_name}" == "fedora" + ${system_name}= Set Variable Fedora + ELSE IF "${system_name}" == "trenchboot" and "${MANUFACTURER}" == "QEMU" + ${system_name}= Set Variable QEMU HARDDISK + END + END + + ${boot_menu}= Enter Boot Menu Tianocore And Return Construction + ${top_os}= Get From List ${boot_menu} 0 + Should Contain ${top_os} ${system_name} From a46f6c549fe39cdfe99553869f9e6ba597087cd4 Mon Sep 17 00:00:00 2001 From: Sebastian Czapla Date: Mon, 28 Apr 2025 16:41:13 +0200 Subject: [PATCH 413/416] dasharo-performance/fast-boot.robot: Add workaround to skip OS selection Signed-off-by: Sebastian Czapla --- dasharo-performance/fast-boot.robot | 4 +++- keywords.robot | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/dasharo-performance/fast-boot.robot b/dasharo-performance/fast-boot.robot index df2a2d75ca..6aa0f8a281 100644 --- a/dasharo-performance/fast-boot.robot +++ b/dasharo-performance/fast-boot.robot @@ -2,6 +2,7 @@ Library Telnet timeout=20 seconds connection_timeout=120 seconds Library SSHLibrary timeout=90 seconds Resource ../lib/platform/boot.robot +Resource ../lib/cbmem.robot Suite Setup Initialize Fast Boot Suite Suite Teardown Log Out And Close Connection @@ -85,7 +86,8 @@ Measure FW Boot Time On Linux Log To Console \n FOR ${index} IN RANGE 0 ${iterations} - Power Cycle On + Execute Reboot Command linux ${True} + Sleep 5s Login To Linux Switch To Root User ${boot_time}= Get FW Boot Time From Systemd-analyze diff --git a/keywords.robot b/keywords.robot index beac9f6f6b..afdeb0232e 100644 --- a/keywords.robot +++ b/keywords.robot @@ -762,11 +762,11 @@ Execute Poweroff Command Execute Reboot Command [Documentation] Executes reboot command in given os - [Arguments] ${os}=linux + [Arguments] ${os}=linux ${assume_correct_boot}=${False} IF '${os}' == 'linux' # if the OS cannot be chosen from the bootmanager and rebooting # always boots the default one - IF '${OPTIONS_LIB}' == 'options-lib_dcu' + IF '${OPTIONS_LIB}' == 'options-lib_dcu' and ${assume_correct_boot} == ${False} Set Nextboot ${BOOTED_OS_ID} Import Variables ${CURDIR}/os-config/${BOOTED_OS_ID}-credentials.py Set Suite Variable ${BOOTED_OS_ID} ${BOOTED_OS_ID} From 0ab4c47eac081fd775e4b5d4cfe42d12144604f7 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Tue, 22 Apr 2025 16:37:29 +0200 Subject: [PATCH 414/416] dasharo-compatibiliyu/os-bsd-anysense.sh basic *ense OS support Work in Progress. scripts/freebsd/preseed_opnsense.sh: bsdinstall customization, can be applied for OPNsense, pfSense & FreeBSD. Requires running FreeBSD-based system. lib/bios/menus.robot - added pfSense terminal GUI encoding support. Signed-off-by: Mateusz Maciejewski --- dasharo-compatibility/os-bsd-anysense.robot | 143 ++++++++++++++++++++ lib/bios/menus.robot | 5 +- scripts/freebsd/preseed_opnsense.sh | 55 ++++++++ 3 files changed, 202 insertions(+), 1 deletion(-) create mode 100644 dasharo-compatibility/os-bsd-anysense.robot create mode 100644 scripts/freebsd/preseed_opnsense.sh diff --git a/dasharo-compatibility/os-bsd-anysense.robot b/dasharo-compatibility/os-bsd-anysense.robot new file mode 100644 index 0000000000..20e4a9e5f0 --- /dev/null +++ b/dasharo-compatibility/os-bsd-anysense.robot @@ -0,0 +1,143 @@ +*** Settings *** +Library Collections +Library Dialogs +Library OperatingSystem +Library Process +Library String +Library Telnet timeout=20 seconds connection_timeout=120 seconds +Resource ../variables.robot +Resource ../keywords.robot +Resource ../keys.robot + +# Log Out And Close Connection - elementary teardown keyword for all tests. +Suite Setup Run Keywords +... Prepare Test Suite +... AND +... Restore Secure Boot Defaults +Suite Teardown Run Keywords +... Run Keyword If ${SECURE_BOOT_SUPPORT} and ${TESTS_IN_FIRMWARE_SUPPORT} Set Secure Boot State To Disabled +... AND +... Log Out And Close Connection +Test Setup Run Keyword +... Restore Initial DUT Connection Method + + +*** Variables *** +${PFSENSE_PROMPT}= [2.7.2-RELEASE][root@pfSense.home.arpa]/root + + +*** Test Cases *** +BPS001.001 Boot pfSense LTS CE (serial output) from disk after cold-boot + [Documentation] Boot pfSense LTS CE (serial output) from disk after cold-boot + Power On + +BPS002.001 Boot pfSense LTS CE (serial output) from disk after warm-boot + Power On + +BPS003.001 Boot pfSense LTS CE (serial output) from disk after reboot + Power On + +OPN001.001 OPNsense stable (serial output) installation on Hard Disk + Power On + Boot OPNsense Installer + +OPN001.002 Boot OPNsense stable (serial output) from Hard Disk + Power On + +PFS001.001 pfSense stable (serial output) installation on Hard Disk + Power On + Boot PfSense Installer +# Enter pfSense Rescue Shell + Install PsSense On Sata Drive + +PFS001.002 Boot pfSense stable (serial output) from Hard Disk + Power On + Boot Pf Sense + + +*** Keywords *** +# Relabel pfSense ESP +# + +Boot PfSense Installer + [Documentation] Run /EFI/BOOT/bootx64.efi file from PFEFI-labeled partition; + ... Select console type vt100 and accept the license + Enter Boot From File + Enter Volume In File Explorer PFEFI + Execute File In File Explorer EFI + Execute File In File Explorer BOOT + Execute File In File Explorer bootx64.efi + Read From Terminal Until Console type [vt100]: + Write Into Terminal vt100 + Read From Terminal Until [Accept] + Press Enter + +Boot OPNsense Installer + [Documentation] Run /efi/boot/bootx64.efi file from OPNEFI-labeled partition; + Enter Boot From File + Enter Volume In File Explorer OPNEFI + Execute File In File Explorer efi + Execute File In File Explorer boot + Execute File In File Explorer bootx64.efi + Read From Terminal Until FreeBSD/amd64 (OPNsense.localdomain) (ttyu0) + Read From Terminal Until login: + +Enter PfSense Rescue Shell + ${menu}= Read From Terminal Until OK + # end would be 5 but it's 3 due to two empty lines + ${construction}= Parse Menu Snapshot Into Construction ${menu} 5 3 + Enter Submenu From Snapshot ${construction} Rescue Shell${SPACE_*_8}Launch a shell for rescue operations + Write Into Terminal root + Write Into Terminal root + +Enter OPN Sense Rescue Shell: + Read From Terminal FreeBSD/amd64 (OPNsense.localdomain) (ttyu0) + Read From Terminal Until login: + Write Into Terminal root + Read From Terminal Until Password: + Write Into Terminal opnsense + Read From Terminal Until Enter an option: + Write Into Terminal 8 + +Install PsSense On Sata Drive + ${welcome_menu}= Read From Terminal Until OK + # end would be 5 but it's 3 due to two empty lines + ${welcome_construction}= Parse Menu Snapshot Into Construction ${welcome_menu} 5 3 + Enter Submenu From Snapshot ${welcome_construction} Install${SPACE_*_13}Install pfSense + ${partition_construction}= Get Submenu Construction OK 5 3 + Enter Submenu From Snapshot ${partition_construction} Auto (ZFS)${SPACE_*_2}Guided Root-on-ZFS + Read From Terminal Until ZFS Configuration + ${pool_suspect}= Read From Terminal + ${pool_taken}= Run Keyword And Return Status + ... Should Contain + ... ${pool_suspect} + ... pfSense is already taken, please enter a name for the ZFS pool + ${my_tail2}= Read From Terminal + Log To Console "my tail2" + Log To Console ${my_tail2} + IF ${pool_taken} == ${TRUE} + Press Enter + ${pool_suspect}= Read From Terminal Until qqqqqj + END + Log To Console "pool suspect" + Log To Console ${pool_suspect} + ${configure_construction}= Parse Menu Snapshot Into Construction ${pool_suspect} 5 1 + # Enter Submenu From Snapshot ${configure_construction} T Pool Type/Disks:${SPACE * 3}stripe: 0 disks + Press Key N Times And Enter 1 ${ARROW_DOWN} + ${my_tail3}= Read From Terminal + Log To Console "my tail3" + Log To Console ${my_tail3} + ${select_virtual}= Get Submenu Construction OK 5 3 + # Read From Terminal Until Select Virtual Device type + # ${select_virtual}= Read From Terminal Until Cancel + +Boot Pf Sense + [Documentation] PFBOOT -> /efi/freebsd/loader.efi + Enter Boot From File + Enter Volume In File Explorer PFBOOT + Execute File In File Explorer efi + Execute File In File Explorer freebsd + Execute File In File Explorer loader.efi + Read From Terminal Until Enter an option: + Write Into Terminal 8 + Read From Terminal Until ${PFSENSE_PROMPT} diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index 919034a0e3..8c5f9f385a 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -306,9 +306,12 @@ Parse Menu Snapshot Into Construction @{construction}= Create List FOR ${line} IN @{menu_lines} # Replace multiple spaces with a single one - ${line}= Replace String Using Regexp ${line} ${SPACE}+ ${SPACE} + # ${line}= Replace String Using Regexp ${line} ${SPACE}+ ${SPACE} # Remove leading and trailing spaces ${line}= Strip String ${line} + # Remove FreeBSD installer frames, this affect slicing process due to removing empty lines + # ${line}= Remove String ${line} x x + ${line}= Remove String Using Regexp ${line} (x x) # Drop leading and trailing pipes (e.g. in One Time Boot Menu) ${line}= Strip String ${line} characters=| # Remove leading and trailing spaces diff --git a/scripts/freebsd/preseed_opnsense.sh b/scripts/freebsd/preseed_opnsense.sh new file mode 100644 index 0000000000..e056198db4 --- /dev/null +++ b/scripts/freebsd/preseed_opnsense.sh @@ -0,0 +1,55 @@ +#!/bin/sh + +LABEL=OPNBOOT +INSTALLER_ROOT_PARTITION=/dev/da0p4 +INSTALLER_MOUNT_DIR=/mnt +BSDINSTALL_DIR=/usr/libexec/bsdinstall +TARGET_FILES="opnsense-zfs zfsboot" + +echo FreeBSD+OPNsense bsdinstall modifier +echo +echo "WARNING: This script is supposed to be executed on any FreeBSD-compatible system." +echo "Please connect OPNsense Installer USB stick and verify it's root partition device name to be: " ${INSTALLER_ROOT_PARTITION} +echo "Please type 'yes' to continue." +echo + +read ANSWER_WARN +if [ $ANSWER_WARN != yes ]; +then + exit 1; +fi + +# patch_esp_command $new_esp_label $file_prefix $file_to_patch +patch_esp_command() +{ + local new_esp_label="$1" file_prefix="$2" file_to_patch="$3" + echo + echo ${new_esp_label} "->" ${file_prefix}/${file_to_patch} + + awk -v sq="'" -v dq='"' -v ROOT_LABEL=${new_esp_label} '/^NEWFS_ESP=/ { print "NEWFS_ESP=" sq "newfs_msdos -L " ROOT_LABEL " " dq "%s" dq sq; next; }; { print; }' ${file_prefix}/${file_to_patch} > /tmp/${file_to_patch} + echo " -- DIFF:" + diff /tmp/${file_to_patch} ${INSTALLER_MOUNT_DIR}${BSDINSTALL_DIR}/${file_to_patch} + echo "--- END OF DIFF" + + echo Do you want to apply? Type 'yes'. + echo + + read ANSWER_DIFF + if [ $ANSWER_DIFF != yes ]; + then + return + fi + mv /tmp/${file_to_patch} ${file_prefix}/${file_to_patch} + chmod +x ${file_prefix}/${file_to_patch} +} + +umount ${INSTALLER_MOUNT_DIR} +mount -w /dev/da0p4 ${INSTALLER_MOUNT_DIR} +ls -l ${INSTALLER_MOUNT_DIR}${BSDINSTALL_DIR}/*zfs* + +for installer_file in ${TARGET_FILES}; do + patch_esp_command ${LABEL} ${INSTALLER_MOUNT_DIR}${BSDINSTALL_DIR} ${installer_file} +done + +umount ${INSTALLER_MOUNT_DIR} +echo "It is done." From 6d8895a787481848163ead42530290b2f3c54972 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Wed, 11 Jun 2025 15:37:40 +0200 Subject: [PATCH 415/416] WiP Signed-off-by: Mateusz Maciejewski --- dasharo-compatibility/os-bsd-anysense.robot | 59 +++++++-------------- os-config/502-credentials.py | 10 ++++ os-config/environment-test-ids.py | 5 ++ 3 files changed, 33 insertions(+), 41 deletions(-) create mode 100644 os-config/502-credentials.py diff --git a/dasharo-compatibility/os-bsd-anysense.robot b/dasharo-compatibility/os-bsd-anysense.robot index 20e4a9e5f0..fc40d0ba6f 100644 --- a/dasharo-compatibility/os-bsd-anysense.robot +++ b/dasharo-compatibility/os-bsd-anysense.robot @@ -12,8 +12,8 @@ Resource ../keys.robot # Log Out And Close Connection - elementary teardown keyword for all tests. Suite Setup Run Keywords ... Prepare Test Suite -... AND -... Restore Secure Boot Defaults +#... AND +#... Restore Secure Boot Defaults Suite Teardown Run Keywords ... Run Keyword If ${SECURE_BOOT_SUPPORT} and ${TESTS_IN_FIRMWARE_SUPPORT} Set Secure Boot State To Disabled ... AND @@ -27,24 +27,29 @@ ${PFSENSE_PROMPT}= [2.7.2-RELEASE][root@pfSense.home.arpa]/root *** Test Cases *** -BPS001.001 Boot pfSense LTS CE (serial output) from disk after cold-boot +PFS001.502 Boot pfSense LTS CE (serial output) from disk after cold-boot [Documentation] Boot pfSense LTS CE (serial output) from disk after cold-boot Power On -BPS002.001 Boot pfSense LTS CE (serial output) from disk after warm-boot +PFS002.502 Boot pfSense LTS CE (serial output) from disk after warm-boot Power On -BPS003.001 Boot pfSense LTS CE (serial output) from disk after reboot +PFS003.502 Boot pfSense LTS CE (serial output) from disk after reboot Power On -OPN001.001 OPNsense stable (serial output) installation on Hard Disk +PFS004.502 Boot pfSense LTS CE (serial output) Installer into rescue shell + Power On + Boot PfSense Installer + Enter pfSense Rescue Shell + +OPN001.503 OPNsense stable (serial output) installation on Hard Disk Power On Boot OPNsense Installer -OPN001.002 Boot OPNsense stable (serial output) from Hard Disk +OPN001.503 Boot OPNsense stable (serial output) from Hard Disk Power On -PFS001.001 pfSense stable (serial output) installation on Hard Disk +PFS001.502 pfSense stable (serial output) installation on Hard Disk Power On Boot PfSense Installer # Enter pfSense Rescue Shell @@ -86,7 +91,7 @@ Enter PfSense Rescue Shell ${menu}= Read From Terminal Until OK # end would be 5 but it's 3 due to two empty lines ${construction}= Parse Menu Snapshot Into Construction ${menu} 5 3 - Enter Submenu From Snapshot ${construction} Rescue Shell${SPACE_*_8}Launch a shell for rescue operations + Enter Submenu From Snapshot ${construction} Rescue Shell${SPACE * 8}Launch a shell for rescue operations Write Into Terminal root Write Into Terminal root @@ -99,38 +104,6 @@ Enter OPN Sense Rescue Shell: Read From Terminal Until Enter an option: Write Into Terminal 8 -Install PsSense On Sata Drive - ${welcome_menu}= Read From Terminal Until OK - # end would be 5 but it's 3 due to two empty lines - ${welcome_construction}= Parse Menu Snapshot Into Construction ${welcome_menu} 5 3 - Enter Submenu From Snapshot ${welcome_construction} Install${SPACE_*_13}Install pfSense - ${partition_construction}= Get Submenu Construction OK 5 3 - Enter Submenu From Snapshot ${partition_construction} Auto (ZFS)${SPACE_*_2}Guided Root-on-ZFS - Read From Terminal Until ZFS Configuration - ${pool_suspect}= Read From Terminal - ${pool_taken}= Run Keyword And Return Status - ... Should Contain - ... ${pool_suspect} - ... pfSense is already taken, please enter a name for the ZFS pool - ${my_tail2}= Read From Terminal - Log To Console "my tail2" - Log To Console ${my_tail2} - IF ${pool_taken} == ${TRUE} - Press Enter - ${pool_suspect}= Read From Terminal Until qqqqqj - END - Log To Console "pool suspect" - Log To Console ${pool_suspect} - ${configure_construction}= Parse Menu Snapshot Into Construction ${pool_suspect} 5 1 - # Enter Submenu From Snapshot ${configure_construction} T Pool Type/Disks:${SPACE * 3}stripe: 0 disks - Press Key N Times And Enter 1 ${ARROW_DOWN} - ${my_tail3}= Read From Terminal - Log To Console "my tail3" - Log To Console ${my_tail3} - ${select_virtual}= Get Submenu Construction OK 5 3 - # Read From Terminal Until Select Virtual Device type - # ${select_virtual}= Read From Terminal Until Cancel - Boot Pf Sense [Documentation] PFBOOT -> /efi/freebsd/loader.efi Enter Boot From File @@ -141,3 +114,7 @@ Boot Pf Sense Read From Terminal Until Enter an option: Write Into Terminal 8 Read From Terminal Until ${PFSENSE_PROMPT} + +Boot OPN Sense + Enter Boot From File + diff --git a/os-config/502-credentials.py b/os-config/502-credentials.py new file mode 100644 index 0000000000..bc2e862245 --- /dev/null +++ b/os-config/502-credentials.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: 2025 3mdeb +# +# SPDX-License-Identifier: Apache-2.0 + +DEVICE_OS_USERNAME = "pfsense" +DEVICE_OS_PASSWORD = "pfsense" +DEVICE_OS_HOSTNAME = pfSense.home.arpa + +DEVICE_OS_USER_PROMPT = f"{DEVICE_OS_USERNAME}@{DEVICE_OS_HOSTNAME}:~$" +DEVICE_OS_ROOT_PROMPT = f"root@{DEVICE_OS_HOSTNAME}:/home/{DEVICE_OS_USERNAME}#" diff --git a/os-config/environment-test-ids.py b/os-config/environment-test-ids.py index a41ec5d101..85b9af8fc7 100644 --- a/os-config/environment-test-ids.py +++ b/os-config/environment-test-ids.py @@ -17,6 +17,11 @@ # 3xx - Windows ENV_ID_WINDOWS = "301" +# 5xx - BSD +ENV_ID_FREEBSD = "501" +ENV_ID_PFSENSE = "502" +ENV_ID_OPNSENSE = "503" + ENV_ID_OS_BOOTMENU_NAMES = { ENV_ID_UBUNTU: "ubuntu", ENV_ID_FEDORA: "fedora", From a65b5889b590ecfec7016361435b7a1006714e01 Mon Sep 17 00:00:00 2001 From: Mateusz Maciejewski Date: Fri, 13 Jun 2025 16:53:25 +0200 Subject: [PATCH 416/416] WiP Signed-off-by: Mateusz Maciejewski --- dasharo-compatibility/os-bsd-anysense.robot | 91 ++++++++++++++------- keys.robot | 54 ++++++------ lib/bios/menus.robot | 9 +- 3 files changed, 97 insertions(+), 57 deletions(-) diff --git a/dasharo-compatibility/os-bsd-anysense.robot b/dasharo-compatibility/os-bsd-anysense.robot index fc40d0ba6f..935f9971e5 100644 --- a/dasharo-compatibility/os-bsd-anysense.robot +++ b/dasharo-compatibility/os-bsd-anysense.robot @@ -12,11 +12,7 @@ Resource ../keys.robot # Log Out And Close Connection - elementary teardown keyword for all tests. Suite Setup Run Keywords ... Prepare Test Suite -#... AND -#... Restore Secure Boot Defaults Suite Teardown Run Keywords -... Run Keyword If ${SECURE_BOOT_SUPPORT} and ${TESTS_IN_FIRMWARE_SUPPORT} Set Secure Boot State To Disabled -... AND ... Log Out And Close Connection Test Setup Run Keyword ... Restore Initial DUT Connection Method @@ -30,40 +26,67 @@ ${PFSENSE_PROMPT}= [2.7.2-RELEASE][root@pfSense.home.arpa]/root PFS001.502 Boot pfSense LTS CE (serial output) from disk after cold-boot [Documentation] Boot pfSense LTS CE (serial output) from disk after cold-boot Power On + # TBD + +OPN001.503 Boot OPNsense (serial output) from disk after cold-boot + [Documentation] Boot OPNsense (serial output) from disk after cold-boot + Power On + Boot OPN + # TBD PFS002.502 Boot pfSense LTS CE (serial output) from disk after warm-boot + [Documentation] Boot pfSense LTS CE (serial output) from disk after warm-boot + ... does not use rtcwake!!! + Power On + Boot PfSense + Enter Pf Sense Shell + Write Into Terminal poweroff Power On + Boot PfSense PFS003.502 Boot pfSense LTS CE (serial output) from disk after reboot + [Documentation] Boot pfSense LTS CE (serial output) from disk after reboot Power On + Boot PfSense + Enter Pf Sense Shell + Write Into Terminal reboot + Boot PfSense PFS004.502 Boot pfSense LTS CE (serial output) Installer into rescue shell Power On Boot PfSense Installer - Enter pfSense Rescue Shell - -OPN001.503 OPNsense stable (serial output) installation on Hard Disk - Power On - Boot OPNsense Installer + Enter PfSense Rescue Shell + ${output}= Execute Command In Terminal ls + Should Contain ${output} COPYRIGHT + Should Contain ${output} .profile -OPN001.503 Boot OPNsense stable (serial output) from Hard Disk +PFS005.502 Preseed pfSense Installer Power On - -PFS001.502 pfSense stable (serial output) installation on Hard Disk + Boot PfSense Installer + Enter PfSense Rescue Shell + Execute Command In Terminal + ... awk -v sq="'" -v dq='"' -v ROOT_LABEL=PFBOOT '/^NEWFS_ESP=/ { print "NEWFS_ESP=" sq "newfs_msdos -L " ROOT_LABEL " " dq "%s" dq sq; next; }; { print; }' /usr/libexec/bsdinstall/zfsboot > /tmp/zfsboot + Execute Command In Terminal mount -u / + Execute Command In Terminal mv /tmp/zfsboot /usr/libexec/bsdinstall/zfsboot + Execute Command In Terminal chmod +x /usr/libexec/bsdinstall/zfsboot + Execute Command In Terminal sync + ${output}= Execute Command In Terminal grep PFBOOT /usr/libexec/bsdinstall/zfsboot + Should Contain ${output} PFBOOT + +# There's no OPN005.503, preseed requires another FreeBSD system + +PFS006.502 Boot pfSense Installer Power On Boot PfSense Installer -# Enter pfSense Rescue Shell - Install PsSense On Sata Drive + Execute Manual Step Click OK to PASS, after test ends, connect to DUT via serial and continue. -PFS001.002 Boot pfSense stable (serial output) from Hard Disk +OPN006.503 Boot OPNsense Installer Power On - Boot Pf Sense + Boot OPNsense Installer + Execute Manual Step Click OK to PASS, after test ends, connect to DUT via serial and continue. *** Keywords *** -# Relabel pfSense ESP -# - Boot PfSense Installer [Documentation] Run /EFI/BOOT/bootx64.efi file from PFEFI-labeled partition; ... Select console type vt100 and accept the license @@ -87,13 +110,20 @@ Boot OPNsense Installer Read From Terminal Until FreeBSD/amd64 (OPNsense.localdomain) (ttyu0) Read From Terminal Until login: +Enter PfSense Shell + Write Into Terminal 8 + Read From Terminal Until ${PFSENSE_PROMPT} + Set Prompt For Terminal ${PFSENSE_PROMPT} + Enter PfSense Rescue Shell - ${menu}= Read From Terminal Until OK + ${menu}= Read From Terminal Until # end would be 5 but it's 3 due to two empty lines ${construction}= Parse Menu Snapshot Into Construction ${menu} 5 3 - Enter Submenu From Snapshot ${construction} Rescue Shell${SPACE * 8}Launch a shell for rescue operations - Write Into Terminal root - Write Into Terminal root + Enter Submenu From Snapshot + ... ${construction} + ... Rescue Shell${SPACE_*_8}Launch a shell for rescue operations + ... "APP" + Set Prompt For Terminal \# Enter OPN Sense Rescue Shell: Read From Terminal FreeBSD/amd64 (OPNsense.localdomain) (ttyu0) @@ -104,17 +134,18 @@ Enter OPN Sense Rescue Shell: Read From Terminal Until Enter an option: Write Into Terminal 8 -Boot Pf Sense - [Documentation] PFBOOT -> /efi/freebsd/loader.efi +Boot PfSense + [Documentation] PFBOOT -> /efi/boot/bootx64.efi Enter Boot From File Enter Volume In File Explorer PFBOOT Execute File In File Explorer efi - Execute File In File Explorer freebsd - Execute File In File Explorer loader.efi + Execute File In File Explorer boot + Execute File In File Explorer bootx64.efi Read From Terminal Until Enter an option: - Write Into Terminal 8 - Read From Terminal Until ${PFSENSE_PROMPT} Boot OPN Sense Enter Boot From File - + Enter Volume In File Explorer OPNBOOT + Execute File In File Explorer efi + Execute File In File Explorer boot + Execute File In File Explorer bootx64.efi diff --git a/keys.robot b/keys.robot index 39a50f7d44..abc652aa76 100644 --- a/keys.robot +++ b/keys.robot @@ -1,26 +1,30 @@ *** Variables *** -${ARROW_UP}= \x1b\x5b\x41 -${ARROW_DOWN}= \x1b\x5b\x42 -${ARROW_RIGHT}= \x1b\x5b\x43 -${ARROW_LEFT}= \x1b\x5b\x44 -${F1}= \x1b\x4f\x50 -${F2}= \x1b\x4f\x51 -${F3}= \x1b\x4f\x52 -${F4}= \x1b\x4f\x53 -${F5}= \x1b\x5b\x31\x35\x7e -${F6}= \x1b\x5b\x31\x37\x7e -${F7}= \x1b\x5b\x31\x38\x7e -${F8}= \x1b\x5b\x31\x39\x7e -${F9}= \x1b\x5b\x32\x30\x7e -${F10}= \x1b\x5b\x32\x31\x7e -${F11}= \x1b\x5b\x32\x33\x7e -${F12}= \x1b\x5b\x32\x34\x7e -${CTRL_B}= \x02 -${CTRL_C}= \x03 -${CTRL_D}= \x04 -${ESC}= \x1b -${ENTER}= \x0d -${BACKSPACE}= \x08 -${KEY_SPACE}= \x20 -${DELETE}= \x1b\x5b\x33\x7e -${KEY_PLUS}= \x2b +${ARROW_UP}= \x1b\x5b\x41 +${ARROW_DOWN}= \x1b\x5b\x42 +${ARROW_RIGHT}= \x1b\x5b\x43 +${ARROW_LEFT}= \x1b\x5b\x44 +${ARROW_UP_APP}= \x1b\x4f\x41 +${ARROW_DOWN_APP}= \x1b\x4f\x42 +${ARROW_RIGHT_APP}= \x1b\x4f\x43 +${ARROW_LEFT_APP}= \x1b\x4f\x44 +${F1}= \x1b\x4f\x50 +${F2}= \x1b\x4f\x51 +${F3}= \x1b\x4f\x52 +${F4}= \x1b\x4f\x53 +${F5}= \x1b\x5b\x31\x35\x7e +${F6}= \x1b\x5b\x31\x37\x7e +${F7}= \x1b\x5b\x31\x38\x7e +${F8}= \x1b\x5b\x31\x39\x7e +${F9}= \x1b\x5b\x32\x30\x7e +${F10}= \x1b\x5b\x32\x31\x7e +${F11}= \x1b\x5b\x32\x33\x7e +${F12}= \x1b\x5b\x32\x34\x7e +${CTRL_B}= \x02 +${CTRL_C}= \x03 +${CTRL_D}= \x04 +${ESC}= \x1b +${ENTER}= \x0d +${BACKSPACE}= \x08 +${KEY_SPACE}= \x20 +${DELETE}= \x1b\x5b\x33\x7e +${KEY_PLUS}= \x2b diff --git a/lib/bios/menus.robot b/lib/bios/menus.robot index 8c5f9f385a..8a7dbdb71b 100644 --- a/lib/bios/menus.robot +++ b/lib/bios/menus.robot @@ -423,17 +423,22 @@ Enter Submenu From Snapshot ... === Arguments === ... - ``${menu}``: ``string`` - the submenu construction or snapshot ... - ``${option}``: ``string`` - the name of the submenu to enter + ... - ``${cursor_key_mode}``: ``string`` - VT100 cursor key mode, APP for BSD ... ... === Return Value === ... None ... ... === Effects === ... - A setup submenu is entered - [Arguments] ${menu} ${option} + [Arguments] ${menu} ${option} ${cursor_key_mode}="ST" ${index}= Get Index Of Matching Option In Menu ${menu} ${option} Should Not Be Equal As Integers ${index} -1 msg=Option ${option} not found in menu - Press Key N Times And Enter ${index} ${ARROW_DOWN} + IF ${cursor_key_mode} == "APP" + Press Key N Times And Enter ${index} ${ARROW_DOWN_APP} + ELSE + Press Key N Times And Enter ${index} ${ARROW_DOWN} + END Enter Submenu From Snapshot And Return Construction [Documentation] Enter given Setup Menu Tianocore option after entering