aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/pkg/testdata/main.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-05-06 06:22:28 +0900
committerOphestra <cat@gensokyo.uk>2026-05-06 06:37:58 +0900
commitb0d06b67dc85d79d104a6bdbea1f627aa09c79a8 (patch)
tree4766692befb2bdaa6915d1fa82d3ec3fb7ddf04a /internal/pkg/testdata/main.go
parent089100f29de4ab262197b7e625817ef943a68204 (diff)
internal/pkg: centralise exec testdata checksums
This significantly reduces maintenance burden. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pkg/testdata/main.go')
-rw-r--r--internal/pkg/testdata/main.go254
1 files changed, 0 insertions, 254 deletions
diff --git a/internal/pkg/testdata/main.go b/internal/pkg/testdata/main.go
deleted file mode 100644
index 564a1736..00000000
--- a/internal/pkg/testdata/main.go
+++ /dev/null
@@ -1,254 +0,0 @@
-//go:build testtool
-
-package main
-
-import (
- "encoding/gob"
- "log"
- "net"
- "os"
- "path/filepath"
- "reflect"
- "runtime"
- "slices"
- "strconv"
- "strings"
-
- "hakurei.app/fhs"
- "hakurei.app/vfs"
-)
-
-func main() {
- log.SetFlags(0)
- log.SetPrefix("testtool: ")
-
- environ := slices.DeleteFunc(slices.Clone(os.Environ()), func(s string) bool {
- return s == "CURE_JOBS="+strconv.Itoa(runtime.NumCPU())
- })
-
- var hostNet, layers, promote bool
- if len(os.Args) == 2 && os.Args[0] == "testtool" {
- switch os.Args[1] {
- case "net":
- hostNet = true
- log.SetPrefix("testtool(net): ")
- break
-
- case "layers":
- layers = true
- log.SetPrefix("testtool(layers): ")
- break
-
- case "promote":
- promote = true
- log.SetPrefix("testtool(promote): ")
-
- default:
- log.Fatalf("Args: %q", os.Args)
- return
- }
- } else if wantArgs := []string{"testtool"}; !slices.Equal(os.Args, wantArgs) {
- log.Fatalf("Args: %q, want %q", os.Args, wantArgs)
- }
-
- var overlayRoot bool
- wantEnv := []string{"HAKUREI_TEST=1"}
- if len(environ) == 2 {
- overlayRoot = true
- if !layers && !promote {
- log.SetPrefix("testtool(overlay root): ")
- }
- wantEnv = []string{"HAKUREI_TEST=1", "HAKUREI_ROOT=1"}
- }
- if !slices.Equal(wantEnv, environ) {
- log.Fatalf("Environ: %q, want %q", environ, wantEnv)
- }
-
- var overlayWork bool
- const (
- wantExec = "/opt/bin/testtool"
- wantExecWork = "/work/bin/testtool"
- )
- var iftPath string
- if got, err := os.Executable(); err != nil {
- log.Fatalf("Executable: error = %v", err)
- } else {
- iftPath = filepath.Join(filepath.Dir(filepath.Dir(got)), "ift")
-
- if got != wantExec {
- switch got {
- case wantExecWork:
- overlayWork = true
- log.SetPrefix("testtool(overlay work): ")
-
- default:
- log.Fatalf("Executable: %q, want %q", got, wantExec)
- }
- }
- }
-
- wantHostname := "cure"
- if hostNet {
- wantHostname += "-net"
- }
-
- if hostname, err := os.Hostname(); err != nil {
- log.Fatalf("Hostname: error = %v", err)
- } else if hostname != wantHostname {
- log.Fatalf("Hostname: %q, want %q", hostname, wantHostname)
- }
-
- var m *vfs.MountInfo
- if f, err := os.Open(fhs.Proc + "self/mountinfo"); err != nil {
- log.Fatalf("Open: error = %v", err)
- } else {
- err = vfs.NewMountInfoDecoder(f).Decode(&m)
- closeErr := f.Close()
- if err != nil {
- log.Fatalf("Decode: error = %v", err)
- }
- if closeErr != nil {
- log.Fatalf("Close: error = %v", err)
- }
- }
-
- if ift, err := net.Interfaces(); err != nil {
- log.Fatal(err)
- } else if !hostNet {
- if len(ift) != 1 || ift[0].Name != "lo" {
- log.Fatalln("got interfaces", strings.Join(slices.Collect(func(yield func(ifn string) bool) {
- for _, ifi := range ift {
- if !yield(ifi.Name) {
- break
- }
- }
- }), ", "))
- }
- } else {
- var iftParent []net.Interface
-
- var r *os.File
- if r, err = os.Open(iftPath); err != nil {
- log.Fatal(err)
- } else {
- err = gob.NewDecoder(r).Decode(&iftParent)
- closeErr := r.Close()
- if err != nil {
- log.Fatal(err)
- }
- if closeErr != nil {
- log.Fatal(closeErr)
- }
- }
-
- if !reflect.DeepEqual(ift, iftParent) {
- log.Fatalf("Interfaces: %#v, want %#v", ift, iftParent)
- }
- }
-
- const checksumEmptyDir = "MGWmEfjut2QE2xPJwTsmUzpff4BN_FEnQ7T0j7gvUCCiugJQNwqt9m151fm9D1yU"
- ident := "dztPS6jRjiZtCF4_p8AzfnxGp6obkhrgFVsxdodbKWUoAEVtDz3MykepJB4kI_ks"
- log.Println(m)
- next := func() { m = m.Next; log.Println(m) }
-
- if overlayRoot {
- ident = "RdMA-mubnrHuu3Ky1wWyxauSYCO0ZH_zCPUj3uDHqkfwv5sGcByoF_g5PjlGiClb"
-
- if m.Root != "/" || m.Target != "/" ||
- m.Source != "overlay" || m.FsType != "overlay" {
- log.Fatal("unexpected root mount entry")
- }
- var lowerdir []string
- for _, o := range strings.Split(m.FsOptstr, ",") {
- const lowerdirKey = "lowerdir+="
- if strings.HasPrefix(o, lowerdirKey) {
- lowerdir = append(lowerdir, o[len(lowerdirKey):])
- }
- }
- if !layers {
- if len(lowerdir) != 1 || filepath.Base(lowerdir[0]) != checksumEmptyDir {
- log.Fatal("unexpected artifact checksum")
- }
- } else {
- ident = "p1t_drXr34i-jZNuxDMLaMOdL6tZvQqhavNafGynGqxOZoXAUTSn7kqNh3Ovv3DT"
-
- if len(lowerdir) != 2 ||
- filepath.Base(lowerdir[0]) != "MGWmEfjut2QE2xPJwTsmUzpff4BN_FEnQ7T0j7gvUCCiugJQNwqt9m151fm9D1yU" ||
- filepath.Base(lowerdir[1]) != "nY_CUdiaUM1OL4cPr5TS92FCJ3rCRV7Hm5oVTzAvMXwC03_QnTRfQ5PPs7mOU9fK" {
- log.Fatalf("unexpected lowerdirs %s", strings.Join(lowerdir, ", "))
- }
- }
- } else {
- if hostNet {
- ident = "G8qPxD9puvvoOVV7lrT80eyDeIl3G_CCFoKw12c8mCjMdG1zF7NEPkwYpNubClK3"
- }
-
- if m.Root != "/sysroot" || m.Target != "/" {
- log.Fatal("unexpected root mount entry")
- }
-
- next()
- if filepath.Base(m.Root) != "OLBgp1GsljhM2TJ-sbHjaiH9txEUvgdDTAzHv2P24donTt6_529l-9Ua0vFImLlb" {
- log.Fatal("unexpected file artifact checksum")
- }
-
- next()
- if filepath.Base(m.Root) != checksumEmptyDir {
- log.Fatal("unexpected artifact checksum")
- }
- }
-
- if promote {
- ident = "xXTIYcXmgJWNLC91c417RRrNM9cjELwEZHpGvf8Fk_GNP5agRJp_SicD0w9aMeLJ"
- }
-
- next() // testtool artifact
-
- next()
- if overlayWork {
- ident = "5hlaukCirnXE4W_RSLJFOZN47Z5RiHnacXzdFp_70cLgiJUGR6cSb_HaFftkzi0-"
- if m.Root != "/" || m.Target != "/work" ||
- m.Source != "overlay" || m.FsType != "overlay" {
- log.Fatal("unexpected work mount entry")
- }
- } else {
- if filepath.Base(m.Root) != ident || m.Target != "/work" {
- log.Fatal("unexpected work mount entry")
- }
- }
-
- next()
- if filepath.Base(m.Root) != ident || m.Target != "/tmp" {
- log.Fatal("unexpected temp mount entry")
- }
-
- next()
- if m.Root != "/" || m.Target != "/proc" || m.Source != "proc" || m.FsType != "proc" {
- log.Fatal("unexpected proc mount entry")
- }
-
- next()
- if m.Root != "/" || m.Target != "/dev" || m.Source != "devtmpfs" || m.FsType != "tmpfs" {
- log.Fatal("unexpected dev mount entry")
- }
-
- for i := 0; i < 9; i++ { // private /dev entries
- next()
- }
-
- if m.Next != nil {
- log.Println("unexpected extra mount entries")
- for m.Next != nil {
- next()
- }
- os.Exit(1)
- }
-
- checkData := []byte{0}
- if hostNet {
- checkData = []byte("net")
- }
- if err := os.WriteFile("check", checkData, 0400); err != nil {
- log.Fatal(err)
- }
-}