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