diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-07-09 09:30:56 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-07-09 09:34:27 +0900 |
| commit | 2f1534853a187018b94754e5ae2f009d7c2ae347 (patch) | |
| tree | 2ef558652e55a7f35eabf38a55140b2be0f8692d /internal/pkg/pkg_test.go | |
| parent | 3f8e111d1c96da034ea31846d46ae1fe4bf9f93c (diff) | |
internal/pkg: consolidate cache attributes
This makes the interface stable.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pkg/pkg_test.go')
| -rw-r--r-- | internal/pkg/pkg_test.go | 68 |
1 files changed, 33 insertions, 35 deletions
diff --git a/internal/pkg/pkg_test.go b/internal/pkg/pkg_test.go index ff51d583..a28578c3 100644 --- a/internal/pkg/pkg_test.go +++ b/internal/pkg/pkg_test.go @@ -35,14 +35,14 @@ import ( "hakurei.app/message" ) -//go:linkname unsafeOpen hakurei.app/internal/pkg.open -func unsafeOpen( - ctx context.Context, - msg message.Msg, - flags, cures, jobs int, - base *check.Absolute, - lock bool, -) (*pkg.Cache, error) +var skipLock = func() pkg.CacheAttr { + var attr pkg.CacheAttr + *(*bool)(unsafe.Pointer(reflect.ValueOf(&attr). + Elem(). + FieldByName("skipLock"). + UnsafeAddr())) = true + return attr +}() var ( // extension is a string uniquely identifying a set of custom [Artifact] @@ -339,7 +339,7 @@ func TestIdent(t *testing.T) { var cache *pkg.Cache if a, err := check.NewAbs(t.TempDir()); err != nil { t.Fatal(err) - } else if cache, err = pkg.Open(t.Context(), msg, 0, 0, 0, a); err != nil { + } else if cache, err = pkg.Open(t.Context(), msg, a, nil); err != nil { t.Fatal(err) } t.Cleanup(cache.Close) @@ -519,7 +519,10 @@ func checkWithCache(t *testing.T, testCases []cacheTestCase) { } var scrubFunc func() error // scrub after hashing - if c, err := pkg.Open(t.Context(), msg, flags, 1<<4, 0, base); err != nil { + if c, err := pkg.Open(t.Context(), msg, base, &pkg.CacheAttr{ + Cures: 1 << 4, + Flags: flags, + }); err != nil { t.Fatalf("Open: error = %v", err) } else { t.Cleanup(c.Close) @@ -867,10 +870,10 @@ func TestCache(t *testing.T) { }}, }) - if c0, err := unsafeOpen( + if c0, err := pkg.Open( t.Context(), message.New(nil), - 0, 0, 0, base, false, + base, &skipLock, ); err != nil { t.Fatalf("open: error = %v", err) } else { @@ -1141,10 +1144,10 @@ func TestCache(t *testing.T) { ), want, pkg.WSubstitute, nil}, }) - if c0, err := unsafeOpen( + if c0, err := pkg.Open( t.Context(), message.New(nil), - 0, 0, 0, base, false, + base, &skipLock, ); err != nil { t.Fatalf("open: error = %v", err) } else { @@ -2050,7 +2053,7 @@ func (a earlyFailureF) Cure(*pkg.FContext) error { func BenchmarkEarlyDCE(b *testing.B) { msg := message.New(log.New(os.Stderr, "dce: ", 0)) msg.SwapVerbose(testing.Verbose()) - c, err := pkg.Open(b.Context(), msg, 0, 0, 0, check.MustAbs(b.TempDir())) + c, err := pkg.Open(b.Context(), msg, check.MustAbs(b.TempDir()), nil) if err != nil { b.Fatal(err) } @@ -2099,7 +2102,8 @@ func TestOpen(t *testing.T) { if _, err := pkg.Open( t.Context(), message.New(nil), - 0, 0, 0, check.MustAbs(container.Nonexistent), + check.MustAbs(container.Nonexistent), + nil, ); !reflect.DeepEqual(err, wantErr) { t.Errorf("Open: error = %#v, want %#v", err, wantErr) } @@ -2127,7 +2131,8 @@ func TestOpen(t *testing.T) { if _, err := pkg.Open( t.Context(), message.New(nil), - 0, 0, 0, tempDir.Append("cache"), + tempDir.Append("cache"), + nil, ); !reflect.DeepEqual(err, wantErr) { t.Errorf("Open: error = %#v, want %#v", err, wantErr) } @@ -2149,7 +2154,8 @@ func TestOpen(t *testing.T) { if _, err := pkg.Open( t.Context(), message.New(nil), - 0, 0, 0, tempDir.Append("cache"), + tempDir.Append("cache"), + nil, ); !reflect.DeepEqual(err, wantErr) { t.Errorf("Open: error = %#v, want %#v", err, wantErr) } @@ -2170,7 +2176,7 @@ func TestOpen(t *testing.T) { if _, err := pkg.Open( t.Context(), message.New(nil), - 0, 0, 0, tempDir.Append("cache"), + tempDir.Append("cache"), nil, ); !reflect.DeepEqual(err, wantErr) { t.Errorf("Open: error = %#v, want %#v", err, wantErr) } @@ -2223,8 +2229,8 @@ func TestExtensionRegister(t *testing.T) { if _, err := pkg.Open( t.Context(), message.New(log.Default()), - 0, 0, 0, check.MustAbs(container.Nonexistent), + nil, ); !errors.Is(err, os.ErrNotExist) { t.Fatalf("Open: error = %v", err) } @@ -2262,7 +2268,7 @@ func TestExtensionRegister(t *testing.T) { pkg.Register(pkg.KindCustomOffset, nil) t.Cleanup(func() { opened = false }) - _, _ = pkg.Open(nil, nil, 0, 0, 0, nil) + _, _ = pkg.Open(nil, nil, nil, nil) panic("unreachable") }) @@ -2273,11 +2279,7 @@ func TestExtensionRegister(t *testing.T) { base := check.MustAbs(t.TempDir()) t.Cleanup(func() { opened = false }) - if c, err := pkg.Open( - t.Context(), nil, - 0, 0, 0, - base, - ); err != nil { + if c, err := pkg.Open(t.Context(), nil, base, nil); err != nil { t.Fatal(err) } else { c.Close() @@ -2305,8 +2307,7 @@ func TestExtensionRegister(t *testing.T) { } if _, err := pkg.Open( t.Context(), nil, - 0, 0, 0, - base, + base, nil, ); !reflect.DeepEqual(err, wantErr) { t.Fatalf("Open: error = %v, want %v", err, wantErr) } @@ -2327,8 +2328,8 @@ func TestExtensionRegister(t *testing.T) { if _, err := pkg.Open( t.Context(), nil, - 0, 0, 0, base, + nil, ); !reflect.DeepEqual(err, pkg.ErrWouldPromote) { t.Fatalf("Open: error = %v", err) } @@ -2341,8 +2342,7 @@ func TestExtensionRegister(t *testing.T) { if c, err := pkg.Open( t.Context(), nil, - pkg.CPromoteVariant, 0, 0, - base, + base, &pkg.CacheAttr{Flags: pkg.CPromoteVariant}, ); err != nil { t.Fatalf("Open: error = %v", err) } else { @@ -2367,8 +2367,7 @@ func TestExtensionRegister(t *testing.T) { if _, err := pkg.Open( t.Context(), nil, - 0, 0, 0, - base, + base, nil, ); !reflect.DeepEqual(err, pkg.ErrInvalidExtension) { t.Fatalf("Open: error = %v", err) } @@ -2385,8 +2384,7 @@ func TestExtensionRegister(t *testing.T) { if _, err := pkg.Open( t.Context(), nil, - 0, 0, 0, - base, + base, nil, ); !reflect.DeepEqual(err, pkg.UnsupportedVariantError("rosa")) { t.Fatalf("Open: error = %v", err) } |
