blob: 1e9312a357ccf4320a958de11e832bb25d0c11e8 [file] [log] [blame]
Tim Windelschmidt18e9a3f2024-04-08 21:51:03 +02001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
2load("//osbase/build:def.bzl", "node_initramfs")
3load("//osbase/build:efi.bzl", "efi_unified_kernel_image")
4
5go_test(
6 name = "test_test",
7 size = "medium",
8 srcs = ["run_test.go"],
9 data = [
Tim Windelschmidt83da4222024-12-16 02:49:50 +010010 ":kernel_error",
11 ":kernel_panic",
Tim Windelschmidt18e9a3f2024-04-08 21:51:03 +020012 ":kernel_succeeded",
13 "//third_party/edk2:OVMF_CODE.fd",
14 "//third_party/edk2:OVMF_VARS.fd",
Tim Windelschmidt18e9a3f2024-04-08 21:51:03 +020015 ],
16 importpath = "source.monogon.dev/metropolis/installer/test",
17 visibility = ["//visibility:private"],
18 x_defs = {
19 "xOvmfVarsPath": "$(rlocationpath //third_party/edk2:OVMF_VARS.fd )",
20 "xOvmfCodePath": "$(rlocationpath //third_party/edk2:OVMF_CODE.fd )",
Tim Windelschmidt18e9a3f2024-04-08 21:51:03 +020021 "xSucceedKernelPath": "$(rlocationpath :kernel_succeeded )",
Tim Windelschmidt83da4222024-12-16 02:49:50 +010022 "xPanicKernelPath": "$(rlocationpath :kernel_panic )",
23 "xErrorKernelPath": "$(rlocationpath :kernel_error )",
Tim Windelschmidt18e9a3f2024-04-08 21:51:03 +020024 },
25 deps = [
26 "//osbase/cmd",
Tim Windelschmidt156248b2025-01-10 00:27:45 +010027 "@io_bazel_rules_go//go/runfiles",
Tim Windelschmidt18e9a3f2024-04-08 21:51:03 +020028 ],
29)
30
31go_library(
32 name = "succeeded_lib",
33 srcs = ["main_succeeded.go"],
34 importpath = "source.monogon.dev/osbase/bringup/test",
35 visibility = ["//visibility:private"],
36 deps = [
37 "//osbase/bootparam",
38 "//osbase/bringup",
39 "//osbase/efivarfs",
40 "//osbase/logtree",
41 "//osbase/supervisor",
42 "@org_golang_x_sys//unix",
43 "@org_uber_go_multierr//:multierr",
44 ],
45)
46
47go_binary(
48 name = "succeeded",
49 embed = [":succeeded_lib"],
50 visibility = ["//visibility:private"],
51)
52
53node_initramfs(
54 name = "initramfs_succeeded",
55 files = {
56 ":succeeded": "/init",
57 },
58 fsspecs = [
59 "//osbase/build:earlydev.fsspec",
60 ],
61 visibility = ["//visibility:private"],
62)
63
64efi_unified_kernel_image(
65 name = "kernel_succeeded",
66 cmdline = "quiet console=ttyS0 init=/init",
67 initrd = [":initramfs_succeeded"],
68 kernel = "//third_party/linux",
69 visibility = ["//visibility:private"],
70)
71
72go_library(
Tim Windelschmidt83da4222024-12-16 02:49:50 +010073 name = "panic_lib",
74 srcs = ["main_panic.go"],
Tim Windelschmidt18e9a3f2024-04-08 21:51:03 +020075 importpath = "source.monogon.dev/osbase/bringup/test",
76 visibility = ["//visibility:private"],
77 deps = [
78 "//osbase/bootparam",
79 "//osbase/bringup",
80 "//osbase/efivarfs",
81 "//osbase/logtree",
82 "//osbase/supervisor",
83 "@org_golang_x_sys//unix",
84 "@org_uber_go_multierr//:multierr",
85 ],
86)
87
88go_binary(
Tim Windelschmidt83da4222024-12-16 02:49:50 +010089 name = "panic",
90 embed = [":panic_lib"],
Tim Windelschmidt18e9a3f2024-04-08 21:51:03 +020091 visibility = ["//visibility:private"],
92)
93
94node_initramfs(
Tim Windelschmidt83da4222024-12-16 02:49:50 +010095 name = "initramfs_panic",
Tim Windelschmidt18e9a3f2024-04-08 21:51:03 +020096 files = {
Tim Windelschmidt83da4222024-12-16 02:49:50 +010097 ":panic": "/init",
Tim Windelschmidt18e9a3f2024-04-08 21:51:03 +020098 },
99 fsspecs = [
100 "//osbase/build:earlydev.fsspec",
101 ],
102 visibility = ["//visibility:private"],
103)
104
105efi_unified_kernel_image(
Tim Windelschmidt83da4222024-12-16 02:49:50 +0100106 name = "kernel_panic",
Tim Windelschmidt18e9a3f2024-04-08 21:51:03 +0200107 cmdline = "quiet console=ttyS0 init=/init",
Tim Windelschmidt83da4222024-12-16 02:49:50 +0100108 initrd = [":initramfs_panic"],
109 kernel = "//third_party/linux",
110 visibility = ["//visibility:private"],
111)
112
113go_library(
114 name = "error_lib",
115 srcs = ["main_error.go"],
116 importpath = "source.monogon.dev/osbase/bringup/test",
117 visibility = ["//visibility:private"],
118 deps = [
119 "//osbase/bootparam",
120 "//osbase/bringup",
121 "//osbase/efivarfs",
122 "//osbase/logtree",
123 "//osbase/supervisor",
124 "@org_golang_x_sys//unix",
125 "@org_uber_go_multierr//:multierr",
126 ],
127)
128
129go_binary(
130 name = "error",
131 embed = [":error_lib"],
132 visibility = ["//visibility:private"],
133)
134
135node_initramfs(
136 name = "initramfs_error",
137 files = {
138 ":error": "/init",
139 },
140 fsspecs = [
141 "//osbase/build:earlydev.fsspec",
142 ],
143 visibility = ["//visibility:private"],
144)
145
146efi_unified_kernel_image(
147 name = "kernel_error",
148 cmdline = "quiet console=ttyS0 init=/init",
149 initrd = [":initramfs_error"],
Tim Windelschmidt18e9a3f2024-04-08 21:51:03 +0200150 kernel = "//third_party/linux",
151 visibility = ["//visibility:private"],
152)