Run "bazel test //..." in CI
This will build all buildable targets and test all testable targets.
The hardcoded Harbormaster rules have been removed in Phabricator.
Adds a simple test for booting Smalltown.
BUILD files that are injected into repositories have been renamed to
BUILD.repo to ensure that Bazel does not recognize them as local BUILD
files and attempt to build them.
Test Plan: Covered by CI :)
Bug: T483
X-Origin-Diff: phab/D262
GitOrigin-RevId: 3512a5e13430001f4e6f91d21ac503564c8fb085
diff --git a/core/build/edk2/BUILD b/core/build/edk2/BUILD
index 7911678..e69de29 100644
--- a/core/build/edk2/BUILD
+++ b/core/build/edk2/BUILD
@@ -1,22 +0,0 @@
-genrule(
- name = "firmware",
- srcs = glob(["**"]),
- outs = [
- "OVMF_CODE.fd",
- "OVMF_VARS.fd",
- ],
- cmd = """
- (
- # The edk2 build does not like Bazel's default genrule environment.
- set +u
-
- cd external/edk2
- . edksetup.sh
- make -C BaseTools/Source/C
- build -DTPM2_ENABLE -DSECURE_BOOT_ENABLE -t GCC5 -a X64 -b RELEASE -p $$PWD/OvmfPkg/OvmfPkgX64.dsc
- ) > /dev/null
-
- cp external/edk2/Build/OvmfX64/RELEASE_GCC5/FV/{OVMF_CODE.fd,OVMF_VARS.fd} $(RULEDIR)
- """,
- visibility = ["//visibility:public"],
-)
diff --git a/core/build/edk2/BUILD.repo b/core/build/edk2/BUILD.repo
new file mode 100644
index 0000000..7911678
--- /dev/null
+++ b/core/build/edk2/BUILD.repo
@@ -0,0 +1,22 @@
+genrule(
+ name = "firmware",
+ srcs = glob(["**"]),
+ outs = [
+ "OVMF_CODE.fd",
+ "OVMF_VARS.fd",
+ ],
+ cmd = """
+ (
+ # The edk2 build does not like Bazel's default genrule environment.
+ set +u
+
+ cd external/edk2
+ . edksetup.sh
+ make -C BaseTools/Source/C
+ build -DTPM2_ENABLE -DSECURE_BOOT_ENABLE -t GCC5 -a X64 -b RELEASE -p $$PWD/OvmfPkg/OvmfPkgX64.dsc
+ ) > /dev/null
+
+ cp external/edk2/Build/OvmfX64/RELEASE_GCC5/FV/{OVMF_CODE.fd,OVMF_VARS.fd} $(RULEDIR)
+ """,
+ visibility = ["//visibility:public"],
+)
diff --git a/core/build/linux_kernel_repo/BUILD b/core/build/linux_kernel_repo/BUILD
index ed035ee..e69de29 100644
--- a/core/build/linux_kernel_repo/BUILD
+++ b/core/build/linux_kernel_repo/BUILD
@@ -1,14 +0,0 @@
-filegroup(
- name = "all",
- srcs = glob(["**"]),
- visibility = ["//visibility:public"],
-)
-
-load("@rules_cc//cc:defs.bzl", "cc_binary")
-
-# Build gen_init_cpio separately for the initramfs generation stage
-cc_binary(
- name = "gen_init_cpio",
- srcs = ["usr/gen_init_cpio.c"],
- visibility = ["//visibility:public"],
-)
diff --git a/core/build/linux_kernel_repo/BUILD.repo b/core/build/linux_kernel_repo/BUILD.repo
new file mode 100644
index 0000000..ed035ee
--- /dev/null
+++ b/core/build/linux_kernel_repo/BUILD.repo
@@ -0,0 +1,14 @@
+filegroup(
+ name = "all",
+ srcs = glob(["**"]),
+ visibility = ["//visibility:public"],
+)
+
+load("@rules_cc//cc:defs.bzl", "cc_binary")
+
+# Build gen_init_cpio separately for the initramfs generation stage
+cc_binary(
+ name = "gen_init_cpio",
+ srcs = ["usr/gen_init_cpio.c"],
+ visibility = ["//visibility:public"],
+)
diff --git a/core/scripts/BUILD b/core/scripts/BUILD
index 81a8d6c..ce5e9a5 100644
--- a/core/scripts/BUILD
+++ b/core/scripts/BUILD
@@ -8,3 +8,11 @@
],
tags = ["local"],
)
+
+sh_test(
+ name = "test_boot",
+ size = "small",
+ srcs = ["test_boot.sh"],
+ tags = ["local"],
+ deps = [":launch"],
+)
diff --git a/core/scripts/test_boot.sh b/core/scripts/test_boot.sh
new file mode 100755
index 0000000..f2df41a
--- /dev/null
+++ b/core/scripts/test_boot.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/expect -f
+
+set timeout 30
+
+spawn core/scripts/launch.sh
+
+expect "Network service got IP" {} default {
+ send_error "Failed while waiting for IP address"
+ exit 1
+}
+
+expect "Initialized encrypted storage" {
+ exit 0
+} default {
+ send_error "Failed while waiting for encrypted storage"
+ exit 1
+}