aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cmd/hakurei/testsuite/main.go224
-rw-r--r--internal/testsuite/testsuite.go2
2 files changed, 113 insertions, 113 deletions
diff --git a/cmd/hakurei/testsuite/main.go b/cmd/hakurei/testsuite/main.go
index bc93c944..61c2833e 100644
--- a/cmd/hakurei/testsuite/main.go
+++ b/cmd/hakurei/testsuite/main.go
@@ -696,7 +696,7 @@ func main() {
_policy := policy
checkHakurei(
ctx, &wg, &cred, dbusEnv,
- "setscheduler-"+strconv.Itoa(int(policy)), "setscheduler",
+ "setscheduler-"+strconv.Itoa(int(policy)), "setscheduler "+strconv.Quote(policy.String()),
true, false, false, 0, func(c *hst.Config) {
c.SchedPolicy = _policy
}, func(p hst.State, pid int) error {
@@ -754,137 +754,137 @@ func main() {
return nil
}, nil,
)
+ }
- wg.Go(func() {
- defer log.Println("validated revert type selection")
-
- c := newConfig("rts 0", "sleep", "infinity")
- c.Container.Flags |= hst.FShareRuntime
- uid := hst.ToUser(0, c.Identity)
+ wg.Go(func() {
+ defer log.Println("validated revert type selection")
- onDone := func(err error, output string) {
- if err == nil {
- log.Fatal("revert type selection test process " +
- "terminated unexpectedly")
- } else if e, ok := errors.AsType[*exec.ExitError](err); !ok {
- log.Fatalf("revert type selection: %v\n%s", err, output)
- } else if e.ExitCode() != 130 {
- log.Fatalf("revert type selection: %v\n%s", e, output)
- }
+ c := newConfig("rts 0", "sleep", "infinity")
+ c.Container.Flags |= hst.FShareRuntime
+ uid := hst.ToUser(0, c.Identity)
- if output != "" {
- log.Fatalf("unexpected output\n%s", output)
- }
+ onDone := func(err error, output string) {
+ if err == nil {
+ log.Fatal("revert type selection test process " +
+ "terminated unexpectedly")
+ } else if e, ok := errors.AsType[*exec.ExitError](err); !ok {
+ log.Fatalf("revert type selection: %v\n%s", err, output)
+ } else if e.ExitCode() != 130 {
+ log.Fatalf("revert type selection: %v\n%s", e, output)
}
- validatePresent := func() {
- testsuite.AssertOutput(
- "validating ACLs for rts present",
- "user::rwx\n"+
- "user:"+strconv.Itoa(uid)+":rwx\n"+
- "group::---\n"+
- "mask::rwx\n"+
- "other::---\n"+
- "\n",
- "",
- )(testsuite.MustOutput(
- ctx, &cred, nil, 0, "getfacl rts present",
- "getfacl",
- "--absolute-names",
- "--omit-header",
- "--numeric",
- "/tmp/hakurei.0/runtime/"+strconv.Itoa(c.Identity),
- ))
- }
- validateReverted := func() {
- testsuite.AssertOutput(
- "validating ACLs for rts reverted",
- "user::rwx\n"+
- "group::---\n"+
- "mask::---\n"+
- "other::---\n"+
- "\n",
- "",
- )(testsuite.MustOutput(
- ctx, &cred, nil, 0, "getfacl rts present",
- "getfacl",
- "--absolute-names",
- "--omit-header",
- "--numeric",
- "/tmp/hakurei.0/runtime/"+strconv.Itoa(c.Identity),
- ))
+ if output != "" {
+ log.Fatalf("unexpected output\n%s", output)
}
+ }
- p0, pid0 := testsuite.MustStartHakurei(
- ctx, &wg, &cred, dbusEnv, onDone,
- true, false, false, false, c,
- )
- validatePresent()
+ validatePresent := func() {
+ testsuite.AssertOutput(
+ "validating ACLs for rts present",
+ "user::rwx\n"+
+ "user:"+strconv.Itoa(uid)+":rwx\n"+
+ "group::---\n"+
+ "mask::rwx\n"+
+ "other::---\n"+
+ "\n",
+ "",
+ )(testsuite.MustOutput(
+ ctx, &cred, nil, 0, "getfacl rts present",
+ "getfacl",
+ "--absolute-names",
+ "--omit-header",
+ "--numeric",
+ "/tmp/hakurei.0/runtime/"+strconv.Itoa(c.Identity),
+ ))
+ }
+ validateReverted := func() {
+ testsuite.AssertOutput(
+ "validating ACLs for rts reverted",
+ "user::rwx\n"+
+ "group::---\n"+
+ "mask::---\n"+
+ "other::---\n"+
+ "\n",
+ "",
+ )(testsuite.MustOutput(
+ ctx, &cred, nil, 0, "getfacl rts present",
+ "getfacl",
+ "--absolute-names",
+ "--omit-header",
+ "--numeric",
+ "/tmp/hakurei.0/runtime/"+strconv.Itoa(c.Identity),
+ ))
+ }
- p1, pid1 := testsuite.MustStartHakurei(
- ctx, &wg, &cred, dbusEnv, onDone,
- true, false, false, false, c,
- )
- validatePresent()
+ p0, pid0 := testsuite.MustStartHakurei(
+ ctx, &wg, &cred, dbusEnv, onDone,
+ true, false, false, false, c,
+ )
+ validatePresent()
- testsuite.MustRun(
- &cred, testsuite.SessionEnv(dbusEnv),
- "hakurei", "kill", p1.ID.String(),
- )
- testsuite.PollPID("revert type selection 1", pid1)
- validatePresent()
+ p1, pid1 := testsuite.MustStartHakurei(
+ ctx, &wg, &cred, dbusEnv, onDone,
+ true, false, false, false, c,
+ )
+ validatePresent()
- testsuite.MustRun(
- &cred, testsuite.SessionEnv(dbusEnv),
- "hakurei", "kill", p0.ID.String(),
- )
- testsuite.PollPID("revert type selection 0", pid0)
- validateReverted()
- })
+ testsuite.MustRun(
+ &cred, testsuite.SessionEnv(dbusEnv),
+ "hakurei", "kill", p1.ID.String(),
+ )
+ testsuite.PollPID("revert type selection 1", pid1)
+ validatePresent()
- wg.Wait()
+ testsuite.MustRun(
+ &cred, testsuite.SessionEnv(dbusEnv),
+ "hakurei", "kill", p0.ID.String(),
+ )
+ testsuite.PollPID("revert type selection 0", pid0)
+ validateReverted()
+ })
- if dents, err := os.ReadDir(fhs.Tmp); err != nil {
- log.Fatal(err)
- } else {
- for _, dent := range dents {
- if name := dent.Name(); strings.HasPrefix(name, ".hakurei-shim-") {
- log.Fatalf("leftover shim work dir %q", name)
- }
- }
- }
+ wg.Wait()
- if dents, err := os.ReadDir(testsuite.HakureiPrefix); err != nil {
- log.Fatal(err)
- } else {
- if len(dents) != 3 {
- log.Fatal("leftover hakurei work directories")
+ if dents, err := os.ReadDir(fhs.Tmp); err != nil {
+ log.Fatal(err)
+ } else {
+ for _, dent := range dents {
+ if name := dent.Name(); strings.HasPrefix(name, ".hakurei-shim-") {
+ log.Fatalf("leftover shim work dir %q", name)
}
}
+ }
- if err := filepath.WalkDir(testsuite.HakureiPrefix+"state", func(
- path string,
- d fs.DirEntry,
- err error,
- ) error {
- if err != nil {
- return err
- }
+ if dents, err := os.ReadDir(testsuite.HakureiPrefix); err != nil {
+ log.Fatal(err)
+ } else {
+ if len(dents) != 3 {
+ log.Fatal("leftover hakurei work directories")
+ }
+ }
- if d.IsDir() {
- return nil
- }
+ if err := filepath.WalkDir(testsuite.HakureiPrefix+"state", func(
+ path string,
+ d fs.DirEntry,
+ err error,
+ ) error {
+ if err != nil {
+ return err
+ }
- if !d.Type().IsRegular() {
- return fmt.Errorf("strange entry at %q: %s", path, d.Type())
- }
- if d.Name() != "lock" {
- return fmt.Errorf("leftover entry at %q", path)
- }
+ if d.IsDir() {
return nil
- }); err != nil {
- log.Fatal(err)
}
+
+ if !d.Type().IsRegular() {
+ return fmt.Errorf("strange entry at %q: %s", path, d.Type())
+ }
+ if d.Name() != "lock" {
+ return fmt.Errorf("leftover entry at %q", path)
+ }
+ return nil
+ }); err != nil {
+ log.Fatal(err)
}
var identifiers []hst.ID
diff --git a/internal/testsuite/testsuite.go b/internal/testsuite/testsuite.go
index 367cb4c0..b7805380 100644
--- a/internal/testsuite/testsuite.go
+++ b/internal/testsuite/testsuite.go
@@ -798,7 +798,7 @@ func StartHakurei(
"hakurei", "--json", "ps", "--short",
)
if !slices.Contains(identifiers, id) {
- log.Fatal("instance not present in ps output")
+ log.Fatalf("(%s) instance not present in ps output", c.Container.Hostname)
}
var got hst.State