From 09872c456359d5daeb8df57e35f827f98fc6b17d Mon Sep 17 00:00:00 2001 From: Ophestra Date: Sat, 17 Oct 2026 20:00:42 +0900 Subject: cmd/hakurei/testsuite: additional cleanup checks These were pretty difficult to do properly in the nixos-based test suite. Signed-off-by: Ophestra --- cmd/hakurei/testsuite/main.go | 44 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/cmd/hakurei/testsuite/main.go b/cmd/hakurei/testsuite/main.go index ca48be8e..ede95275 100644 --- a/cmd/hakurei/testsuite/main.go +++ b/cmd/hakurei/testsuite/main.go @@ -10,6 +10,7 @@ import ( "encoding/json" "errors" "fmt" + "io/fs" "log" "os" "os/exec" @@ -819,7 +820,7 @@ func main() { wg.Wait() - if dents, err := os.ReadDir("/tmp"); err != nil { + if dents, err := os.ReadDir(fhs.Tmp); err != nil { log.Fatal(err) } else { for _, dent := range dents { @@ -828,5 +829,46 @@ func main() { } } } + + if dents, err := os.ReadDir(testsuite.HakureiPrefix); err != nil { + log.Fatal(err) + } else { + if len(dents) != 3 { + log.Fatal("leftover hakurei work directories") + } + } + + if err := filepath.WalkDir(testsuite.HakureiPrefix+"state", func( + path string, + d fs.DirEntry, + err error, + ) error { + if err != nil { + return err + } + + if d.IsDir() { + return nil + } + + 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 + testsuite.MustDecodeFrom( + ctx, &cred, nil, &identifiers, + "hakurei", "--json", "ps", "--short", + ) + if len(identifiers) != 0 { + log.Fatalf("%d instances still running", len(identifiers)) } } -- cgit v1.3.1