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  }