mirror of https://github.com/golang/go.git
net: add Listen system call hook for testing
Change-Id: I63053c45081f47ba736720a78d85c31c13767891 Reviewed-on: https://go-review.googlesource.com/8642 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
130e3f9a32
commit
47515e0116
|
|
@ -15,6 +15,7 @@ var (
|
|||
socketFunc func(int, int, int) (int, error) = syscall.Socket
|
||||
closeFunc func(int) error = syscall.Close
|
||||
connectFunc func(int, syscall.Sockaddr) error = syscall.Connect
|
||||
listenFunc func(int, int) error = syscall.Listen
|
||||
acceptFunc func(int) (int, syscall.Sockaddr, error) = syscall.Accept
|
||||
getsockoptIntFunc func(int, int, int) (int, error) = syscall.GetsockoptInt
|
||||
)
|
||||
|
|
|
|||
|
|
@ -17,4 +17,5 @@ var (
|
|||
closeFunc func(syscall.Handle) error = syscall.Closesocket
|
||||
connectFunc func(syscall.Handle, syscall.Sockaddr) error = syscall.Connect
|
||||
connectExFunc func(syscall.Handle, syscall.Sockaddr, *byte, uint32, *uint32, *syscall.Overlapped) error = syscall.ConnectEx
|
||||
listenFunc func(syscall.Handle, int) error = syscall.Listen
|
||||
)
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ func printLeakedSockets() {
|
|||
}
|
||||
fmt.Fprintf(os.Stderr, "Leaked sockets:\n")
|
||||
for s, so := range sos {
|
||||
fmt.Fprintf(os.Stderr, "%v: %+v\n", s, so)
|
||||
fmt.Fprintf(os.Stderr, "%v: %v\n", s, so)
|
||||
}
|
||||
fmt.Fprintf(os.Stderr, "\n")
|
||||
}
|
||||
|
|
@ -154,7 +154,7 @@ func printSocketStats() {
|
|||
}
|
||||
fmt.Fprintf(os.Stderr, "Socket statistical information:\n")
|
||||
for _, st := range sts {
|
||||
fmt.Fprintf(os.Stderr, "%+v\n", st)
|
||||
fmt.Fprintf(os.Stderr, "%v\n", st)
|
||||
}
|
||||
fmt.Fprintf(os.Stderr, "\n")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ var (
|
|||
origSocket = socketFunc
|
||||
origClose = closeFunc
|
||||
origConnect = connectFunc
|
||||
origListen = listenFunc
|
||||
origAccept = acceptFunc
|
||||
origGetsockoptInt = getsockoptIntFunc
|
||||
|
||||
|
|
@ -22,6 +23,7 @@ func installTestHooks() {
|
|||
socketFunc = sw.Socket
|
||||
closeFunc = sw.Close
|
||||
connectFunc = sw.Connect
|
||||
listenFunc = sw.Listen
|
||||
acceptFunc = sw.Accept
|
||||
getsockoptIntFunc = sw.GetsockoptInt
|
||||
|
||||
|
|
@ -34,6 +36,7 @@ func uninstallTestHooks() {
|
|||
socketFunc = origSocket
|
||||
closeFunc = origClose
|
||||
connectFunc = origConnect
|
||||
listenFunc = origListen
|
||||
acceptFunc = origAccept
|
||||
getsockoptIntFunc = origGetsockoptInt
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ var (
|
|||
origClosesocket = closeFunc
|
||||
origConnect = connectFunc
|
||||
origConnectEx = connectExFunc
|
||||
origListen = listenFunc
|
||||
)
|
||||
|
||||
func installTestHooks() {
|
||||
|
|
@ -17,6 +18,7 @@ func installTestHooks() {
|
|||
closeFunc = sw.Closesocket
|
||||
connectFunc = sw.Connect
|
||||
connectExFunc = sw.ConnectEx
|
||||
listenFunc = sw.Listen
|
||||
}
|
||||
|
||||
func uninstallTestHooks() {
|
||||
|
|
@ -24,6 +26,7 @@ func uninstallTestHooks() {
|
|||
closeFunc = origClosesocket
|
||||
connectFunc = origConnect
|
||||
connectExFunc = origConnectEx
|
||||
listenFunc = origListen
|
||||
}
|
||||
|
||||
func forceCloseSockets() {
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ func (fd *netFD) listenStream(laddr sockaddr, backlog int) error {
|
|||
return os.NewSyscallError("bind", err)
|
||||
}
|
||||
}
|
||||
if err := syscall.Listen(fd.sysfd, backlog); err != nil {
|
||||
if err := listenFunc(fd.sysfd, backlog); err != nil {
|
||||
return os.NewSyscallError("listen", err)
|
||||
}
|
||||
if err := fd.init(); err != nil {
|
||||
|
|
|
|||
Loading…
Reference in New Issue