hakurei/container/init_test.go
Ophestra c959381ed2
Some checks failed
Test / Create distribution (push) Successful in 33s
Test / Sandbox (push) Successful in 1m59s
Test / Hakurei (push) Successful in 3m27s
Test / Sandbox (race detector) (push) Successful in 3m55s
Test / Planterette (push) Successful in 4m15s
Test / Hakurei (race detector) (push) Successful in 4m55s
Test / Flake checks (push) Failing after 36s
container: access test case by index in helper
This is more elegant and allows for much easier extension of the tests. Mountinfo is still serialised however due to libPaths nondeterminism.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-26 17:21:18 +09:00

44 lines
813 B
Go

package container_test
import (
"log"
"os"
"testing"
"hakurei.app/command"
"hakurei.app/container"
"hakurei.app/internal"
"hakurei.app/internal/hlog"
)
const (
envDoCheck = "HAKUREI_TEST_DO_CHECK"
)
var helperCommands []func(c command.Command)
func TestMain(m *testing.M) {
container.TryArgv0(hlog.Output{}, hlog.Prepare, internal.InstallOutput)
if os.Getenv(envDoCheck) == "1" {
c := command.New(os.Stderr, log.Printf, "helper", func(args []string) error {
log.SetFlags(0)
log.SetPrefix("helper: ")
return nil
})
for _, f := range helperCommands {
f(c)
}
c.MustParse(os.Args[1:], func(err error) {
if err != nil {
log.Fatal(err.Error())
}
})
return
}
os.Exit(m.Run())
}
func prepareHelper(c *container.Container) { c.Env = append(c.Env, envDoCheck+"=1") }