aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-10-17 20:00:42 +0900
committerOphestra <cat@gensokyo.uk>2026-10-17 20:00:42 +0900
commit09872c456359d5daeb8df57e35f827f98fc6b17d (patch)
treed82a853818e2967c45cbcbaea06520f7345588a7
parentd1a648f9379fe2b4f6a3b2230889d520cae2f868 (diff)
cmd/hakurei/testsuite: additional cleanup checks
These were pretty difficult to do properly in the nixos-based test suite. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--cmd/hakurei/testsuite/main.go44
1 files changed, 43 insertions, 1 deletions
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))
}
}