Skip to content

Commit

Permalink
integration: split feature compat check for subtests
Browse files Browse the repository at this point in the history
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
  • Loading branch information
crazy-max committed Mar 14, 2023
1 parent 7f6cae2 commit 365598b
Showing 1 changed file with 70 additions and 20 deletions.
90 changes: 70 additions & 20 deletions client/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -974,7 +974,6 @@ func testSecurityModeErrors(t *testing.T, sb integration.Sandbox) {
}

func testFrontendImageNaming(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb, integration.FeatureOCIExporter, integration.FeatureDirectPush)
requiresLinux(t)
c, err := New(sb.Context(), sb.Address())
require.NoError(t, err)
Expand Down Expand Up @@ -1083,12 +1082,15 @@ func testFrontendImageNaming(t *testing.T, sb integration.Sandbox) {

switch exp {
case ExporterOCI:
integration.CheckFeatureCompat(t, sb, integration.FeatureOCIExporter)
t.Skip("oci exporter does not support named images")
case ExporterDocker:
integration.CheckFeatureCompat(t, sb, integration.FeatureOCIExporter)
outW, err := os.Create(out)
require.NoError(t, err)
so.Exports[0].Output = fixedWriteCloser(outW)
case ExporterImage:
integration.CheckFeatureCompat(t, sb, integration.FeatureDirectPush)
imageName = registry + "/" + imageName
so.Exports[0].Attrs["push"] = "true"
}
Expand Down Expand Up @@ -3747,7 +3749,11 @@ func testBuildPushAndValidate(t *testing.T, sb integration.Sandbox) {
}

func testStargzLazyRegistryCacheImportExport(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheExport, integration.FeatureCacheImport, integration.FeatureCacheBackendRegistry)
integration.CheckFeatureCompat(t, sb,
integration.FeatureCacheExport,
integration.FeatureCacheBackendRegistry,
integration.FeatureOCIExporter,
)
requiresLinux(t)
cdAddress := sb.ContainerdAddress()
if cdAddress == "" || sb.Snapshotter() != "stargz" {
Expand Down Expand Up @@ -3807,6 +3813,7 @@ func testStargzLazyRegistryCacheImportExport(t *testing.T, sb integration.Sandbo

// clear all local state out
ensurePruneAll(t, c, sb)
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheImport, integration.FeatureDirectPush)

// stargz layers should be lazy even for executing something on them
def, err = baseDef.
Expand Down Expand Up @@ -4456,12 +4463,7 @@ func testZstdLocalCacheExport(t *testing.T, sb integration.Sandbox) {
}

func testCacheExportIgnoreError(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb,
integration.FeatureCacheExport,
integration.FeatureCacheBackendS3,
integration.FeatureCacheBackendLocal,
integration.FeatureCacheBackendRegistry,
)
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheExport)
c, err := New(sb.Context(), sb.Address())
require.NoError(t, err)
defer c.Close()
Expand Down Expand Up @@ -4544,12 +4546,21 @@ 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)
test.CacheExports[0].Attrs["ignore-error"] = ignoreErrStr
testName := fmt.Sprintf("%s-%s", n, ignoreErrStr)
t.Run(testName, func(t *testing.T) {
switch n {
case "local-ignore-error":
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheBackendLocal)
case "registry-ignore-error":
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheBackendRegistry)
case "s3-ignore-error":
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheBackendS3)
}
_, err = c.Solve(sb.Context(), def, SolveOpt{
Exports: test.Exports,
CacheExports: test.CacheExports,
Expand All @@ -4568,7 +4579,11 @@ func testCacheExportIgnoreError(t *testing.T, sb integration.Sandbox) {
}

func testUncompressedLocalCacheImportExport(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheExport, integration.FeatureCacheImport, integration.FeatureCacheBackendLocal)
integration.CheckFeatureCompat(t, sb,
integration.FeatureCacheExport,
integration.FeatureCacheImport,
integration.FeatureCacheBackendLocal,
)
dir := t.TempDir()
im := CacheOptionsEntry{
Type: "local",
Expand All @@ -4588,7 +4603,11 @@ func testUncompressedLocalCacheImportExport(t *testing.T, sb integration.Sandbox
}

func testUncompressedRegistryCacheImportExport(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheExport, integration.FeatureCacheImport, integration.FeatureCacheBackendRegistry)
integration.CheckFeatureCompat(t, sb,
integration.FeatureCacheExport,
integration.FeatureCacheImport,
integration.FeatureCacheBackendRegistry,
)
registry, err := sb.NewRegistry()
if errors.Is(err, integration.ErrRequirements) {
t.Skip(err.Error())
Expand All @@ -4613,7 +4632,11 @@ func testUncompressedRegistryCacheImportExport(t *testing.T, sb integration.Sand
}

func testZstdLocalCacheImportExport(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheExport, integration.FeatureCacheImport, integration.FeatureCacheBackendLocal)
integration.CheckFeatureCompat(t, sb,
integration.FeatureCacheExport,
integration.FeatureCacheImport,
integration.FeatureCacheBackendLocal,
)
dir := t.TempDir()
im := CacheOptionsEntry{
Type: "local",
Expand All @@ -4634,7 +4657,11 @@ func testZstdLocalCacheImportExport(t *testing.T, sb integration.Sandbox) {
}

func testZstdRegistryCacheImportExport(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheExport, integration.FeatureCacheImport, integration.FeatureCacheBackendRegistry)
integration.CheckFeatureCompat(t, sb,
integration.FeatureCacheExport,
integration.FeatureCacheImport,
integration.FeatureCacheBackendRegistry,
)
registry, err := sb.NewRegistry()
if errors.Is(err, integration.ErrRequirements) {
t.Skip(err.Error())
Expand Down Expand Up @@ -4722,7 +4749,11 @@ func testBasicCacheImportExport(t *testing.T, sb integration.Sandbox, cacheOptio
}

func testBasicRegistryCacheImportExport(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheExport, integration.FeatureCacheImport, integration.FeatureCacheBackendRegistry)
integration.CheckFeatureCompat(t, sb,
integration.FeatureCacheExport,
integration.FeatureCacheImport,
integration.FeatureCacheBackendRegistry,
)
registry, err := sb.NewRegistry()
if errors.Is(err, integration.ErrRequirements) {
t.Skip(err.Error())
Expand All @@ -4739,7 +4770,11 @@ func testBasicRegistryCacheImportExport(t *testing.T, sb integration.Sandbox) {
}

func testMultipleRegistryCacheImportExport(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheExport, integration.FeatureCacheImport, integration.FeatureCacheBackendRegistry)
integration.CheckFeatureCompat(t, sb,
integration.FeatureCacheExport,
integration.FeatureCacheImport,
integration.FeatureCacheBackendRegistry,
)
registry, err := sb.NewRegistry()
if errors.Is(err, integration.ErrRequirements) {
t.Skip(err.Error())
Expand All @@ -4762,7 +4797,11 @@ func testMultipleRegistryCacheImportExport(t *testing.T, sb integration.Sandbox)
}

func testBasicLocalCacheImportExport(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheExport, integration.FeatureCacheImport, integration.FeatureCacheBackendLocal)
integration.CheckFeatureCompat(t, sb,
integration.FeatureCacheExport,
integration.FeatureCacheImport,
integration.FeatureCacheBackendLocal,
)
dir := t.TempDir()
im := CacheOptionsEntry{
Type: "local",
Expand All @@ -4780,7 +4819,11 @@ func testBasicLocalCacheImportExport(t *testing.T, sb integration.Sandbox) {
}

func testBasicS3CacheImportExport(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheExport, integration.FeatureCacheImport, integration.FeatureCacheBackendS3)
integration.CheckFeatureCompat(t, sb,
integration.FeatureCacheExport,
integration.FeatureCacheImport,
integration.FeatureCacheBackendS3,
)

opts := integration.MinioOpts{
Region: "us-east-1",
Expand Down Expand Up @@ -4818,7 +4861,11 @@ func testBasicS3CacheImportExport(t *testing.T, sb integration.Sandbox) {
}

func testBasicAzblobCacheImportExport(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheExport, integration.FeatureCacheImport, integration.FeatureCacheBackendAzblob)
integration.CheckFeatureCompat(t, sb,
integration.FeatureCacheExport,
integration.FeatureCacheImport,
integration.FeatureCacheBackendAzblob,
)

opts := integration.AzuriteOpts{
AccountName: "azblobcacheaccount",
Expand Down Expand Up @@ -4854,9 +4901,7 @@ func testBasicInlineCacheImportExport(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb,
integration.FeatureDirectPush,
integration.FeatureCacheExport,
integration.FeatureCacheImport,
integration.FeatureCacheBackendInline,
integration.FeatureCacheBackendRegistry,
)
requiresLinux(t)
registry, err := sb.NewRegistry()
Expand Down Expand Up @@ -4909,6 +4954,7 @@ func testBasicInlineCacheImportExport(t *testing.T, sb integration.Sandbox) {
require.NoError(t, err)

ensurePruneAll(t, c, sb)
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheImport, integration.FeatureCacheBackendRegistry)

resp, err = c.Solve(sb.Context(), def, SolveOpt{
// specifying inline cache exporter is needed for reproducing containerimage.digest
Expand Down Expand Up @@ -5017,7 +5063,11 @@ func testBasicInlineCacheImportExport(t *testing.T, sb integration.Sandbox) {
}

func testBasicGhaCacheImportExport(t *testing.T, sb integration.Sandbox) {
integration.CheckFeatureCompat(t, sb, integration.FeatureCacheExport, integration.FeatureCacheImport, integration.FeatureCacheBackendGha)
integration.CheckFeatureCompat(t, sb,
integration.FeatureCacheExport,
integration.FeatureCacheImport,
integration.FeatureCacheBackendGha,
)
runtimeToken := os.Getenv("ACTIONS_RUNTIME_TOKEN")
cacheURL := os.Getenv("ACTIONS_CACHE_URL")
if runtimeToken == "" || cacheURL == "" {
Expand Down

0 comments on commit 365598b

Please sign in to comment.