From 2974243fbb7d05294d085f2dfa7505bf43cfb87a Mon Sep 17 00:00:00 2001 From: Alex Tercete Date: Tue, 19 Nov 2024 09:22:46 +0000 Subject: [PATCH 1/3] feat: register QEMU toolchain for `arm64` Followed the Debian guide[1]. [1]: https://wiki.debian.org/Arm64Qemu --- MODULE.bazel | 2 ++ MODULE.bazel.lock | 12 ++++---- debian/amd64/qemu-system-arm/srcs.bzl | 2 ++ debian/arm64/qemu-system-arm/srcs.bzl | 2 ++ e2e/MODULE.bazel.lock | 12 ++++---- .../toolchain/config/qemu/arm64/BUILD.bazel | 24 +++++++++++++++ .../toolchain/config/qemu/arm64/config.yaml | 30 +++++++++++++++++++ qemu/efi/BUILD.bazel | 20 +++++++++++++ 8 files changed, 94 insertions(+), 10 deletions(-) create mode 100644 labgrid/toolchain/config/qemu/arm64/BUILD.bazel create mode 100644 labgrid/toolchain/config/qemu/arm64/config.yaml create mode 100644 qemu/efi/BUILD.bazel diff --git a/MODULE.bazel b/MODULE.bazel index f83c1cdc..edad5adc 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -11,6 +11,7 @@ bazel_dep(name = "toolchain_utils", version = "1.0.0-beta.15") bazel_dep(name = "rules_python", version = "0.33.2") bazel_dep(name = "ape", version = "1.0.0-beta.12") bazel_dep(name = "download_utils", version = "1.0.0-beta.2") +bazel_dep(name = "rules_coreutils", version = "1.0.0-beta.7") bazel_dep(name = "rules_tar", version = "1.0.0-beta.3") bazel_dep(name = "rules_zstd", version = "1.0.0-beta.3") bazel_dep(name = "platforms", version = "0.0.10") @@ -94,6 +95,7 @@ download_archive = use_repo_rule("@download_utils//download/archive:defs.bzl", " ("all", "libaudit-common", "3.0.9-1", "a", "audit", "sha256-F9A0HKbOYEzlnClngKwsKiQUGnaYI8UGaa+ULAJeZZE="), ("all", "libdrm-common", "2.4.114-1", "libd", "libdrm", "sha256-MvlmQTiziyJDg8aYZFfVrS7I79VZsaDOd0lAX3pFGq0="), ("all", "libsemanage-common", "3.4-1", "libs", "libsemanage", "sha256-g1+AbCGuJeOQU70wVwUWQDQbDPCOHbl0b9guNw2C+jA="), + ("all", "qemu-efi-aarch64", "2022.11-6+deb12u1", "e", "edk2", "sha256-m3GACq0ux4KK6jFU3c7u0p0CdaEkDu555OcXQN3rDxc="), ("all", "qemu-system-data", "7.2+dfsg-7+deb12u7", "q", "qemu", "sha256-SYbtlNWvP/Gw6Cm0Qqg/O8lErczThTXdTa/xxCNbiSM="), ("all", "readline-common", "8.2-1.3", "r", "readline", "sha256-aTF1I/5WQpqjYVRUFq0znROMFQDlpgSFaoDdkHS041w="), ("all", "seabios", "1.16.2-1", "s", "seabios", "sha256-COWz92E3nxemBRcxyvoD6XaGBJ4swbi9zMWpEGRuLY4="), diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 19b11a0a..54801127 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -6,7 +6,8 @@ "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/source.json": "7e3a9adf473e9af076ae485ed649d5641ad50ec5c11718103f34de03170d94ad", "https://bcr.bazel.build/modules/ape/1.0.0-beta.12/MODULE.bazel": "e75be27b37a2f7cf83dbeb497aeac93f8da9aa55fc2b35a9a1cb46db9b7f8885", - "https://bcr.bazel.build/modules/ape/1.0.0-beta.12/source.json": "4b9e00b30d41ff209d7deddba1fbb4538cdfc7a54b4e07e607134ccc147e6a29", + "https://bcr.bazel.build/modules/ape/1.0.0-beta.14/MODULE.bazel": "a57aea83a0c957cbe3caf0dbec6eb85c0a9eb9dfa99808a197a8ae11a50bc565", + "https://bcr.bazel.build/modules/ape/1.0.0-beta.14/source.json": "e1f55124e33498466e3ff43a15f9272e3204d7816ee81510b67a0fdc6bcb2574", "https://bcr.bazel.build/modules/ape/1.0.0-beta.6/MODULE.bazel": "247bcdbc358206c37ce8bf1c850115002c6560570d96f9ac8a79dd810b18ea85", "https://bcr.bazel.build/modules/ape/1.0.0-beta.7/MODULE.bazel": "cb8163d01ede65cb41bf1449d6e5091e6da8d927cf700103d9a0c48517f3c1bf", "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef", @@ -88,7 +89,8 @@ "https://bcr.bazel.build/modules/rules_cc/0.0.9/source.json": "1f1ba6fea244b616de4a554a0f4983c91a9301640c8fe0dd1d410254115c8430", "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.1/MODULE.bazel": "159a59bd049c72ade6f0b617cc06c78ff72ef83dd8e331a038739561e4416e0e", "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.6/MODULE.bazel": "d767c0dce8cca10f507ff4df59b6be1023b155e9aa92dc075f564a2ed3713615", - "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.6/source.json": "5970522e4551e83d36886874b2ff7fc6718884670b6961bcf298aaaa608251c5", + "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.7/MODULE.bazel": "7ae2696243d059738d8fdf420ae8ebbe29ff6dccbb4a0467d613cd41f57fd02e", + "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.7/source.json": "c6a9bbdbb6d9326ca0023b1aff251f4b6afe0d37f44708011ce8be55a8da076d", "https://bcr.bazel.build/modules/rules_go/0.33.0/MODULE.bazel": "a2b11b64cd24bf94f57454f53288a5dacfe6cb86453eee7761b7637728c1910c", "https://bcr.bazel.build/modules/rules_go/0.38.1/MODULE.bazel": "fb8e73dd3b6fc4ff9d260ceacd830114891d49904f5bda1c16bc147bcc254f71", "https://bcr.bazel.build/modules/rules_go/0.39.1/MODULE.bazel": "d34fb2a249403a5f4339c754f1e63dc9e5ad70b47c5e97faee1441fc6636cd61", @@ -142,6 +144,8 @@ "https://bcr.bazel.build/modules/stardoc/0.5.4/source.json": "a961f58a71e735aa9dcb2d79b288e06b0a2d860ba730302c8f11be411b76631e", "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.12/MODULE.bazel": "947cf935fa609c91b05bd8c8c1be38b9e10b7bc8949cf3092ee416ed30995078", "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.15/MODULE.bazel": "not found", + "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.17/MODULE.bazel": "cde98816e2c0ce65b29b1f3a43412ef0d9d6d82fe285f98fed111623f82d7f12", + "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.17/source.json": "92ce5f97add93cd1b534151a38cef7cede92462439ebe559bba1681bdf4241f9", "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.9/MODULE.bazel": "9a8edfa6905229b899225489cbd6db36f073d9455c77238bd6ae6c52da5256d8", "https://bcr.bazel.build/modules/toolchains_protoc/0.2.1/MODULE.bazel": "2f08433ff5e659069b3a1abfee2377d68f510f2de1da50678ed992c455b4ff91", "https://bcr.bazel.build/modules/toolchains_protoc/0.2.1/source.json": "4ee6b007b62e1b9e493b00ccc60e61a258633f304b74813b6e7f7234927be94c", @@ -155,9 +159,7 @@ "https://bcr.bazel.build/modules/zstd/1.5.6/source.json": "02010c3333fc89b44fe861db049968decb6e688411f7f9d4f6791d74f9adfb51", "https://gitlab.arm.com/bazel/rules_tar/-/releases/v1.0.0-beta.3/downloads/modules/toolchain_utils/1.0.0-beta.15/MODULE.bazel": "not found", "https://gitlab.arm.com/bazel/rules_zstd/-/releases/v1.0.0-beta.3/downloads/modules/toolchain_utils/1.0.0-beta.15/MODULE.bazel": "not found", - "https://gitlab.arm.com/bazel/toolchain_utils/-/releases/v1.0.0-beta.15/downloads/bazel_registry.json": "not found", - "https://gitlab.arm.com/bazel/toolchain_utils/-/releases/v1.0.0-beta.15/downloads/modules/toolchain_utils/1.0.0-beta.15/MODULE.bazel": "21da9cdc3c99f8f254ebea589ff9af1d526416cabadd65dc8b64bf74faa1eb8a", - "https://gitlab.arm.com/bazel/toolchain_utils/-/releases/v1.0.0-beta.15/downloads/modules/toolchain_utils/1.0.0-beta.15/source.json": "e269889ba8445670cd9aba3751a6ba246e1d73f16a7ec156235a32b2a516fdd6" + "https://gitlab.arm.com/bazel/toolchain_utils/-/releases/v1.0.0-beta.15/downloads/modules/toolchain_utils/1.0.0-beta.15/MODULE.bazel": "21da9cdc3c99f8f254ebea589ff9af1d526416cabadd65dc8b64bf74faa1eb8a" }, "selectedYankedVersions": {}, "moduleExtensions": { diff --git a/debian/amd64/qemu-system-arm/srcs.bzl b/debian/amd64/qemu-system-arm/srcs.bzl index c5abc160..d2b61c95 100644 --- a/debian/amd64/qemu-system-arm/srcs.bzl +++ b/debian/amd64/qemu-system-arm/srcs.bzl @@ -5,6 +5,7 @@ SRCS = ( "//debian/amd64/tar:data.tar.xz", "@all-adduser//:data.tar.xz", "@all-debconf//:data.tar.xz", + "@all-ipxe-qemu//:data.tar.xz", "@all-iso-codes//:data.tar.xz", "@all-libasound2-data//:data.tar.xz", "@all-libaudit-common//:data.tar.xz", @@ -12,6 +13,7 @@ SRCS = ( "@all-libsemanage-common//:data.tar.xz", "@all-qemu-system-data//:data.tar.xz", "@all-readline-common//:data.tar.xz", + "@all-seabios//:data.tar.xz", "@amd64-cdebconf//:data.tar.xz", "@amd64-dpkg//:data.tar.xz", "@amd64-gcc-12-base//:data.tar.xz", diff --git a/debian/arm64/qemu-system-arm/srcs.bzl b/debian/arm64/qemu-system-arm/srcs.bzl index 02eaabdb..1de4f4f1 100644 --- a/debian/arm64/qemu-system-arm/srcs.bzl +++ b/debian/arm64/qemu-system-arm/srcs.bzl @@ -5,6 +5,7 @@ SRCS = ( "//debian/arm64/tar:data.tar.xz", "@all-adduser//:data.tar.xz", "@all-debconf//:data.tar.xz", + "@all-ipxe-qemu//:data.tar.xz", "@all-iso-codes//:data.tar.xz", "@all-libasound2-data//:data.tar.xz", "@all-libaudit-common//:data.tar.xz", @@ -12,6 +13,7 @@ SRCS = ( "@all-libsemanage-common//:data.tar.xz", "@all-qemu-system-data//:data.tar.xz", "@all-readline-common//:data.tar.xz", + "@all-seabios//:data.tar.xz", "@arm64-cdebconf//:data.tar.xz", "@arm64-dpkg//:data.tar.xz", "@arm64-gcc-12-base//:data.tar.xz", diff --git a/e2e/MODULE.bazel.lock b/e2e/MODULE.bazel.lock index a7962a36..572cd67b 100644 --- a/e2e/MODULE.bazel.lock +++ b/e2e/MODULE.bazel.lock @@ -6,7 +6,8 @@ "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/source.json": "7e3a9adf473e9af076ae485ed649d5641ad50ec5c11718103f34de03170d94ad", "https://bcr.bazel.build/modules/ape/1.0.0-beta.12/MODULE.bazel": "e75be27b37a2f7cf83dbeb497aeac93f8da9aa55fc2b35a9a1cb46db9b7f8885", - "https://bcr.bazel.build/modules/ape/1.0.0-beta.12/source.json": "4b9e00b30d41ff209d7deddba1fbb4538cdfc7a54b4e07e607134ccc147e6a29", + "https://bcr.bazel.build/modules/ape/1.0.0-beta.14/MODULE.bazel": "a57aea83a0c957cbe3caf0dbec6eb85c0a9eb9dfa99808a197a8ae11a50bc565", + "https://bcr.bazel.build/modules/ape/1.0.0-beta.14/source.json": "e1f55124e33498466e3ff43a15f9272e3204d7816ee81510b67a0fdc6bcb2574", "https://bcr.bazel.build/modules/ape/1.0.0-beta.6/MODULE.bazel": "247bcdbc358206c37ce8bf1c850115002c6560570d96f9ac8a79dd810b18ea85", "https://bcr.bazel.build/modules/ape/1.0.0-beta.7/MODULE.bazel": "cb8163d01ede65cb41bf1449d6e5091e6da8d927cf700103d9a0c48517f3c1bf", "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef", @@ -67,7 +68,8 @@ "https://bcr.bazel.build/modules/rules_cc/0.0.9/source.json": "1f1ba6fea244b616de4a554a0f4983c91a9301640c8fe0dd1d410254115c8430", "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.1/MODULE.bazel": "159a59bd049c72ade6f0b617cc06c78ff72ef83dd8e331a038739561e4416e0e", "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.6/MODULE.bazel": "d767c0dce8cca10f507ff4df59b6be1023b155e9aa92dc075f564a2ed3713615", - "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.6/source.json": "5970522e4551e83d36886874b2ff7fc6718884670b6961bcf298aaaa608251c5", + "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.7/MODULE.bazel": "7ae2696243d059738d8fdf420ae8ebbe29ff6dccbb4a0467d613cd41f57fd02e", + "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.7/source.json": "c6a9bbdbb6d9326ca0023b1aff251f4b6afe0d37f44708011ce8be55a8da076d", "https://bcr.bazel.build/modules/rules_diff/1.0.0-beta.3/MODULE.bazel": "4bcae1c5e3c7fa1169f9940f548f7b8b3316944b4367771b168f925b7a9ee74e", "https://bcr.bazel.build/modules/rules_diff/1.0.0-beta.3/source.json": "b5db3fcd469061f2051188da97345162f294fc59e7fdf477beb306dbe950566a", "https://bcr.bazel.build/modules/rules_go/0.41.0/MODULE.bazel": "55861d8e8bb0e62cbd2896f60ff303f62ffcb0eddb74ecb0e5c0cbe36fc292c8", @@ -109,6 +111,8 @@ "https://bcr.bazel.build/modules/stardoc/0.5.4/source.json": "a961f58a71e735aa9dcb2d79b288e06b0a2d860ba730302c8f11be411b76631e", "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.12/MODULE.bazel": "947cf935fa609c91b05bd8c8c1be38b9e10b7bc8949cf3092ee416ed30995078", "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.15/MODULE.bazel": "not found", + "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.17/MODULE.bazel": "cde98816e2c0ce65b29b1f3a43412ef0d9d6d82fe285f98fed111623f82d7f12", + "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.17/source.json": "92ce5f97add93cd1b534151a38cef7cede92462439ebe559bba1681bdf4241f9", "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.9/MODULE.bazel": "9a8edfa6905229b899225489cbd6db36f073d9455c77238bd6ae6c52da5256d8", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/source.json": "f1ef7d3f9e0e26d4b23d1c39b5f5de71f584dd7d1b4ef83d9bbba6ec7a6a6459", @@ -127,9 +131,7 @@ "https://gitlab.arm.com/bazel/rules_zstd/-/releases/v1.0.0-beta.3/downloads/modules/rules_zstd/1.0.0-beta.3/MODULE.bazel": "a1386815d57563c8288e12bff7195e59f898f82aa39251291f088b4696ce265c", "https://gitlab.arm.com/bazel/rules_zstd/-/releases/v1.0.0-beta.3/downloads/modules/rules_zstd/1.0.0-beta.3/source.json": "03c5addba144297bf0905f6a4a807f1c8f829cdb7a6a355e1822a5711f70584a", "https://gitlab.arm.com/bazel/rules_zstd/-/releases/v1.0.0-beta.3/downloads/modules/toolchain_utils/1.0.0-beta.15/MODULE.bazel": "not found", - "https://gitlab.arm.com/bazel/toolchain_utils/-/releases/v1.0.0-beta.15/downloads/bazel_registry.json": "not found", - "https://gitlab.arm.com/bazel/toolchain_utils/-/releases/v1.0.0-beta.15/downloads/modules/toolchain_utils/1.0.0-beta.15/MODULE.bazel": "21da9cdc3c99f8f254ebea589ff9af1d526416cabadd65dc8b64bf74faa1eb8a", - "https://gitlab.arm.com/bazel/toolchain_utils/-/releases/v1.0.0-beta.15/downloads/modules/toolchain_utils/1.0.0-beta.15/source.json": "e269889ba8445670cd9aba3751a6ba246e1d73f16a7ec156235a32b2a516fdd6" + "https://gitlab.arm.com/bazel/toolchain_utils/-/releases/v1.0.0-beta.15/downloads/modules/toolchain_utils/1.0.0-beta.15/MODULE.bazel": "21da9cdc3c99f8f254ebea589ff9af1d526416cabadd65dc8b64bf74faa1eb8a" }, "selectedYankedVersions": {}, "moduleExtensions": { diff --git a/labgrid/toolchain/config/qemu/arm64/BUILD.bazel b/labgrid/toolchain/config/qemu/arm64/BUILD.bazel new file mode 100644 index 00000000..02d67746 --- /dev/null +++ b/labgrid/toolchain/config/qemu/arm64/BUILD.bazel @@ -0,0 +1,24 @@ +load("//labgrid/config/toolchain:defs.bzl", "labgrid_config_toolchain") + +labgrid_config_toolchain( + name = "arm64", + src = "config.yaml", + data = [ + "//qemu/debian/image", + "//qemu/efi", + "//qemu/seed/image", + ], + env = { + "LG_QEMU_SYSTEM_BIN": "$(QEMU_SYSTEM)", + "LG_QEMU_QCOW2_IMAGE": "$(location //qemu/debian/image)", + "LG_QEMU_VIRT_IMAGE": "$(location //qemu/seed/image)", + "LG_QEMU_EFI": "$(location //qemu/efi)", + }, + target_compatible_with = [ + "//constraint/emulator:qemu", + "@toolchain_utils//toolchain/constraint/os:linux", + "@toolchain_utils//toolchain/constraint/cpu:arm64", + ], + toolchains = ["//labgrid/toolchain/qemu-system:resolved"], + deps = ["//bazel/labgrid/strategy"], +) diff --git a/labgrid/toolchain/config/qemu/arm64/config.yaml b/labgrid/toolchain/config/qemu/arm64/config.yaml new file mode 100644 index 00000000..1bfe6b2d --- /dev/null +++ b/labgrid/toolchain/config/qemu/arm64/config.yaml @@ -0,0 +1,30 @@ +targets: + main: + resources: + NetworkService: + address: "localhost" + port: 2223 + username: "labgrid-user" + password: "labgrid" + drivers: + QEMUDriver: + qemu_bin: "qemu" + machine: "virt" + cpu: "max" + memory: "2G" + bios: "efi" + nic: "user,model=e1000,hostfwd=tcp::2223-:22" + extra_args: !template "-snapshot -drive file=$LG_QEMU_QCOW2_IMAGE,format=qcow2 -cdrom $LG_QEMU_VIRT_IMAGE" + ShellDriver: + prompt: " login: " + login_prompt: " login: " + username: "labgrid-user" + login_timeout: 600 + SSHDriver: {} + QEMUStrategy: {} +tools: + qemu: !template "$LG_QEMU_SYSTEM_BIN" +images: + efi: !template "$LG_QEMU_EFI" +imports: + - bazel.labgrid.strategy diff --git a/qemu/efi/BUILD.bazel b/qemu/efi/BUILD.bazel new file mode 100644 index 00000000..f3d8d560 --- /dev/null +++ b/qemu/efi/BUILD.bazel @@ -0,0 +1,20 @@ +load("@rules_tar//tar/unpack:defs.bzl", "tar_unpack") + +tar_unpack( + name = "unpack", + src = "@all-qemu-efi-aarch64//:data.tar.xz", +) + +genrule( + name = "genrule", + srcs = [":unpack"], + outs = ["QEMU_EFI.fd"], + cmd = "$(CP) $ Date: Tue, 19 Nov 2024 09:36:00 +0000 Subject: [PATCH 2/3] feat: provide QEMU platforms --- e2e/qemu/BUILD.bazel | 11 +---------- platform/BUILD.bazel | 13 +++++++++++++ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/e2e/qemu/BUILD.bazel b/e2e/qemu/BUILD.bazel index cc59a373..353bcfa6 100644 --- a/e2e/qemu/BUILD.bazel +++ b/e2e/qemu/BUILD.bazel @@ -1,21 +1,12 @@ load("@rules_diff//diff/file/test:defs.bzl", "diff_file_test") load("@rules_labgrid//labgrid/run:defs.bzl", "labgrid_run") -platform( - name = "platform", - constraint_values = [ - "@rules_labgrid//constraint/emulator:qemu", - "@toolchain_utils//toolchain/constraint/os:linux", - "@toolchain_utils//toolchain/constraint/cpu:amd64", - ], -) - labgrid_run( name = "os-release", srcs = ["@ape//ape:cat"], outs = ["stdout.log"], cmd = "$(location @ape//ape:cat) /etc/os-release > $@", - platform = ":platform", + platform = "@rules_labgrid//platform:qemu-amd64-linux", ) diff_file_test( diff --git a/platform/BUILD.bazel b/platform/BUILD.bazel index 2475fefe..ae6c3377 100644 --- a/platform/BUILD.bazel +++ b/platform/BUILD.bazel @@ -4,3 +4,16 @@ platform( parents = ["@local_config_platform//:host"], visibility = ["//visibility:public"], ) + +[ + platform( + name = "qemu-{}-linux".format(cpu), + constraint_values = [ + "@rules_labgrid//constraint/emulator:qemu", + "@toolchain_utils//toolchain/constraint/os:linux", + "@toolchain_utils//toolchain/constraint/cpu:{}".format(cpu), + ], + visibility = ["//visibility:public"], + ) + for cpu in ("amd64", "arm64") +] -- GitLab From a602f6d1394c5dbb2844f7235adb10d5ccfd0ecf Mon Sep 17 00:00:00 2001 From: Alex Tercete Date: Tue, 19 Nov 2024 10:04:37 +0000 Subject: [PATCH 3/3] test(e2e): add QEMU test case for `arm64` --- e2e/qemu/BUILD.bazel | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/e2e/qemu/BUILD.bazel b/e2e/qemu/BUILD.bazel index 353bcfa6..220e81cd 100644 --- a/e2e/qemu/BUILD.bazel +++ b/e2e/qemu/BUILD.bazel @@ -1,17 +1,30 @@ load("@rules_diff//diff/file/test:defs.bzl", "diff_file_test") load("@rules_labgrid//labgrid/run:defs.bzl", "labgrid_run") -labgrid_run( - name = "os-release", - srcs = ["@ape//ape:cat"], - outs = ["stdout.log"], - cmd = "$(location @ape//ape:cat) /etc/os-release > $@", - platform = "@rules_labgrid//platform:qemu-amd64-linux", -) +CPUS = ("amd64", "arm64") + +[ + labgrid_run( + name = "os-release-{}".format(cpu), + srcs = ["@ape//ape:cat"], + outs = ["stdout-{}.log".format(cpu)], + cmd = "$(location @ape//ape:cat) /etc/os-release > $@", + platform = "@rules_labgrid//platform:qemu-{}-linux".format(cpu), + ) + for cpu in CPUS +] + +[ + diff_file_test( + name = "run-{}".format(cpu), + size = "small", + a = ":release.txt", + b = ":stdout-{}.log".format(cpu), + ) + for cpu in CPUS +] -diff_file_test( +test_suite( name = "run", - size = "small", - a = ":release.txt", - b = ":stdout.log", + tests = ["run-{}".format(cpu) for cpu in CPUS], ) -- GitLab