| load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") | 
 | load("//metropolis/node/build/kconfig-patcher:kconfig-patcher.bzl", "kconfig_patch") | 
 |  | 
 | go_library( | 
 |     name = "go_default_library", | 
 |     srcs = ["main.go"], | 
 |     importpath = "source.monogon.dev/metropolis/test/ktest", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//metropolis/test/launch:go_default_library"], | 
 | ) | 
 |  | 
 | go_binary( | 
 |     name = "ktest", | 
 |     embed = [":go_default_library"], | 
 |     pure = "on", | 
 |     visibility = ["//metropolis:__subpackages__"], | 
 | ) | 
 |  | 
 | kconfig_patch( | 
 |     name = "testing-config", | 
 |     src = "//third_party/linux:kernel-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": "", | 
 |     }, | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "linux-testing", | 
 |     srcs = [ | 
 |         "@linux//:all", | 
 |         ":testing-config", | 
 |     ], | 
 |     outs = [ | 
 |         "linux-testing.elf", | 
 |     ], | 
 |     cmd = """ | 
 |     DIR=external/linux | 
 |  | 
 |     mkdir $$DIR/.bin | 
 |  | 
 |     cp $(location :testing-config) $$DIR/.config | 
 |  | 
 |     (cd $$DIR && make -j $$(nproc) vmlinux >/dev/null) | 
 |  | 
 |     cp $$DIR/vmlinux $@ | 
 |     """, | 
 |     visibility = ["//metropolis:__subpackages__"], | 
 | ) | 
 |  | 
 | filegroup( | 
 |     name = "test-script", | 
 |     srcs = ["run_ktest.sh"], | 
 |     visibility = ["//metropolis:__subpackages__"], | 
 | ) |