From dcdaa6325bcb8d3c07805583fe12153f08a41e2b Mon Sep 17 00:00:00 2001 From: Jordan Rhee Date: Mon, 17 Dec 2018 14:01:34 -0800 Subject: [PATCH] windows: use netevent.dll in TestFormatMessage for windows/arm pdh.dll is not available on Windows IoT core. Use netevent.dll instead. Update golang/go#26148 Change-Id: I80c299ad030944954d5d7d182d91dc15e71341f9 Reviewed-on: https://go-review.googlesource.com/c/154560 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- windows/syscall_windows_test.go | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) diff --git a/windows/syscall_windows_test.go b/windows/syscall_windows_test.go index 0e27464e..539dda24 100644 --- a/windows/syscall_windows_test.go +++ b/windows/syscall_windows_test.go @@ -10,7 +10,6 @@ import ( "path/filepath" "syscall" "testing" - "unsafe" "golang.org/x/sys/windows" ) @@ -54,34 +53,14 @@ func TestWin32finddata(t *testing.T) { } func TestFormatMessage(t *testing.T) { - dll := windows.MustLoadDLL("pdh.dll") - - pdhOpenQuery := func(datasrc *uint16, userdata uint32, query *windows.Handle) (errno uintptr) { - r0, _, _ := syscall.Syscall(dll.MustFindProc("PdhOpenQueryW").Addr(), 3, uintptr(unsafe.Pointer(datasrc)), uintptr(userdata), uintptr(unsafe.Pointer(query))) - return r0 - } - - pdhCloseQuery := func(query windows.Handle) (errno uintptr) { - r0, _, _ := syscall.Syscall(dll.MustFindProc("PdhCloseQuery").Addr(), 1, uintptr(query), 0, 0) - return r0 - } - - var q windows.Handle - name, err := windows.UTF16PtrFromString("no_such_source") - if err != nil { - t.Fatal(err) - } - errno := pdhOpenQuery(name, 0, &q) - if errno == 0 { - pdhCloseQuery(q) - t.Fatal("PdhOpenQuery succeeded, but expected to fail.") - } + dll := windows.MustLoadDLL("netevent.dll") + const TITLE_SC_MESSAGE_BOX uint32 = 0xC0001B75 const flags uint32 = syscall.FORMAT_MESSAGE_FROM_HMODULE | syscall.FORMAT_MESSAGE_ARGUMENT_ARRAY | syscall.FORMAT_MESSAGE_IGNORE_INSERTS buf := make([]uint16, 300) - _, err = windows.FormatMessage(flags, uintptr(dll.Handle), uint32(errno), 0, buf, nil) + _, err := windows.FormatMessage(flags, uintptr(dll.Handle), TITLE_SC_MESSAGE_BOX, 0, buf, nil) if err != nil { - t.Fatalf("FormatMessage for handle=%x and errno=%x failed: %v", dll.Handle, errno, err) + t.Fatalf("FormatMessage for handle=%x and errno=%x failed: %v", dll.Handle, TITLE_SC_MESSAGE_BOX, err) } }