main_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package common // import "github.com/docker/docker/integration/plugin/common"
  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/attribute"
  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/plugin/common.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. testEnv.Print()
  29. ec := m.Run()
  30. if ec != 0 {
  31. span.SetStatus(codes.Error, "m.Run() returned non-zero exit code")
  32. }
  33. span.SetAttributes(attribute.Int("exit", ec))
  34. shutdown(ctx)
  35. os.Exit(ec)
  36. }
  37. func setupTest(t *testing.T) context.Context {
  38. ctx := testutil.StartSpan(baseContext, t)
  39. environment.ProtectAll(ctx, t, testEnv)
  40. t.Cleanup(func() {
  41. testEnv.Clean(ctx, t)
  42. })
  43. return ctx
  44. }