//go:build linux && rootrunner package host import ( "github.com/carlosframework/platform/internal/rootstate" "os" "path/filepath" "testing" ) func TestPlan14RootMigrationTimerAdoptionRootRunner(t *testing.T) { testRootMigrationTimerAdoption(t, func(t *testing.T) rootstate.Store { state, err := rootstate.Open(filepath.Join(generationRootRunnerDir(t), "authority"), true, false) if err != nil { t.Fatal(err) } return state }, func(t *testing.T, r *ClaimRuntimeResources) { uid, gid := generationRunnerRegistryUser(t) path := r.Registry.Path() if err := r.Registry.Close(); err != nil { t.Fatal(err) } for dir := filepath.Dir(path); dir != "/tmp" && dir != "/var/lib" && dir != "/"; dir = filepath.Dir(dir) { if err := os.Chmod(dir, 0755); err != nil { t.Fatal(err) } } if err := os.Chown(filepath.Dir(path), uid, gid); err != nil { t.Fatal(err) } for _, suffix := range []string{"", "-wal", "-shm"} { if err := os.Chown(path+suffix, uid, gid); err != nil && !os.IsNotExist(err) { t.Fatal(err) } } reg, err := openRegistryChild(path, uid, gid) if err != nil { t.Fatal(err) } r.Registry = reg t.Cleanup(func() { reg.Close() }) }) }