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/segment_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/segment_test.go')
| -rw-r--r-- | internal/app/state/segment_test.go | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/internal/app/state/segment_test.go b/internal/app/state/segment_test.go index 307943ac..834cb99a 100644 --- a/internal/app/state/segment_test.go +++ b/internal/app/state/segment_test.go @@ -194,19 +194,7 @@ func TestStoreHandle(t *testing.T) { if err := os.Mkdir(p.String(), 0700); err != nil { t.Fatal(err.Error()) } - - for _, s := range tc.ents[0] { - if f, err := os.OpenFile(p.Append(s).String(), os.O_CREATE|os.O_EXCL, 0600); err != nil { - t.Fatal(err.Error()) - } else if err = f.Close(); err != nil { - t.Fatal(err.Error()) - } - } - for _, s := range tc.ents[1] { - if err := os.Mkdir(p.Append(s).String(), 0700); err != nil { - t.Fatal(err.Error()) - } - } + createEntries(t, p, tc.ents) var got []*stateEntryHandle if entries, n, err := (&storeHandle{ @@ -253,3 +241,19 @@ func TestStoreHandle(t *testing.T) { } }) } + +// createEntries creates file and directory entries in the specified prefix. +func createEntries(t *testing.T, prefix *check.Absolute, ents [2][]string) { + for _, s := range ents[0] { + if f, err := os.OpenFile(prefix.Append(s).String(), os.O_CREATE|os.O_EXCL, 0600); err != nil { + t.Fatal(err.Error()) + } else if err = f.Close(); err != nil { + t.Fatal(err.Error()) + } + } + for _, s := range ents[1] { + if err := os.Mkdir(prefix.Append(s).String(), 0700); err != nil { + t.Fatal(err.Error()) + } + } +} |
