|
@@ -0,0 +1,62 @@
|
|
|
+package networking
|
|
|
+
|
|
|
+import (
|
|
|
+ "context"
|
|
|
+ "os"
|
|
|
+ "strings"
|
|
|
+ "testing"
|
|
|
+
|
|
|
+ "github.com/docker/docker/testutil"
|
|
|
+ "github.com/docker/docker/testutil/environment"
|
|
|
+ "go.opentelemetry.io/otel"
|
|
|
+ "go.opentelemetry.io/otel/codes"
|
|
|
+)
|
|
|
+
|
|
|
+var (
|
|
|
+ testEnv *environment.Execution
|
|
|
+ baseContext context.Context
|
|
|
+)
|
|
|
+
|
|
|
+func TestMain(m *testing.M) {
|
|
|
+ shutdown := testutil.ConfigureTracing()
|
|
|
+ ctx, span := otel.Tracer("").Start(context.Background(), "integration/networking.TestMain")
|
|
|
+ baseContext = ctx
|
|
|
+
|
|
|
+ var err error
|
|
|
+ testEnv, err = environment.New(ctx)
|
|
|
+ if err != nil {
|
|
|
+ span.SetStatus(codes.Error, err.Error())
|
|
|
+ span.End()
|
|
|
+ shutdown(ctx)
|
|
|
+ panic(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ err = environment.EnsureFrozenImagesLinux(ctx, testEnv)
|
|
|
+ if err != nil {
|
|
|
+ span.SetStatus(codes.Error, err.Error())
|
|
|
+ span.End()
|
|
|
+ shutdown(ctx)
|
|
|
+ panic(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ testEnv.Print()
|
|
|
+ code := m.Run()
|
|
|
+ if code != 0 {
|
|
|
+ span.SetStatus(codes.Error, "m.Run() returned non-zero exit code")
|
|
|
+ }
|
|
|
+ span.End()
|
|
|
+ shutdown(ctx)
|
|
|
+ os.Exit(code)
|
|
|
+}
|
|
|
+
|
|
|
+func setupTest(t *testing.T) context.Context {
|
|
|
+ ctx := testutil.StartSpan(baseContext, t)
|
|
|
+ environment.ProtectAll(ctx, t, testEnv)
|
|
|
+ t.Cleanup(func() { testEnv.Clean(ctx, t) })
|
|
|
+ return ctx
|
|
|
+}
|
|
|
+
|
|
|
+func sanitizeCtrName(name string) string {
|
|
|
+ r := strings.NewReplacer("/", "-", "=", "-")
|
|
|
+ return r.Replace(name)
|
|
|
+}
|