| load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") | 
 | load("//metropolis/node/build/kconfig-patcher:kconfig-patcher.bzl", "kconfig_patch") | 
 | load("//third_party/linux:def.bzl", "linux_image") | 
 |  | 
 | go_library( | 
 |     name = "ktest_lib", | 
 |     srcs = ["main.go"], | 
 |     importpath = "source.monogon.dev/metropolis/test/ktest", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//metropolis/test/launch"], | 
 | ) | 
 |  | 
 | go_binary( | 
 |     name = "ktest", | 
 |     embed = [":ktest_lib"], | 
 |     pure = "on", | 
 |     visibility = [ | 
 |         "//go/net/psample:__pkg__", | 
 |         "//metropolis:__subpackages__", | 
 |     ], | 
 | ) | 
 |  | 
 | kconfig_patch( | 
 |     name = "testing-config", | 
 |     src = "//third_party/linux:linux-metropolis.config", | 
 |     out = "testing.config", | 
 |     override_configs = { | 
 |         # Unlock command line | 
 |         "CONFIG_CMDLINE_OVERRIDE": "n", | 
 |         "CONFIG_CMDLINE_BOOL": "n", | 
 |         # Shave off 1 second from boot time | 
 |         "CONFIG_SERIO_I8042": "", | 
 |         "CONFIG_KEYBOARD_ATKBD": "", | 
 |         "CONFIG_RTC_DRV_CMOS": "", | 
 |         # Shave off an additional 18ms (half of the boot time) | 
 |         "CONFIG_DEBUG_WX": "", | 
 |     }, | 
 | ) | 
 |  | 
 | linux_image( | 
 |     name = "linux-testing", | 
 |     image_format = "vmlinux", | 
 |     kernel_config = ":testing-config", | 
 |     # This image is directly used by the ktest macro, thus it needs a pretty | 
 |     # wide visibility. | 
 |     visibility = [ | 
 |         "//go/net/psample:__pkg__", | 
 |         "//metropolis:__subpackages__", | 
 |     ], | 
 | ) | 
 |  | 
 | filegroup( | 
 |     name = "test-script", | 
 |     srcs = ["run_ktest.sh"], | 
 |     visibility = [ | 
 |         "//go/net/psample:__pkg__", | 
 |         "//metropolis:__subpackages__", | 
 |     ], | 
 | ) |