|  | 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__", | 
|  | ], | 
|  | ) |