diff options
Diffstat (limited to 'internal/pkg/pkg_test.go')
| -rw-r--r-- | internal/pkg/pkg_test.go | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/internal/pkg/pkg_test.go b/internal/pkg/pkg_test.go index 7e22aa6f..586385b1 100644 --- a/internal/pkg/pkg_test.go +++ b/internal/pkg/pkg_test.go @@ -28,6 +28,15 @@ import ( "hakurei.app/message" ) +//go:linkname unsafeOpen hakurei.app/internal/pkg.open +func unsafeOpen( + ctx context.Context, + msg message.Msg, + cures int, + base *check.Absolute, + lock bool, +) (*pkg.Cache, error) + func TestMain(m *testing.M) { container.TryArgv0(nil); os.Exit(m.Run()) } // overrideIdent overrides the ID method of [Artifact]. @@ -213,7 +222,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.New(t.Context(), msg, 0, a); err != nil { + } else if cache, err = pkg.Open(t.Context(), msg, 0, a); err != nil { t.Fatal(err) } t.Cleanup(cache.Close) @@ -274,8 +283,8 @@ func checkWithCache(t *testing.T, testCases []cacheTestCase) { msg.SwapVerbose(testing.Verbose()) var scrubFunc func() error // scrub after hashing - if c, err := pkg.New(t.Context(), msg, 0, base); err != nil { - t.Fatalf("New: error = %v", err) + if c, err := pkg.Open(t.Context(), msg, 0, base); err != nil { + t.Fatalf("Open: error = %v", err) } else { t.Cleanup(c.Close) if tc.early != nil { @@ -294,6 +303,11 @@ func checkWithCache(t *testing.T, testCases []cacheTestCase) { restoreTemp = true } + // destroy lock file to avoid changing cache checksums + if err := os.Remove(base.Append("lock").String()); err != nil { + t.Fatal(err) + } + var checksum pkg.Checksum if err := pkg.HashDir(&checksum, base); err != nil { t.Fatalf("HashDir: error = %v", err) @@ -522,12 +536,12 @@ func TestCache(t *testing.T) { )}, }) - if c0, err := pkg.New( + if c0, err := unsafeOpen( t.Context(), message.New(nil), - 0, base, + 0, base, false, ); err != nil { - t.Fatalf("New: error = %v", err) + t.Fatalf("open: error = %v", err) } else { t.Cleanup(c.Close) // check doubled cancel cureMany(t, c0, []cureStep{ @@ -1017,12 +1031,12 @@ func TestNew(t *testing.T) { Path: container.Nonexistent, Err: syscall.ENOENT, } - if _, err := pkg.New( + if _, err := pkg.Open( t.Context(), message.New(nil), 0, check.MustAbs(container.Nonexistent), ); !reflect.DeepEqual(err, wantErr) { - t.Errorf("New: error = %#v, want %#v", err, wantErr) + t.Errorf("Open: error = %#v, want %#v", err, wantErr) } }) @@ -1045,12 +1059,12 @@ func TestNew(t *testing.T) { Path: tempDir.Append("cache").String(), Err: syscall.EACCES, } - if _, err := pkg.New( + if _, err := pkg.Open( t.Context(), message.New(nil), 0, tempDir.Append("cache"), ); !reflect.DeepEqual(err, wantErr) { - t.Errorf("New: error = %#v, want %#v", err, wantErr) + t.Errorf("Open: error = %#v, want %#v", err, wantErr) } }) } |
