All checks were successful
Test / Create distribution (push) Successful in 34s
Test / Sandbox (push) Successful in 40s
Test / Sandbox (race detector) (push) Successful in 40s
Test / Hakurei (push) Successful in 43s
Test / Hakurei (race detector) (push) Successful in 43s
Test / Hpkg (push) Successful in 41s
Test / Flake checks (push) Successful in 1m21s
There is no reason to mount mqueue anywhere else, and these Ops usually follow each other. This change merges them. This helps decrease IPC overhead and also enables mounting dev readonly. Signed-off-by: Ophestra <cat@gensokyo.uk>
41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package helper_test
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
"os"
|
|
"testing"
|
|
|
|
"hakurei.app/container"
|
|
"hakurei.app/helper"
|
|
)
|
|
|
|
func TestContainer(t *testing.T) {
|
|
t.Run("start empty container", func(t *testing.T) {
|
|
h := helper.New(t.Context(), container.Nonexistent, argsWt, false, argF, nil, nil)
|
|
|
|
wantErr := "container: starting an empty container"
|
|
if err := h.Start(); err == nil || err.Error() != wantErr {
|
|
t.Errorf("Start: error = %v, wantErr %q",
|
|
err, wantErr)
|
|
}
|
|
})
|
|
|
|
t.Run("valid new helper nil check", func(t *testing.T) {
|
|
if got := helper.New(t.Context(), "hakurei", argsWt, false, argF, nil, nil); got == nil {
|
|
t.Errorf("New(%q, %q) got nil",
|
|
argsWt, "hakurei")
|
|
return
|
|
}
|
|
})
|
|
|
|
t.Run("implementation compliance", func(t *testing.T) {
|
|
testHelper(t, func(ctx context.Context, setOutput func(stdoutP, stderrP *io.Writer), stat bool) helper.Helper {
|
|
return helper.New(ctx, os.Args[0], argsWt, stat, argF, func(z *container.Container) {
|
|
setOutput(&z.Stdout, &z.Stderr)
|
|
z.Bind("/", "/", 0).Proc("/proc").Dev("/dev", true)
|
|
}, nil)
|
|
})
|
|
})
|
|
}
|