main_test.go 1.2 KB

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