ifeq ($(GOOS),windows)
NOTEST+=exec # no pipe
NOTEST+=log # no runtime.Caller
-NOTEST+=net # no network
NOTEST+=os # many things unimplemented
NOTEST+=os/signal # no signals
NOTEST+=path # tree walking does not work
"bufio"
"os"
"testing"
+ "runtime"
)
func TestReadLine(t *testing.T) {
+ // /etc/services file does not exist on windows.
+ if runtime.GOOS == "windows" {
+ return
+ }
filename := "/etc/services" // a nice big file
fd, err := os.Open(filename, os.O_RDONLY, 0)
portTest{"tcp", "chargen", 19, true},
portTest{"tcp", "ftp-data", 20, true},
portTest{"tcp", "ftp", 21, true},
- portTest{"tcp", "ssh", 22, true},
portTest{"tcp", "telnet", 23, true},
portTest{"tcp", "smtp", 25, true},
portTest{"tcp", "time", 37, true},
"strings"
"syscall"
"testing"
+ "runtime"
)
// Do not test empty datagrams by default.
}
func TestUnixServer(t *testing.T) {
+ // "unix" sockets are not supported on windows.
+ if runtime.GOOS == "windows" {
+ return
+ }
os.Remove("/tmp/gotest.net")
doTest(t, "unix", "/tmp/gotest.net", "/tmp/gotest.net")
os.Remove("/tmp/gotest.net")
}
func TestUnixDatagramServer(t *testing.T) {
+ // "unix" sockets are not supported on windows.
+ if runtime.GOOS == "windows" {
+ return
+ }
for _, isEmpty := range []bool{false} {
os.Remove("/tmp/gotest1.net")
os.Remove("/tmp/gotest1.net.local")
"os"
"testing"
"time"
+ "runtime"
)
func testTimeout(t *testing.T, network, addr string, readFrom bool) {
+ // Timeouts are not implemented on windows.
+ if runtime.GOOS == "windows" {
+ return
+ }
fd, err := Dial(network, "", addr)
if err != nil {
t.Errorf("dial %s %s failed: %v", network, addr, err)
//sys DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status uint32) = dnsapi.DnsQuery_W
//sys DnsRecordListFree(rl *DNSRecord, freetype uint32) = dnsapi.DnsRecordListFree
+// For testing: clients can set this flag to force
+// creation of IPv6 sockets to return EAFNOSUPPORT.
+var SocketDisableIPv6 bool
type RawSockaddrInet4 struct {
Family uint16
}
func Socket(domain, typ, proto int) (fd, errno int) {
+ if domain == AF_INET6 && SocketDisableIPv6 {
+ return -1, EAFNOSUPPORT
+ }
h, e := socket(int32(domain), int32(typ), int32(proto))
return int(h), int(e)
}