main_test.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //go:build !windows
  2. package ipvlan // import "github.com/docker/docker/integration/network/ipvlan"
  3. import (
  4. "context"
  5. "os"
  6. "testing"
  7. "github.com/docker/docker/testutil"
  8. "github.com/docker/docker/testutil/environment"
  9. "go.opentelemetry.io/otel"
  10. "go.opentelemetry.io/otel/codes"
  11. )
  12. var (
  13. testEnv *environment.Execution
  14. baseContext context.Context
  15. )
  16. func TestMain(m *testing.M) {
  17. shutdown := testutil.ConfigureTracing()
  18. ctx, span := otel.Tracer("").Start(context.Background(), "integration/network/ipvlan/TestMain")
  19. baseContext = ctx
  20. var err error
  21. testEnv, err = environment.New(ctx)
  22. if err != nil {
  23. span.SetStatus(codes.Error, err.Error())
  24. span.End()
  25. shutdown(ctx)
  26. panic(err)
  27. }
  28. err = environment.EnsureFrozenImagesLinux(ctx, testEnv)
  29. if err != nil {
  30. span.SetStatus(codes.Error, err.Error())
  31. span.End()
  32. shutdown(ctx)
  33. panic(err)
  34. }
  35. testEnv.Print()
  36. code := m.Run()
  37. if code != 0 {
  38. span.SetStatus(codes.Error, "m.Run() returned non-zero exit code")
  39. }
  40. span.End()
  41. shutdown(ctx)
  42. os.Exit(code)
  43. }