m/t/i/testos: introduce stub os for installer tests

TestOS is a tiny "operating system" which is packaged the exact same
way as an actual Metropolis node but only outputs a single flag before
exiting. It's used for decoupling the installer tests from the
Metropolis Node code.

Change-Id: I156ee05a6c54b831696aeadd207f2c20db65a25c
Reviewed-on: https://review.monogon.dev/c/monogon/+/432
Reviewed-by: Mateusz Zalega <mateusz@monogon.tech>
diff --git a/metropolis/test/installer/testos/main.go b/metropolis/test/installer/testos/main.go
new file mode 100644
index 0000000..f0a6e80
--- /dev/null
+++ b/metropolis/test/installer/testos/main.go
@@ -0,0 +1,15 @@
+// TestOS is a tiny "operating system" which is packaged the exact same way as
+// an actual Metropolis node but only outputs a single flag before exiting.
+// It's used for decoupling the installer tests from the Metropolis Node code.
+package main
+
+import (
+	"fmt"
+
+	"golang.org/x/sys/unix"
+)
+
+func main() {
+	fmt.Println("TestOS launched successfully! _TESTOS_LAUNCH_SUCCESS_")
+	unix.Reboot(unix.LINUX_REBOOT_CMD_POWER_OFF)
+}