diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-01-05 01:05:27 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-01-05 01:39:18 +0900 |
| commit | f3aa31e401e58ea20aa0c0fd09b55f237bbfb54a (patch) | |
| tree | 364b0e0400b8299e7c7b7a9dc1179539197717c2 /internal/pkg/pkg_test.go | |
| parent | 4da26681b58fb3afa9c2a297f159e6b325910e2d (diff) | |
internal/pkg: temporary scratch space for cure
This allows for more flexibility during implementation. The use case that required this was for expanding single directory tarballs.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pkg/pkg_test.go')
| -rw-r--r-- | internal/pkg/pkg_test.go | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/internal/pkg/pkg_test.go b/internal/pkg/pkg_test.go index edd5f07c..1c650f14 100644 --- a/internal/pkg/pkg_test.go +++ b/internal/pkg/pkg_test.go @@ -72,7 +72,7 @@ type stubArtifact struct { params []byte deps []pkg.Artifact - cure func(work *check.Absolute, loadData pkg.CacheDataFunc) error + cure func(work, temp *check.Absolute, loadData pkg.CacheDataFunc) error } func (a stubArtifact) Kind() pkg.Kind { return a.kind } @@ -80,10 +80,10 @@ func (a stubArtifact) Params() []byte { return a.params } func (a stubArtifact) Dependencies() []pkg.Artifact { return a.deps } func (a stubArtifact) Cure( - work *check.Absolute, + work, temp *check.Absolute, loadData pkg.CacheDataFunc, ) error { - return a.cure(work, loadData) + return a.cure(work, temp, loadData) } // A stubFile implements [File] with hardcoded behaviour. @@ -108,7 +108,7 @@ func newStubFile( kind, nil, nil, - func(work *check.Absolute, loadData pkg.CacheDataFunc) error { + func(*check.Absolute, *check.Absolute, pkg.CacheDataFunc) error { panic("unreachable") }, }}} @@ -375,7 +375,7 @@ func TestCache(t *testing.T) { binary.LittleEndian.AppendUint64(nil, pkg.TarGzip), overrideIdent{testdataChecksum, stubArtifact{}}, ) - makeSample := func(work *check.Absolute, _ pkg.CacheDataFunc) error { + makeSample := func(work, _ *check.Absolute, _ pkg.CacheDataFunc) error { if err := os.Mkdir(work.String(), 0700); err != nil { return err } @@ -476,14 +476,14 @@ func TestCache(t *testing.T) { {"cure fault", overrideIdent{pkg.ID{0xff, 0}, stubArtifact{ kind: pkg.KindTar, - cure: func(work *check.Absolute, _ pkg.CacheDataFunc) error { + cure: func(work, _ *check.Absolute, _ pkg.CacheDataFunc) error { return makeGarbage(work, stub.UniqueError(0xcafe)) }, }}, nil, pkg.Checksum{}, stub.UniqueError(0xcafe)}, {"checksum mismatch", overrideChecksum{pkg.Checksum{}, overrideIdent{pkg.ID{0xff, 1}, stubArtifact{ kind: pkg.KindTar, - cure: func(work *check.Absolute, _ pkg.CacheDataFunc) error { + cure: func(work, _ *check.Absolute, _ pkg.CacheDataFunc) error { return makeGarbage(work, nil) }, }}}, nil, pkg.Checksum{}, &pkg.ChecksumMismatchError{ @@ -503,7 +503,7 @@ func TestCache(t *testing.T) { {"loadData directory", overrideIdent{pkg.ID{0xff, 3}, stubArtifact{ kind: pkg.KindTar, - cure: func(work *check.Absolute, loadData pkg.CacheDataFunc) error { + cure: func(work, _ *check.Absolute, loadData pkg.CacheDataFunc) error { _, err := loadData(overrideChecksumFile{checksum: wantChecksum}) return err }, @@ -518,21 +518,21 @@ func TestCache(t *testing.T) { {"no output", overrideIdent{pkg.ID{0xff, 4}, stubArtifact{ kind: pkg.KindTar, - cure: func(work *check.Absolute, loadData pkg.CacheDataFunc) error { + cure: func(work, _ *check.Absolute, loadData pkg.CacheDataFunc) error { return nil }, }}, nil, pkg.Checksum{}, pkg.NoOutputError{}}, {"file output", overrideIdent{pkg.ID{0xff, 5}, stubArtifact{ kind: pkg.KindTar, - cure: func(work *check.Absolute, loadData pkg.CacheDataFunc) error { + cure: func(work, _ *check.Absolute, loadData pkg.CacheDataFunc) error { return os.WriteFile(work.String(), []byte{0}, 0400) }, }}, nil, pkg.Checksum{}, errors.New("non-file artifact produced regular file")}, {"symlink output", overrideIdent{pkg.ID{0xff, 6}, stubArtifact{ kind: pkg.KindTar, - cure: func(work *check.Absolute, loadData pkg.CacheDataFunc) error { + cure: func(work, _ *check.Absolute, loadData pkg.CacheDataFunc) error { return os.Symlink(work.String(), work.String()) }, }}, nil, pkg.Checksum{}, pkg.InvalidFileModeError( @@ -549,7 +549,7 @@ func TestCache(t *testing.T) { go func() { if _, _, err := c.Cure(overrideIdent{pkg.ID{0xff}, stubArtifact{ kind: pkg.KindTar, - cure: func(work *check.Absolute, loadData pkg.CacheDataFunc) error { + cure: func(work, _ *check.Absolute, loadData pkg.CacheDataFunc) error { close(ready) <-n return wantErr @@ -579,7 +579,7 @@ func TestCache(t *testing.T) { {"file output", overrideIdent{pkg.ID{0xff, 2}, stubArtifact{ kind: pkg.KindTar, - cure: func(work *check.Absolute, loadData pkg.CacheDataFunc) error { + cure: func(work, _ *check.Absolute, loadData pkg.CacheDataFunc) error { return os.WriteFile(work.String(), []byte{0}, 0400) }, }}, nil, pkg.Checksum{}, errors.New("non-file artifact produced regular file")}, |
