diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-10-28 23:04:17 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-10-29 03:21:00 +0900 |
| commit | 65342d588ff061d2130e6379d86a26be90c908ae (patch) | |
| tree | fb876d53aebe594fe153d1e40aa225508a92a9ef /internal/app/state/state_test.go | |
| parent | 5e5826459ed744fc0bd717e0136614365c7a96f3 (diff) | |
internal/app/state: improve store internals
This fully exposes the store internals for #19 and are final preparations for removing the legacy store interface.
This change also fixes a potential deadlock in the handle initialisation mkdir failure path. This however is never reachable in hakurei as the store is never accessed concurrently.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/app/state/state_test.go')
| -rw-r--r-- | internal/app/state/state_test.go | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/internal/app/state/state_test.go b/internal/app/state/state_test.go index a334c348..c387b2ec 100644 --- a/internal/app/state/state_test.go +++ b/internal/app/state/state_test.go @@ -1,17 +1,22 @@ package state_test import ( - "math/rand/v2" + "log" + "math/rand" "reflect" "slices" "testing" "time" + "hakurei.app/container/check" "hakurei.app/hst" "hakurei.app/internal/app/state" + "hakurei.app/message" ) -func testStore(t *testing.T, s state.Store) { +func TestMulti(t *testing.T) { + s := state.NewMulti(message.NewMsg(log.New(log.Writer(), "multi: ", 0)), check.MustAbs(t.TempDir())) + t.Run("list empty store", func(t *testing.T) { if identities, err := s.List(); err != nil { t.Fatalf("List: error = %v", err) @@ -30,7 +35,12 @@ func testStore(t *testing.T, s state.Store) { var tc [tl]hst.State for i := 0; i < tl; i++ { - makeState(t, &tc[i]) + if err := hst.NewInstanceID(&tc[i].ID); err != nil { + t.Fatalf("cannot create dummy state: %v", err) + } + tc[i].PID = rand.Int() + tc[i].Config = hst.Template() + tc[i].Time = time.Now() } do := func(identity int, f func(c state.Cursor)) { @@ -108,12 +118,3 @@ func testStore(t *testing.T, s state.Store) { } }) } - -func makeState(t *testing.T, s *hst.State) { - if err := hst.NewInstanceID(&s.ID); err != nil { - t.Fatalf("cannot create dummy state: %v", err) - } - s.PID = rand.Int() - s.Config = hst.Template() - s.Time = time.Now() -} |
