update gopls to go1.24 compatible version

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
Tonis Tiigi committed 2025-05-07 18:23:20 -07:00
1 parent 3e5d4dcdf8
commit 9fcedf9807
47 files changed
+59 -109

No files matched your search

-1
View File
@@ -70,7 +70,6 @@ func computeBlobChain(ctx context.Context, sr *immutableRef, createIfNeeded bool
switch sr.kind() {
case Merge:
for _, parent := range sr.mergeParents {
parent := parent
eg.Go(func() error {
return computeBlobChain(ctx, parent, createIfNeeded, comp, s, filter)
})
+2 -2
View File
@@ -569,8 +569,8 @@ func (cc *cacheContext) includedPaths(ctx context.Context, m *mount, p string, o
//
// When wildcards are enabled, this translation applies to the
// portion of 'p' before any wildcards.
if strings.HasPrefix(fn, resolvedPrefix) {
fn = origPrefix + strings.TrimPrefix(fn, resolvedPrefix)
if after, ok := strings.CutPrefix(fn, resolvedPrefix); ok {
fn = origPrefix + after
}
for len(parentDirHeaders) != 0 {
-1
View File
@@ -104,7 +104,6 @@ func TestRootPathSymlinks(t *testing.T) {
{"link3/link1/../link1/final", true, "/target"}, // link3/target2
{"link3/link1/../link1/final", false, "/link1/final"}, // link3/target2
} {
test := test // capture range variable
t.Run(fmt.Sprintf("resolve(%q,followTrailing=%v)", test.path, test.followTrailing), func(t *testing.T) {
t.Parallel()
+1 -2
View File
@@ -49,8 +49,7 @@ func v1TarHeaderSelect(h *tar.Header) (orderedHeaders [][2]string) {
// Get extended attributes.
xAttrKeys := make([]string, 0, len(h.PAXRecords))
for k := range pax {
if strings.HasPrefix(k, "SCHILY.xattr.") {
k = strings.TrimPrefix(k, "SCHILY.xattr.")
if k, ok := strings.CutPrefix(k, "SCHILY.xattr."); ok {
if k == "security.capability" || !strings.HasPrefix(k, "security.") && !strings.HasPrefix(k, "system.") {
xAttrKeys = append(xAttrKeys, k)
}
-3
View File
@@ -1731,7 +1731,6 @@ func TestGetRemotes(t *testing.T) {
for _, ir := range refs {
ir := ir.(*immutableRef)
for _, compressionType := range []compression.Type{compression.Uncompressed, compression.Gzip, compression.EStargz, compression.Zstd} {
compressionType := compressionType
refCfg := config.RefConfig{Compression: compression.New(compressionType).SetForce(true)}
eg.Go(func() error {
remotes, err := ir.GetRemotes(egctx, true, refCfg, false, nil)
@@ -1820,7 +1819,6 @@ func TestGetRemotes(t *testing.T) {
variantsMapMu.Unlock()
require.True(t, ok, ir.ID())
for _, compressionType := range []compression.Type{compression.Uncompressed, compression.Gzip, compression.EStargz, compression.Zstd} {
compressionType := compressionType
refCfg := config.RefConfig{Compression: compression.New(compressionType)}
eg.Go(func() error {
remotes, err := ir.GetRemotes(egctx, false, refCfg, true, nil)
@@ -1877,7 +1875,6 @@ func checkVariantsCoverage(ctx context.Context, t *testing.T, variants idxToVari
// check the lowers as well
eg, egctx := errgroup.WithContext(ctx)
for _, lowers := range got {
lowers := lowers
eg.Go(func() error {
checkVariantsCoverage(egctx, t, variants, idx-1, lowers, nil) // expect all compression variants
return nil
+4 -6
View File
@@ -1026,7 +1026,6 @@ func (sr *immutableRef) Extract(ctx context.Context, s session.Group) (rerr erro
func (sr *immutableRef) withRemoteSnapshotLabelsStargzMode(ctx context.Context, s session.Group, f func()) error {
dhs := sr.descHandlers
for _, r := range sr.layerChain() {
r := r
info, err := r.cm.Snapshotter.Stat(ctx, r.getSnapshotID())
if err != nil && !cerrdefs.IsNotFound(err) {
return err
@@ -1069,7 +1068,6 @@ func (sr *immutableRef) prepareRemoteSnapshotsStargzMode(ctx context.Context, s
_, err := g.Do(ctx, sr.ID()+"-prepare-remote-snapshot", func(ctx context.Context) (_ *leaseutil.LeaseRef, rerr error) {
dhs := sr.descHandlers
for _, r := range sr.layerChain() {
r := r
snapshotID := r.getSnapshotID()
if _, err := r.cm.Snapshotter.Stat(ctx, snapshotID); err == nil {
continue
@@ -1635,16 +1633,16 @@ func readonlyOverlay(opt []string) []string {
out := make([]string, 0, len(opt))
upper := ""
for _, o := range opt {
if strings.HasPrefix(o, "upperdir=") {
upper = strings.TrimPrefix(o, "upperdir=")
if after, ok := strings.CutPrefix(o, "upperdir="); ok {
upper = after
} else if !strings.HasPrefix(o, "workdir=") {
out = append(out, o)
}
}
if upper != "" {
for i, o := range out {
if strings.HasPrefix(o, "lowerdir=") {
out[i] = "lowerdir=" + upper + ":" + strings.TrimPrefix(o, "lowerdir=")
if after, ok := strings.CutPrefix(o, "lowerdir="); ok {
out[i] = "lowerdir=" + upper + ":" + after
}
}
}
-2
View File
@@ -121,7 +121,6 @@ func getAvailableBlobs(ctx context.Context, cs content.Store, chain *solver.Remo
}
var res []*solver.Remote
for _, desc := range descs {
desc := desc
if len(parents) == 0 { // bottommost ref
res = append(res, &solver.Remote{
Descriptors: []ocispecs.Descriptor{desc},
@@ -277,7 +276,6 @@ func (mp *lazyMultiProvider) Info(ctx context.Context, dgst digest.Digest) (cont
func (mp *lazyMultiProvider) Unlazy(ctx context.Context) error {
eg, egctx := errgroup.WithContext(ctx)
for _, p := range mp.plist {
p := p
eg.Go(func() error {
return p.Unlazy(egctx)
})
+4 -4
View File
@@ -82,10 +82,10 @@ func testBasicGhaCacheImportExportExtraTimeout(t *testing.T, sb integration.Sand
scope := "buildkit-" + t.Name()
if ref := os.Getenv("GITHUB_REF"); ref != "" {
if strings.HasPrefix(ref, "refs/heads/") {
scope += "-" + strings.TrimPrefix(ref, "refs/heads/")
} else if strings.HasPrefix(ref, "refs/tags/") {
scope += "-" + strings.TrimPrefix(ref, "refs/tags/")
if after, ok := strings.CutPrefix(ref, "refs/heads/"); ok {
scope += "-" + after
} else if after, ok := strings.CutPrefix(ref, "refs/tags/"); ok {
scope += "-" + after
} else if strings.HasPrefix(ref, "refs/pull/") {
scope += "-pr" + strings.TrimPrefix(strings.TrimSuffix(strings.TrimSuffix(ref, "/head"), "/merge"), "refs/pull/")
}
-2
View File
@@ -1469,7 +1469,6 @@ func testClientGatewayExecError(t *testing.T, sb integration.Sandbox) {
}}
for _, tt := range tests {
tt := tt
t.Run(tt.Name, func(t *testing.T) {
def, err := tt.State.Marshal(ctx)
require.NoError(t, err)
@@ -1722,7 +1721,6 @@ func testClientGatewayExecFileActionError(t *testing.T, sb integration.Sandbox)
}}
for _, tt := range tests {
tt := tt
t.Run(tt.Name, func(t *testing.T) {
def, err := tt.State.Marshal(ctx)
require.NoError(t, err)
+2 -1
View File
@@ -151,7 +151,8 @@ func New(ctx context.Context, address string, opts ...ClientOpt) (*Client, error
gopts = append(gopts, grpc.WithStreamInterceptor(grpcerrors.StreamClientInterceptor))
gopts = append(gopts, customDialOptions...)
//nolint:staticcheck // ignore SA1019 NewClient has different behavior and needs to be tested
// ignore SA1019 NewClient has different behavior and needs to be tested
//nolint:staticcheck
conn, err := grpc.DialContext(ctx, address, gopts...)
if err != nil {
return nil, errors.Wrapf(err, "failed to dial %q . make sure buildkitd is running", address)
-8
View File
@@ -1306,15 +1306,12 @@ func testFrontendImageNaming(t *testing.T, sb integration.Sandbox) {
// A caller provided name takes precedence over one returned by the frontend. Iterate over both options.
for _, winner := range []string{"frontend", "caller"} {
winner := winner // capture loop variable.
// The double layer of `t.Run` here is required so
// that the inner-most tests (with the actual
// functionality) have definitely completed before the
// sandbox and registry cleanups (defered above) are run.
t.Run(winner, func(t *testing.T) {
for _, exp := range []string{ExporterOCI, ExporterDocker, ExporterImage} {
exp := exp // capture loop variable.
t.Run(exp, func(t *testing.T) {
destDir := t.TempDir()
@@ -4796,7 +4793,6 @@ func testPullZstdImage(t *testing.T, sb integration.Sandbox) {
integration.SkipOnPlatform(t, "windows")
workers.CheckFeatureCompat(t, sb, workers.FeatureDirectPush)
for _, ociMediaTypes := range []bool{true, false} {
ociMediaTypes := ociMediaTypes
t.Run(t.Name()+fmt.Sprintf("/ociMediaTypes=%t", ociMediaTypes), func(t *testing.T) {
c, err := New(sb.Context(), sb.Address())
require.NoError(t, err)
@@ -5888,7 +5884,6 @@ func testCacheExportIgnoreError(t *testing.T, sb integration.Sandbox) {
for _, ignoreError := range ignoreErrorValues {
ignoreErrStr := strconv.FormatBool(ignoreError)
for n, test := range tests {
n := n
require.Equal(t, 1, len(test.Exports))
require.Equal(t, 1, len(test.CacheExports))
require.NotEmpty(t, test.CacheExports[0].Attrs)
@@ -6464,9 +6459,7 @@ func testRegistryEmptyCacheExport(t *testing.T, sb integration.Sandbox) {
)
for _, ociMediaTypes := range []bool{true, false} {
ociMediaTypes := ociMediaTypes
for _, imageManifest := range []bool{true, false} {
imageManifest := imageManifest
if imageManifest && !ociMediaTypes {
// invalid configuration for remote cache
continue
@@ -11296,7 +11289,6 @@ func testSourcePolicy(t *testing.T, sb integration.Sandbox) {
},
}
for i, tc := range testCases {
tc := tc
t.Run(strconv.Itoa(i), func(t *testing.T) {
_, err = c.Build(sb.Context(), SolveOpt{SourcePolicy: tc.srcPol}, "", frontend, nil)
if tc.expectedErr == "" {
-2
View File
@@ -27,7 +27,6 @@ func TestDefinitionEquivalence(t *testing.T) {
{"platform constraint", Image("ref", LinuxArm64)},
{"mount", Image("busybox").Run(Shlex(`sh -c "echo foo > /out/foo"`)).AddMount("/out", Scratch())},
} {
tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
@@ -144,7 +143,6 @@ func TestDefinitionNil(t *testing.T) {
func testParallelWalk(ctx context.Context, out Output) error {
eg, egCtx := errgroup.WithContext(ctx)
for _, o := range out.Vertex(ctx, nil).Inputs() {
o := o
eg.Go(func() error {
return testParallelWalk(egCtx, o)
})
+2 -2
View File
@@ -229,8 +229,8 @@ func getenv(e solver.Edge, k string) (string, bool) {
env := toOp(e).GetExec().Meta.Env
k = k + "="
for _, e := range env {
if strings.HasPrefix(e, k) {
return strings.TrimPrefix(e, k), true
if after, ok := strings.CutPrefix(e, k); ok {
return after, true
}
}
return "", false
+1 -2
View File
@@ -402,8 +402,7 @@ func prepareSyncedFiles(def *llb.Definition, localMounts map[string]fsutil.FS) (
return nil, errors.Wrap(err, "failed to parse llb proto op")
}
if src := op.GetSource(); src != nil {
if strings.HasPrefix(src.Identifier, "local://") {
name := strings.TrimPrefix(src.Identifier, "local://")
if name, ok := strings.CutPrefix(src.Identifier, "local://"); ok {
mount, ok := localMounts[name]
if !ok {
return nil, errors.Errorf("local directory %s not enabled", name)
-1
View File
@@ -115,7 +115,6 @@ func TestWriteMetadataFile(t *testing.T) {
}
for _, tt := range cases {
tt := tt
t.Run(tt.name, func(t *testing.T) {
fname := path.Join(tmpdir, "metadata_"+tt.name)
require.NoError(t, writeMetadataFile(fname, tt.exporterResponse))
+4 -3
View File
@@ -366,7 +366,8 @@ func snapshotterFactory(commonRoot string, cfg config.OCIConfig, sm *session.Man
grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(defaults.DefaultMaxRecvMsgSize)),
grpc.WithDefaultCallOptions(grpc.MaxCallSendMsgSize(defaults.DefaultMaxSendMsgSize)),
}
//nolint:staticcheck // ignore SA1019 NewClient has different behavior and needs to be tested
// ignore SA1019 NewClient has different behavior and needs to be tested
//nolint:staticcheck
conn, err := grpc.Dial(dialer.DialAddress(address), gopts...)
if err != nil {
return nil, errors.Wrapf(err, "failed to dial %q", address)
@@ -487,8 +488,8 @@ func sourceWithSession(hosts docker.RegistryHosts, sm *session.Manager) sgzsourc
// to the snapshotter API. So, first, get all these IDs
var ids []string
for k := range labels {
if strings.HasPrefix(k, targetRefLabel+".") {
ids = append(ids, strings.TrimPrefix(k, targetRefLabel+"."))
if after, ok := strings.CutPrefix(k, targetRefLabel+"."); ok {
ids = append(ids, after)
}
}
+1 -2
View File
@@ -284,8 +284,7 @@ func getOSID() (string, error) {
scanner := bufio.NewScanner(file)
for scanner.Scan() {
line := scanner.Text()
if strings.HasPrefix(line, "ID=") {
id := strings.TrimPrefix(line, "ID=")
if id, ok := strings.CutPrefix(line, "ID="); ok {
return strings.Trim(id, `"`), nil // Remove potential quotes
}
}
-1
View File
@@ -103,7 +103,6 @@ func TestResolvConf(t *testing.T) {
}
for _, tt := range cases {
tt := tt
t.Run(tt.name, func(t *testing.T) {
ctx := context.Background()
tempDir := t.TempDir()
-1
View File
@@ -333,7 +333,6 @@ func (e *imageExporterInstance) Export(ctx context.Context, src *exporter.Source
}
eg, ctx := errgroup.WithContext(ctx)
for _, ref := range refs {
ref := ref
eg.Go(func() error {
remotes, err := ref.GetRemotes(ctx, false, e.opts.RefCfg, false, session.NewGroup(sessionID))
if err != nil {
-1
View File
@@ -235,7 +235,6 @@ func (e *imageExporterInstance) Export(ctx context.Context, src *exporter.Source
eg, egCtx := errgroup.WithContext(ctx)
mprovider := contentutil.NewMultiProvider(e.opt.ImageWriter.ContentStore())
for _, ref := range refs {
ref := ref
eg.Go(func() error {
remotes, err := ref.GetRemotes(egCtx, false, e.opts.RefCfg, false, session.NewGroup(sessionID))
if err != nil {
+2 -2
View File
@@ -32,8 +32,8 @@ func CaptureFrontendOpts[T comparable](m map[string]string, res *result.Result[T
req.Labels = map[string]string{}
for k, v := range m {
if strings.HasPrefix(k, labelsPrefix) {
req.Labels[strings.TrimPrefix(k, labelsPrefix)] = v
if after, ok := strings.CutPrefix(k, labelsPrefix); ok {
req.Labels[after] = v
}
}
req.Request = m[keyRequestID]
+4 -4
View File
@@ -43,12 +43,12 @@ func Validate(values map[string]map[string]string) (map[string]map[string]string
func Parse(values map[string]string) (map[string]map[string]string, error) {
attests := make(map[string]string)
for k, v := range values {
if strings.HasPrefix(k, "attest:") {
attests[strings.ToLower(strings.TrimPrefix(k, "attest:"))] = v
if after, ok := strings.CutPrefix(k, "attest:"); ok {
attests[strings.ToLower(after)] = v
continue
}
if strings.HasPrefix(k, "build-arg:BUILDKIT_ATTEST_") {
attests[strings.ToLower(strings.TrimPrefix(k, "build-arg:BUILDKIT_ATTEST_"))] = v
if after, ok := strings.CutPrefix(k, "build-arg:BUILDKIT_ATTEST_"); ok {
attests[strings.ToLower(after)] = v
continue
}
}
-1
View File
@@ -6993,7 +6993,6 @@ RUN reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Param
},
}
for _, tt := range cases {
tt := tt
t.Run(tt.name, func(t *testing.T) {
_, err = f.Solve(sb.Context(), c, client.SolveOpt{
FrontendAttrs: tt.attrs,
+2 -2
View File
@@ -831,8 +831,8 @@ func getComment(comments []string, name string) string {
return ""
}
for _, line := range comments {
if strings.HasPrefix(line, name+" ") {
return strings.TrimPrefix(line, name+" ")
if after, ok := strings.CutPrefix(line, name+" "); ok {
return after
}
}
return ""
@@ -153,7 +153,6 @@ func TestParseOptInterval(t *testing.T) {
func TestNilLinter(t *testing.T) {
for cmd := range command.Commands {
cmd := cmd
t.Run(cmd, func(t *testing.T) {
t.Parallel()
-1
View File
@@ -585,7 +585,6 @@ func TestProcessWithMatches(t *testing.T) {
}
for _, c := range tc {
c := c
t.Run(c.input, func(t *testing.T) {
result, err := shlex.ProcessWordWithMatches(c.input, envsFromMap(c.envs))
w := result.Result
+4 -4
View File
@@ -128,8 +128,8 @@ func parseSourceDateEpoch(v string) (*time.Time, error) {
func parseLocalSessionIDs(opt map[string]string) map[string]string {
m := map[string]string{}
for k, v := range opt {
if strings.HasPrefix(k, localSessionIDPrefix) {
m[strings.TrimPrefix(k, localSessionIDPrefix)] = v
if after, ok := strings.CutPrefix(k, localSessionIDPrefix); ok {
m[after] = v
}
}
return m
@@ -138,8 +138,8 @@ func parseLocalSessionIDs(opt map[string]string) map[string]string {
func filter(opt map[string]string, key string) map[string]string {
m := map[string]string{}
for k, v := range opt {
if strings.HasPrefix(k, key) {
m[strings.TrimPrefix(k, key)] = v
if after, ok := strings.CutPrefix(k, key); ok {
m[after] = v
}
}
return m
-2
View File
@@ -22,7 +22,6 @@ func (bc *Client) Build(ctx context.Context, fn BuildFunc) (*ResultBuilder, erro
targets := make([]*ocispecs.Platform, 0, len(bc.TargetPlatforms))
for _, p := range bc.TargetPlatforms {
p := p
targets = append(targets, &p)
}
if len(targets) == 0 {
@@ -106,7 +105,6 @@ func (rb *ResultBuilder) Finalize() (*client.Result, error) {
func (rb *ResultBuilder) EachPlatform(ctx context.Context, fn func(ctx context.Context, id string, p ocispecs.Platform) error) error {
eg, ctx := errgroup.WithContext(ctx)
for _, p := range rb.expPlatforms.Platforms {
p := p
eg.Go(func() error {
return fn(ctx, p.ID, p.Platform)
})
-2
View File
@@ -105,13 +105,11 @@ func NewContainer(ctx context.Context, cm cache.Manager, exec executor.Executor,
ctr.mounts = p.Mounts
for _, o := range p.OutputRefs {
o := o
ctr.cleanup = append(ctr.cleanup, func() error {
return o.Ref.Release(context.TODO())
})
}
for _, active := range p.Actives {
active := active
ctr.cleanup = append(ctr.cleanup, func() error {
return active.Ref.Release(context.TODO())
})
+2 -2
View File
@@ -91,8 +91,8 @@ type gatewayFrontend struct {
func filterPrefix(opts map[string]string, pfx string) map[string]string {
m := map[string]string{}
for k, v := range opts {
if strings.HasPrefix(k, pfx) {
m[strings.TrimPrefix(k, pfx)] = v
if after, ok := strings.CutPrefix(k, pfx); ok {
m[after] = v
}
}
return m
+3 -4
View File
@@ -6,10 +6,9 @@ ARG XX_VERSION=1.6.1
ARG PROTOLINT_VERSION=0.50.5
ARG GOLANGCI_LINT_VERSION=v2.1.5
ARG GOLANGCI_FROM_SOURCE=false
# v0.31 requires go1.24
ARG GOPLS_VERSION=v0.30.0
# GOPLS_ANALYZERS defines gopls analyzers to be run. disabled by default: deprecated unusedvariable simplifyrange
ARG GOPLS_ANALYZERS="embeddirective fillreturns hostport infertypeargs modernize nonewvars noresultvalues simplifycompositelit simplifyslice unusedparams yield"
ARG GOPLS_VERSION=v0.33.0
# GOPLS_ANALYZERS defines gopls analyzers to be run. disabled by default: deprecated simplifyrange unusedfunc unusedvariable
ARG GOPLS_ANALYZERS="embeddirective fillreturns infertypeargs maprange modernize nonewvars noresultvalues simplifycompositelit simplifyslice unusedparams yield"
FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS golang-base
FROM --platform=$BUILDPLATFORM yoheimuta/protolint:${PROTOLINT_VERSION} AS protolint-base
+2 -2
View File
@@ -336,8 +336,8 @@ func (sp *SyncTarget) DiffCopy(stream FileSend_DiffCopyServer) (err error) {
opts, _ := metadata.FromIncomingContext(stream.Context()) // if no metadata continue with empty object
md := map[string]string{}
for k, v := range opts {
if strings.HasPrefix(k, keyExporterMetaPrefix) {
md[strings.TrimPrefix(k, keyExporterMetaPrefix)] = strings.Join(v, ",")
if after, ok0 := strings.CutPrefix(k, keyExporterMetaPrefix); ok0 {
md[after] = strings.Join(v, ",")
}
}
wc, err := f(md)
+4 -4
View File
@@ -166,10 +166,10 @@ func applierFor(dest Mountable, tryCrossSnapshotLink, userxattr bool) (_ *applie
if overlay.IsOverlayMountType(mnt) {
for _, opt := range mnt.Options {
if strings.HasPrefix(opt, "upperdir=") {
a.root = strings.TrimPrefix(opt, "upperdir=")
} else if strings.HasPrefix(opt, "lowerdir=") {
a.lowerdirs = strings.Split(strings.TrimPrefix(opt, "lowerdir="), ":")
if after, ok := strings.CutPrefix(opt, "upperdir="); ok {
a.root = after
} else if after, ok := strings.CutPrefix(opt, "lowerdir="); ok {
a.lowerdirs = strings.Split(after, ":")
}
}
if a.root == "" {
-4
View File
@@ -106,7 +106,6 @@ func newSnapshotter(ctx context.Context, t *testing.T, snapshotterName string) (
func TestMerge(t *testing.T) {
for _, snName := range []string{"overlayfs", "native", "native-nohardlink"} {
snName := snName
t.Run(snName, func(t *testing.T) {
t.Parallel()
if snName == "overlayfs" {
@@ -310,7 +309,6 @@ func TestMerge(t *testing.T) {
func TestHardlinks(t *testing.T) {
for _, snName := range []string{"overlayfs", "native"} {
snName := snName
t.Run(snName, func(t *testing.T) {
t.Parallel()
if snName == "overlayfs" {
@@ -376,7 +374,6 @@ func TestHardlinks(t *testing.T) {
func TestMergeFileCapabilities(t *testing.T) {
requireRoot(t)
for _, snName := range []string{"overlayfs", "native", "native-nohardlink"} {
snName := snName
t.Run(snName, func(t *testing.T) {
t.Parallel()
@@ -410,7 +407,6 @@ func TestMergeFileCapabilities(t *testing.T) {
func TestUsage(t *testing.T) {
for _, snName := range []string{"overlayfs", "native", "native-nohardlink"} {
snName := snName
t.Run(snName, func(t *testing.T) {
t.Parallel()
if snName == "overlayfs" {
-1
View File
@@ -131,7 +131,6 @@ func (cm *combinedCacheManager) Records(ctx context.Context, ck *CacheKey) ([]*C
eg, _ := errgroup.WithContext(context.TODO())
for _, c := range cms {
c := c
eg.Go(func() error {
recs, err := c.Records(ctx, ck)
if err != nil {
-2
View File
@@ -107,7 +107,6 @@ func TestExecOpCacheMap(t *testing.T) {
ctx := context.Background()
for _, tc := range testCases {
tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
@@ -192,7 +191,6 @@ func TestExecOpContentCache(t *testing.T) {
ctx := context.Background()
for _, tc := range testCases {
tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
+3 -4
View File
@@ -736,7 +736,7 @@ func TestHugeGraph(t *testing.T) {
nodes := 1000
g, v := generateSubGraph(nodes)
// printGraph(g, "")
// PrintGraph(g, "")
g.Vertex.(*vertexSum).setupCallCounters()
res, err := j0.Build(ctx, g)
@@ -3925,12 +3925,11 @@ func (v *vertexSubBuild) Acquire(ctx context.Context) (ReleaseFunc, error) {
return func() {}, nil
}
//nolint:unused
func printGraph(e Edge, pfx string) {
func PrintGraph(e Edge, pfx string) {
name := e.Vertex.Name()
fmt.Printf("%s %d %s\n", pfx, e.Index, name)
for _, inp := range e.Vertex.Inputs() {
printGraph(inp, pfx+"-->")
PrintGraph(inp, pfx+"-->")
}
}
-1
View File
@@ -110,7 +110,6 @@ func TestNewGitIdentifier(t *testing.T) {
},
}
for _, tt := range tests {
tt := tt
t.Run(tt.url, func(t *testing.T) {
gi, err := NewGitIdentifier(tt.url)
require.NoError(t, err)
-1
View File
@@ -318,7 +318,6 @@ func TestMatch(t *testing.T) {
}
for _, tc := range cases {
tc := tc
t.Run(tc.name, func(t *testing.T) {
matches, err := match(&selectorCache{Selector: tc.src}, tc.ref, tc.attrs)
if !tc.xErr {
-1
View File
@@ -140,7 +140,6 @@ func TestParseGitRef(t *testing.T) {
},
}
for _, tt := range cases {
tt := tt
t.Run(tt.ref, func(t *testing.T) {
got, err := ParseGitRef(tt.ref)
if tt.expected == nil {
+4 -4
View File
@@ -86,10 +86,10 @@ func GetOverlayLayers(m mount.Mount) ([]string, error) {
var uFound bool
var l []string // l[0] = bottommost
for _, o := range m.Options {
if strings.HasPrefix(o, "upperdir=") {
u, uFound = strings.TrimPrefix(o, "upperdir="), true
} else if strings.HasPrefix(o, "lowerdir=") {
l = strings.Split(strings.TrimPrefix(o, "lowerdir="), ":")
if after, ok := strings.CutPrefix(o, "upperdir="); ok {
u, uFound = after, true
} else if after, ok := strings.CutPrefix(o, "lowerdir="); ok {
l = strings.Split(after, ":")
for i, j := 0, len(l)-1; i < j; i, j = i+1, j-1 {
l[i], l[j] = l[j], l[i] // make l[0] = bottommost
}
-2
View File
@@ -73,7 +73,6 @@ func TestRefToPURL(t *testing.T) {
}
for _, tc := range tcases {
tc := tc
t.Run(tc.ref, func(t *testing.T) {
purl, err := RefToPURL(packageurl.TypeDocker, tc.ref, tc.platform)
if tc.err {
@@ -138,7 +137,6 @@ func TestPURLToRef(t *testing.T) {
}
for _, tc := range tcases {
tc := tc
t.Run(tc.purl, func(t *testing.T) {
ref, platform, err := PURLToRef(tc.purl)
if tc.err {
+6 -6
View File
@@ -168,8 +168,8 @@ func Run(t *testing.T, testCases []Test, opt ...TestOpt) {
parts := strings.Split(filter, "/")
if len(parts) >= 2 {
const prefix = "slice="
if strings.HasPrefix(parts[1], prefix) {
conf := strings.TrimPrefix(parts[1], prefix)
if after, ok0 := strings.CutPrefix(parts[1], prefix); ok0 {
conf := after
offsetS, totalS, ok := strings.Cut(conf, "-")
if !ok {
t.Fatalf("invalid slice=%q", conf)
@@ -514,8 +514,8 @@ func prepareValueMatrix(tc testConf) []matrixValue {
func SkipOnPlatform(t *testing.T, goos string) {
skip := false
// support for negation
if strings.HasPrefix(goos, "!") {
goos = strings.TrimPrefix(goos, "!")
if after, ok := strings.CutPrefix(goos, "!"); ok {
goos = after
skip = runtime.GOOS != goos
} else {
skip = runtime.GOOS == goos
@@ -539,8 +539,8 @@ func UnixOrWindows[T any](unix, windows T) T {
func lookupTestFilter() (string, bool) {
const prefix = "-test.run="
for _, arg := range os.Args {
if strings.HasPrefix(arg, prefix) {
return strings.TrimPrefix(arg, prefix), true
if after, ok := strings.CutPrefix(arg, prefix); ok {
return after, true
}
}
return "", false
-1
View File
@@ -35,7 +35,6 @@ func TestRedactCredentials(t *testing.T) {
},
}
for _, tt := range cases {
tt := tt
t.Run(tt.name, func(t *testing.T) {
if g, w := RedactCredentials(tt.url), tt.want; g != w {
t.Fatalf("got: %q\nwant: %q", g, w)
+2 -2
View File
@@ -76,8 +76,8 @@ func (s *winApplier) Apply(ctx context.Context, desc ocispecs.Descriptor, mounts
}
rc2, discard := filter(rc, func(hdr *tar.Header) bool {
if strings.HasPrefix(hdr.Name, "Files/") {
hdr.Name = strings.TrimPrefix(hdr.Name, "Files/")
if after, ok := strings.CutPrefix(hdr.Name, "Files/"); ok {
hdr.Name = after
hdr.Linkname = strings.TrimPrefix(hdr.Linkname, "Files/")
// TODO: could convert the windows PAX headers to xattr here to reuse
// the original ones in diff for parent directories and file modifications
-1
View File
@@ -34,7 +34,6 @@ func TestUserAgent(t *testing.T) {
},
}
for _, tt := range cases {
tt := tt
t.Run(tt.name, func(t *testing.T) {
Version = tt.version
for pname, pver := range tt.products {
-1
View File
@@ -495,7 +495,6 @@ func (w *Worker) FromRemote(ctx context.Context, remote *solver.Remote) (ref cac
if len(remote.Descriptors) > 0 {
var eg errgroup.Group
for _, desc := range remote.Descriptors {
desc := desc
eg.Go(func() error {
if _, err := remote.Provider.Info(ctx, desc.Digest); err != nil {
return err