aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/pkg/clean_test.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-06-02 15:50:30 +0900
committerOphestra <cat@gensokyo.uk>2026-06-02 15:50:30 +0900
commit6c2f7089b65c5e3eb5c3e65210abc0147f97ff45 (patch)
tree6270391fff9f554eb2fb6f0178ce3c0c8384577a /internal/pkg/clean_test.go
parent74c18390b4d0e33f960622fa158be09f46491eb7 (diff)
internal/pkg: destroy unreachable status entries
These must be destroyed alongside their corresponding identifier or substitute entries to avoid inconsistent state. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pkg/clean_test.go')
-rw-r--r--internal/pkg/clean_test.go31
1 files changed, 16 insertions, 15 deletions
diff --git a/internal/pkg/clean_test.go b/internal/pkg/clean_test.go
index 9b71a777..4b2385a3 100644
--- a/internal/pkg/clean_test.go
+++ b/internal/pkg/clean_test.go
@@ -143,13 +143,6 @@ func TestClean(t *testing.T) {
deps: []pkg.Artifact{
pkg.NewFile("destroyed-input", []byte("destroyed")),
},
- cure: func(f *pkg.FContext) error {
- p := f.GetWorkDir()
- if err := os.MkdirAll(p.String(), 0755); err != nil {
- return err
- }
- return os.WriteFile(p.Append("result").String(), nil, 0444)
- },
}),
}, []unique.Handle[pkg.Checksum]{
unique.Make(sha512.Sum384([]byte("destroyed"))),
@@ -163,6 +156,12 @@ func TestClean(t *testing.T) {
pkg.NewFile("destroyed-input", []byte("destroyed")),
},
cure: func(f *pkg.FContext) error {
+ if w, err := f.GetStatusWriter(); err != nil {
+ return err
+ } else if _, err = w.Write([]byte("destroyed")); err != nil {
+ return err
+ }
+
p := f.GetWorkDir()
if err := os.MkdirAll(p.String(), 0755); err != nil {
return err
@@ -178,6 +177,12 @@ func TestClean(t *testing.T) {
pkg.NewFile("kept-input", []byte("kept")),
},
cure: func(f *pkg.FContext) error {
+ if w, err := f.GetStatusWriter(); err != nil {
+ return err
+ } else if _, err = w.Write([]byte("kept")); err != nil {
+ return err
+ }
+
p := f.GetWorkDir()
if err := os.MkdirAll(p.String(), 0755); err != nil {
return err
@@ -199,7 +204,10 @@ func TestClean(t *testing.T) {
"lock": {Mode: 0644},
"variant": {Mode: 0400},
- "status": {Mode: fs.ModeDir | 0700},
+
+ "status": {Mode: fs.ModeDir | 0700},
+ "status/4bjS-QjGcSV4nth-W6Vg3-wolKmKgiq4Ld2oRIWcOfy6Wi41XXLAWPoo8FcDx6BH": {Mode: 0400, Data: []byte(statusHeader + "kept")},
+ "status/xoIGLemzLF227e-w_AJcf_1Sgqh2gs3KFgqvOIWUQE-9P_y2vHBMBytL4GRGQqTb": {Mode: 0400, Data: []byte(statusHeader + "kept")},
"substitute": {Mode: fs.ModeDir | 0700},
"substitute/4bjS-QjGcSV4nth-W6Vg3-wolKmKgiq4Ld2oRIWcOfy6Wi41XXLAWPoo8FcDx6BH": {Mode: fs.ModeSymlink | 0777, Data: []byte("../checksum/CyDnDvF-LaeGPcSW70tPosNCoclByWkTjznUUF1DcgzlIwkN9yzz1ZFME1TlPj6W")},
@@ -214,13 +222,6 @@ func TestClean(t *testing.T) {
deps: []pkg.Artifact{
pkg.NewFile("destroyed-input", []byte("destroyed")),
},
- cure: func(f *pkg.FContext) error {
- p := f.GetWorkDir()
- if err := os.MkdirAll(p.String(), 0755); err != nil {
- return err
- }
- return os.WriteFile(p.Append("result").String(), nil, 0444)
- },
}),
}, []unique.Handle[pkg.Checksum]{
unique.Make(expectsFS{