aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/init_test.go
blob: ad35b4cf100745b536e38b9b7e4d9382750ce72f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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") }