aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/app/state/segment_test.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-10-28 23:04:17 +0900
committerOphestra <cat@gensokyo.uk>2025-10-29 03:21:00 +0900
commit65342d588ff061d2130e6379d86a26be90c908ae (patch)
treefb876d53aebe594fe153d1e40aa225508a92a9ef /internal/app/state/segment_test.go
parent5e5826459ed744fc0bd717e0136614365c7a96f3 (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.go30
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())
+ }
+ }
+}