123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- //go:build windows
- package daemon // import "github.com/docker/docker/daemon"
- import (
- "strings"
- "testing"
- "golang.org/x/sys/windows/svc/mgr"
- )
- const existingService = "Power"
- func TestEnsureServicesExist(t *testing.T) {
- m, err := mgr.Connect()
- if err != nil {
- t.Fatal("failed to connect to service manager, this test needs admin")
- }
- defer m.Disconnect()
- s, err := m.OpenService(existingService)
- if err != nil {
- t.Fatalf("expected to find known inbox service %q, this test needs a known inbox service to run correctly", existingService)
- }
- defer s.Close()
- input := []string{existingService}
- err = ensureServicesInstalled(input)
- if err != nil {
- t.Fatalf("unexpected error for input %q: %q", input, err)
- }
- }
- func TestEnsureServicesExistErrors(t *testing.T) {
- m, err := mgr.Connect()
- if err != nil {
- t.Fatal("failed to connect to service manager, this test needs admin")
- }
- defer m.Disconnect()
- s, err := m.OpenService(existingService)
- if err != nil {
- t.Fatalf("expected to find known inbox service %q, this test needs a known inbox service to run correctly", existingService)
- }
- defer s.Close()
- for _, testcase := range []struct {
- input []string
- expectedError string
- }{
- {
- input: []string{"daemon_windows_test_fakeservice"},
- expectedError: "failed to open service daemon_windows_test_fakeservice",
- },
- {
- input: []string{"daemon_windows_test_fakeservice1", "daemon_windows_test_fakeservice2"},
- expectedError: "failed to open service daemon_windows_test_fakeservice1",
- },
- {
- input: []string{existingService, "daemon_windows_test_fakeservice"},
- expectedError: "failed to open service daemon_windows_test_fakeservice",
- },
- } {
- t.Run(strings.Join(testcase.input, ";"), func(t *testing.T) {
- err := ensureServicesInstalled(testcase.input)
- if err == nil {
- t.Fatalf("expected error for input %v", testcase.input)
- }
- if !strings.Contains(err.Error(), testcase.expectedError) {
- t.Fatalf("expected error %q to contain %q", err.Error(), testcase.expectedError)
- }
- })
- }
- }
|