From: Reinhard Tartler <siretart@tauware.de>
Date: Wed, 7 Aug 2024 07:30:47 -0400
Subject: tolerate absence of 'netavark' binary in tests

---
 buildah_test.go   |  4 ++++
 commit_test.go    | 10 ++++++++++
 common_test.go    |  4 ++++
 convertcw_test.go |  4 ++++
 4 files changed, 22 insertions(+)

diff --git a/buildah_test.go b/buildah_test.go
index d79af99..cfaf521 100644
--- a/buildah_test.go
+++ b/buildah_test.go
@@ -4,6 +4,7 @@ import (
 	"context"
 	"flag"
 	"os"
+	"strings"
 	"testing"
 
 	imagetypes "github.com/containers/image/v5/types"
@@ -58,6 +59,9 @@ func TestOpenBuilderCommonBuildOpts(t *testing.T) {
 	require.NoError(t, err)
 	t.Cleanup(func() { _, err := store.Shutdown(true); assert.NoError(t, err) })
 	b, err := NewBuilder(ctx, store, BuilderOptions{})
+	if strings.Contains(err.Error(), "netavark") {
+		t.Skipf("Cannot execute, failed to construct builder: %v", err)
+	}
 	require.NoError(t, err)
 	require.NotNil(t, b.CommonBuildOpts)
 	b.CommonBuildOpts = nil
diff --git a/commit_test.go b/commit_test.go
index 8ea984d..a5bb6fe 100644
--- a/commit_test.go
+++ b/commit_test.go
@@ -9,6 +9,7 @@ import (
 	"io"
 	"os"
 	"path/filepath"
+	"strings"
 	"testing"
 	"time"
 
@@ -103,6 +104,9 @@ func TestCommitLinkedLayers(t *testing.T) {
 		SystemContext: &testSystemContext,
 	}
 	b, err := NewBuilder(ctx, store, builderOptions)
+	if strings.Contains(err.Error(), "netavark") {
+		t.Skipf("Skipping test: %v", err)
+	}
 	require.NoError(t, err, "creating builder")
 	b.SetCreatedBy(imageName(layerNumber))
 	firstFile := makeFile("file0", 0)
@@ -286,6 +290,9 @@ func TestCommitCompression(t *testing.T) {
 		SystemContext: &testSystemContext,
 	}
 	b, err := NewBuilder(ctx, store, builderOptions)
+	if strings.Contains(err.Error(), "netavark") {
+		t.Skipf("Skipping test: %v", err)
+	}
 	require.NoError(t, err, "creating builder")
 	payload := makeFile(t, "file0", 0)
 	b.SetCreatedBy("ADD file0 in /")
@@ -382,6 +389,9 @@ func TestCommitEmpty(t *testing.T) {
 		SystemContext: &testSystemContext,
 	}
 	b, err := NewBuilder(ctx, store, builderOptions)
+	if strings.Contains(err.Error(), "netavark") {
+		t.Skipf("Skipping test: %v", err)
+	}
 	require.NoError(t, err, "creating builder")
 
 	committedLayoutDir := t.TempDir()
diff --git a/common_test.go b/common_test.go
index d5565b9..4c2dddc 100644
--- a/common_test.go
+++ b/common_test.go
@@ -7,6 +7,7 @@ import (
 	"encoding/json"
 	"os"
 	"path/filepath"
+	"strings"
 	"testing"
 	"time"
 
@@ -145,6 +146,9 @@ func TestRetryCopyImage(t *testing.T) {
 		require.NoError(t, policyContext.Destroy(), "destroying policy context")
 	})
 	_, err = retryCopyImage(ctx, policyContext, destRef, srcRef, destRef, &cp.Options{}, 3, 1*time.Second)
+	if strings.Contains(err.Error(), "operation not permitted") {
+		t.Skipf("Skipping test: %v", err)
+	}
 	require.NoError(t, err, "copying image")
 	_, err = retryCopyImage(ctx, policyContext, destRef, srcRef, destRef, &cp.Options{}, 3, 1*time.Second)
 	require.NoError(t, err, "copying image")
diff --git a/convertcw_test.go b/convertcw_test.go
index 6deb347..f9ca28f 100644
--- a/convertcw_test.go
+++ b/convertcw_test.go
@@ -12,6 +12,7 @@ import (
 	"os"
 	"path/filepath"
 	"sync"
+	"strings"
 	"testing"
 
 	"github.com/containers/buildah/internal/mkcw"
@@ -125,6 +126,9 @@ func TestCWConvertImage(t *testing.T) {
 						return
 					}
 					if ignoreChainRetrievalErrors && ignoreAttestationErrors {
+						if strings.Contains(err.Error(), "netavark") {
+							t.Skipf("Test setup failed: %v", err)
+						}
 						assert.NoError(t, err)
 					}
 					if err != nil {
