Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 22 additions & 15 deletions cache/manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1728,12 +1728,15 @@ func TestGetRemotes(t *testing.T) {

// Call GetRemotes on all the refs
eg, egctx := errgroup.WithContext(ctx)
var testMu sync.RWMutex
for _, ir := range refs {
ir := ir.(*immutableRef)
for _, compressionType := range []compression.Type{compression.Uncompressed, compression.Gzip, compression.EStargz, compression.Zstd} {
refCfg := config.RefConfig{Compression: compression.New(compressionType).SetForce(true)}
eg.Go(func() error {
testMu.RLock()
remotes, err := ir.GetRemotes(egctx, true, refCfg, false, nil)
testMu.RUnlock()
require.NoError(t, err)
require.Equal(t, 1, len(remotes))
remote := remotes[0]
Expand Down Expand Up @@ -1770,22 +1773,26 @@ func TestGetRemotes(t *testing.T) {
variantsMap[ir.ID()][i][compressionType] = desc
variantsMapMu.Unlock()

r := refChain[i]
isLazy, err := r.isLazy(egctx)
require.NoError(t, err)
needs, err := compressionType.NeedsConversion(ctx, co.cs, desc)
require.NoError(t, err)
if needs {
require.False(t, isLazy, "layer %q requires conversion so it must be unlazied", desc.Digest)
}
bDesc, err := r.getBlobWithCompression(egctx, compressionType)
if isLazy {
require.Error(t, err)
} else {
func() {
testMu.Lock()
defer testMu.Unlock()
r := refChain[i]
isLazy, err := r.isLazy(egctx)
require.NoError(t, err)
checkDescriptor(ctx, t, co.cs, bDesc, compressionType)
require.Equal(t, desc.Digest, bDesc.Digest)
}
needs, err := compressionType.NeedsConversion(ctx, co.cs, desc)
require.NoError(t, err)
if needs {
require.False(t, isLazy, "layer %q requires conversion so it must be unlazied", desc.Digest)
}
bDesc, err := r.getBlobWithCompression(egctx, compressionType)
if isLazy {
require.Error(t, err)
} else {
require.NoError(t, err)
checkDescriptor(ctx, t, co.cs, bDesc, compressionType)
require.Equal(t, desc.Digest, bDesc.Digest)
}
}()
}
return nil
})
Expand Down