main_test.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package networking
  2. import (
  3. "context"
  4. "os"
  5. "strings"
  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/networking.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. }
  44. func setupTest(t *testing.T) context.Context {
  45. ctx := testutil.StartSpan(baseContext, t)
  46. environment.ProtectAll(ctx, t, testEnv)
  47. t.Cleanup(func() { testEnv.Clean(ctx, t) })
  48. return ctx
  49. }
  50. func sanitizeCtrName(name string) string {
  51. r := strings.NewReplacer("/", "-", "=", "-")
  52. return r.Replace(name)
  53. }