github.com/moby/docker@v26.1.3+incompatible/integration/networking/main_test.go (about) 1 package networking 2 3 import ( 4 "context" 5 "os" 6 "strings" 7 "testing" 8 9 "github.com/docker/docker/testutil" 10 "github.com/docker/docker/testutil/environment" 11 "go.opentelemetry.io/otel" 12 "go.opentelemetry.io/otel/codes" 13 ) 14 15 var ( 16 testEnv *environment.Execution 17 baseContext context.Context 18 ) 19 20 func TestMain(m *testing.M) { 21 shutdown := testutil.ConfigureTracing() 22 ctx, span := otel.Tracer("").Start(context.Background(), "integration/networking.TestMain") 23 baseContext = ctx 24 25 var err error 26 testEnv, err = environment.New(ctx) 27 if err != nil { 28 span.SetStatus(codes.Error, err.Error()) 29 span.End() 30 shutdown(ctx) 31 panic(err) 32 } 33 34 err = environment.EnsureFrozenImagesLinux(ctx, testEnv) 35 if err != nil { 36 span.SetStatus(codes.Error, err.Error()) 37 span.End() 38 shutdown(ctx) 39 panic(err) 40 } 41 42 testEnv.Print() 43 code := m.Run() 44 if code != 0 { 45 span.SetStatus(codes.Error, "m.Run() returned non-zero exit code") 46 } 47 span.End() 48 shutdown(ctx) 49 os.Exit(code) 50 } 51 52 func setupTest(t *testing.T) context.Context { 53 ctx := testutil.StartSpan(baseContext, t) 54 environment.ProtectAll(ctx, t, testEnv) 55 t.Cleanup(func() { testEnv.Clean(ctx, t) }) 56 return ctx 57 } 58 59 func sanitizeCtrName(name string) string { 60 r := strings.NewReplacer("/", "-", "=", "-") 61 return r.Replace(name) 62 }