1 // Copyright 2018 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
10 "internal/syscall/windows/registry"
18 func isBuild17063() bool {
19 k
, err
:= registry
.OpenKey(registry
.LOCAL_MACHINE
, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry
.READ
)
25 s
, _
, err
:= k
.GetStringValue("CurrentBuild")
29 ver
, err
:= strconv
.Atoi(s
)
36 func TestUnixConnLocalWindows(t
*testing
.T
) {
37 switch runtime
.GOARCH
{
39 t
.Skip("not supported on windows/386, see golang.org/issue/27943")
41 t
.Skip("not supported on windows/arm, see golang.org/issue/28061")
47 handler
:= func(ls
*localServer
, ln Listener
) {}
48 for _
, laddr
:= range []string{"", testUnixAddr()} {
50 taddr
:= testUnixAddr()
51 ta
, err
:= ResolveUnixAddr("unix", taddr
)
55 ln
, err
:= ListenUnix("unix", ta
)
59 ls
, err
:= (&streamListener
{Listener
: ln
}).newLocalServer()
64 if err
:= ls
.buildup(handler
); err
!= nil {
68 la
, err
:= ResolveUnixAddr("unix", laddr
)
72 c
, err
:= DialUnix("unix", la
, ta
)
79 defer os
.Remove(laddr
)
82 if _
, err
:= c
.Write([]byte("UNIXCONN LOCAL AND REMOTE NAME TEST")); err
!= nil {
89 var connAddrs
= [3]struct{ got
, want Addr
}{
91 {c
.LocalAddr(), &UnixAddr
{Name
: laddr
, Net
: "unix"}},
94 for _
, ca
:= range connAddrs
{
95 if !reflect
.DeepEqual(ca
.got
, ca
.want
) {
96 t
.Fatalf("got %#v, expected %#v", ca
.got
, ca
.want
)