main_test.go 1.1 KB

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