From b4e289961544fc90f340c908c3460ceae6a2202a Mon Sep 17 00:00:00 2001 From: Alex Brainman Date: Fri, 12 Jun 2015 11:39:23 +1000 Subject: [PATCH] x/sys/windows/svc/mgr: skip tests when we are not authorised to manage services It seems some Windows versions requires you to be an Administrator to manage services. Just google for "openscmanager access denied windows 2008" or similar. Fixes golang/go#11156. Change-Id: I4b09d244a61179ece7a1319234e5c3199423cbe9 Reviewed-on: https://go-review.googlesource.com/10933 Reviewed-by: Brad Fitzpatrick --- windows/svc/mgr/mgr_test.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/windows/svc/mgr/mgr_test.go b/windows/svc/mgr/mgr_test.go index deb9fac8..78be970c 100644 --- a/windows/svc/mgr/mgr_test.go +++ b/windows/svc/mgr/mgr_test.go @@ -11,6 +11,7 @@ import ( "path/filepath" "sort" "strings" + "syscall" "testing" "time" @@ -20,6 +21,9 @@ import ( func TestOpenLanManServer(t *testing.T) { m, err := mgr.Connect() if err != nil { + if errno, ok := err.(syscall.Errno); ok && errno == syscall.ERROR_ACCESS_DENIED { + t.Skip("Skipping test: we don't have rights to manage services.") + } t.Fatalf("SCM connection failed: %s", err) } defer m.Disconnect() @@ -107,6 +111,9 @@ func TestMyService(t *testing.T) { m, err := mgr.Connect() if err != nil { + if errno, ok := err.(syscall.Errno); ok && errno == syscall.ERROR_ACCESS_DENIED { + t.Skip("Skipping test: we don't have rights to manage services.") + } t.Fatalf("SCM connection failed: %s", err) } defer m.Disconnect()