...
Run Format

Source file src/net/main_unix_test.go

Documentation: net

  // Copyright 2015 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  // +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris
  
  package net
  
  import "internal/poll"
  
  var (
  	// Placeholders for saving original socket system calls.
  	origSocket        = socketFunc
  	origClose         = poll.CloseFunc
  	origConnect       = connectFunc
  	origListen        = listenFunc
  	origAccept        = poll.AcceptFunc
  	origGetsockoptInt = getsockoptIntFunc
  
  	extraTestHookInstallers   []func()
  	extraTestHookUninstallers []func()
  )
  
  func installTestHooks() {
  	socketFunc = sw.Socket
  	poll.CloseFunc = sw.Close
  	connectFunc = sw.Connect
  	listenFunc = sw.Listen
  	poll.AcceptFunc = sw.Accept
  	getsockoptIntFunc = sw.GetsockoptInt
  
  	for _, fn := range extraTestHookInstallers {
  		fn()
  	}
  }
  
  func uninstallTestHooks() {
  	socketFunc = origSocket
  	poll.CloseFunc = origClose
  	connectFunc = origConnect
  	listenFunc = origListen
  	poll.AcceptFunc = origAccept
  	getsockoptIntFunc = origGetsockoptInt
  
  	for _, fn := range extraTestHookUninstallers {
  		fn()
  	}
  }
  
  // forceCloseSockets must be called only from TestMain.
  func forceCloseSockets() {
  	for s := range sw.Sockets() {
  		poll.CloseFunc(s)
  	}
  }
  

View as plain text