m/n/c/update: fix matching boot entries
The matching code accidentally worked as long as there was only one boot
entry for each loader path (boot-a.efi/boot-b.efi) as it type-asserted
a pointer which caused ok to always be false and thus all entries passed
through the UUID check.
This fixes the type assertion and following logic.
Change-Id: I83fdd2204028633dc274055f7d1ecb458747174e
Reviewed-on: https://review.monogon.dev/c/monogon/+/2031
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
diff --git a/metropolis/node/core/update/BUILD.bazel b/metropolis/node/core/update/BUILD.bazel
index e3cdcd1..e506984 100644
--- a/metropolis/node/core/update/BUILD.bazel
+++ b/metropolis/node/core/update/BUILD.bazel
@@ -1,4 +1,4 @@
-load("@io_bazel_rules_go//go:def.bzl", "go_library")
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
go_library(
name = "update",
@@ -18,3 +18,14 @@
"@org_golang_x_sys//unix",
],
)
+
+go_test(
+ name = "update_test",
+ srcs = ["update_test.go"],
+ embed = [":update"],
+ deps = [
+ "//metropolis/pkg/efivarfs",
+ "//metropolis/pkg/gpt",
+ "@com_github_google_uuid//:uuid",
+ ],
+)