//go:build linux && rootrunner package host import ( "context" "os" "path/filepath" "testing" ) func plan14MaterializedDependencies(t *testing.T, ctl func(context.Context, ...string) (string, error)) { t.Helper() units := []struct{ name, body string }{ {"carlos-edge.service", "[Service]\nType=simple\nExecStart=/bin/sleep infinity\n"}, {"data-instances.mount", "[Mount]\nWhat=/data/instances\nWhere=/data/instances\nType=none\nOptions=bind,nosymfollow\n"}, {"run-carlos-instances.mount", "[Mount]\nWhat=/run/carlos/instances\nWhere=/run/carlos/instances\nType=none\nOptions=bind,nosymfollow\n"}, {"run-carlos-logs.mount", "[Mount]\nWhat=/run/carlos/logs\nWhere=/run/carlos/logs\nType=none\nOptions=bind,nosymfollow\n"}, } for _, u := range units { path := filepath.Join("/run/systemd/system", u.name) f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_EXCL, 0644) if err != nil { t.Fatal(err) } if _, err = f.WriteString(u.body); err != nil { t.Fatal(err) } f.Close() t.Cleanup(func() { ctl(context.Background(), "stop", u.name) os.Remove(path) ctl(context.Background(), "daemon-reload") }) } if out, err := ctl(t.Context(), "daemon-reload"); err != nil { t.Fatal(out, err) } }