mirror of
https://github.com/golang/go
synced 2024-10-05 06:11:21 -06:00
8c30b3f038
The test for issue 3590 causes an error to be printed to stderr when run (although the error is obscured during go test std). This is confusing for people who get breakage in the net package as the error is harmless and most likely unrelated to their build breakage. Given the way the test works, by reaching into the guts of the netFD, I can't see a way to silence the error without adding a bunch of code to support the test, therefore I am suggesting the test be removed before Go 1.1 ships. R=alex.brainman, mikioh.mikioh, rsc CC=golang-dev https://golang.org/cl/7307110
59 lines
2.0 KiB
Go
59 lines
2.0 KiB
Go
// Copyright 2012 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 freebsd linux netbsd openbsd
|
|
|
|
package net
|
|
|
|
import (
|
|
"io"
|
|
"syscall"
|
|
"testing"
|
|
)
|
|
|
|
var chkReadErrTests = []struct {
|
|
n int
|
|
err error
|
|
fd *netFD
|
|
expected error
|
|
}{
|
|
|
|
{100, nil, &netFD{sotype: syscall.SOCK_STREAM}, nil},
|
|
{100, io.EOF, &netFD{sotype: syscall.SOCK_STREAM}, io.EOF},
|
|
{100, errClosing, &netFD{sotype: syscall.SOCK_STREAM}, errClosing},
|
|
{0, nil, &netFD{sotype: syscall.SOCK_STREAM}, io.EOF},
|
|
{0, io.EOF, &netFD{sotype: syscall.SOCK_STREAM}, io.EOF},
|
|
{0, errClosing, &netFD{sotype: syscall.SOCK_STREAM}, errClosing},
|
|
|
|
{100, nil, &netFD{sotype: syscall.SOCK_DGRAM}, nil},
|
|
{100, io.EOF, &netFD{sotype: syscall.SOCK_DGRAM}, io.EOF},
|
|
{100, errClosing, &netFD{sotype: syscall.SOCK_DGRAM}, errClosing},
|
|
{0, nil, &netFD{sotype: syscall.SOCK_DGRAM}, nil},
|
|
{0, io.EOF, &netFD{sotype: syscall.SOCK_DGRAM}, io.EOF},
|
|
{0, errClosing, &netFD{sotype: syscall.SOCK_DGRAM}, errClosing},
|
|
|
|
{100, nil, &netFD{sotype: syscall.SOCK_SEQPACKET}, nil},
|
|
{100, io.EOF, &netFD{sotype: syscall.SOCK_SEQPACKET}, io.EOF},
|
|
{100, errClosing, &netFD{sotype: syscall.SOCK_SEQPACKET}, errClosing},
|
|
{0, nil, &netFD{sotype: syscall.SOCK_SEQPACKET}, io.EOF},
|
|
{0, io.EOF, &netFD{sotype: syscall.SOCK_SEQPACKET}, io.EOF},
|
|
{0, errClosing, &netFD{sotype: syscall.SOCK_SEQPACKET}, errClosing},
|
|
|
|
{100, nil, &netFD{sotype: syscall.SOCK_RAW}, nil},
|
|
{100, io.EOF, &netFD{sotype: syscall.SOCK_RAW}, io.EOF},
|
|
{100, errClosing, &netFD{sotype: syscall.SOCK_RAW}, errClosing},
|
|
{0, nil, &netFD{sotype: syscall.SOCK_RAW}, nil},
|
|
{0, io.EOF, &netFD{sotype: syscall.SOCK_RAW}, io.EOF},
|
|
{0, errClosing, &netFD{sotype: syscall.SOCK_RAW}, errClosing},
|
|
}
|
|
|
|
func TestChkReadErr(t *testing.T) {
|
|
for _, tt := range chkReadErrTests {
|
|
actual := chkReadErr(tt.n, tt.err, tt.fd)
|
|
if actual != tt.expected {
|
|
t.Errorf("chkReadError(%v, %v, %v): expected %v, actual %v", tt.n, tt.err, tt.fd.sotype, tt.expected, actual)
|
|
}
|
|
}
|
|
}
|