1
0
mirror of https://github.com/golang/go synced 2024-11-18 10:04:43 -07:00

net: add test for RawConn.Control on Windows

This is a followup to https://go-review.googlesource.com/37039.

Updates #19435.

Change-Id: Ia795bd5158d26effa56e897698208ccf73f9e0d2
Reviewed-on: https://go-review.googlesource.com/43693
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Mikio Hara 2017-05-19 19:03:35 +09:00
parent fd25fe60fa
commit 2d20ded584
3 changed files with 41 additions and 2 deletions

View File

@ -9,8 +9,11 @@ import (
"syscall"
)
// BUG(mikio): On NaCl, Plan 9 and Windows, the Control, Read and
// Write methods of syscall.RawConn are not implemented.
// BUG(mikio): On Windows, the Read and Write methods of
// syscall.RawConn are not implemented.
// BUG(mikio): On NaCl and Plan 9, the Control, Read and Write methods
// of syscall.RawConn are not implemented.
type rawConn struct {
fd *netFD

View File

@ -0,0 +1,36 @@
// Copyright 2017 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.
package net
import (
"syscall"
"testing"
)
func TestRawConn(t *testing.T) {
c, err := newLocalPacketListener("udp")
if err != nil {
t.Fatal(err)
}
defer c.Close()
cc, err := c.(*UDPConn).SyscallConn()
if err != nil {
t.Fatal(err)
}
var operr error
fn := func(s uintptr) {
operr = syscall.SetsockoptInt(syscall.Handle(s), syscall.SOL_SOCKET, syscall.SO_REUSEADDR, 1)
}
err = cc.Control(fn)
if err != nil || operr != nil {
t.Fatal(err, operr)
}
c.Close()
err = cc.Control(fn)
if err == nil {
t.Fatal("should fail")
}
}