package service

import (
	"fmt"
	"os"
	"testing"

	"github.com/docker/docker/internal/test/environment"
)

var testEnv *environment.Execution

const dockerdBinary = "dockerd"

func TestMain(m *testing.M) {
	var err error
	testEnv, err = environment.New()
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}

	testEnv.Print()
	os.Exit(m.Run())
}

func setupTest(t *testing.T) func() {
	environment.ProtectImages(t, testEnv)
	return func() { testEnv.Clean(t) }
}
