add test that fails on go1.10.*

This commit is contained in:
Song Gao 2019-03-31 14:57:04 -07:00
parent f7eb3ca99f
commit af2921498b
4 changed files with 20 additions and 9 deletions

View file

@ -32,12 +32,13 @@ func TestP2PTUN(t *testing.T) {
t.Fatalf("creating TUN error: %v\n", err) t.Fatalf("creating TUN error: %v\n", err)
} }
dataCh := make(chan []byte)
errCh := make(chan error)
startRead(t, ifce, dataCh, errCh)
setupIfce(t, self, remote, ifce.Name()) setupIfce(t, self, remote, ifce.Name())
startPing(t, remote) startPing(t, remote)
dataCh := make(chan []byte, 8)
startRead(dataCh, ifce)
timeout := time.NewTimer(8 * time.Second).C timeout := time.NewTimer(8 * time.Second).C
readFrame: readFrame:
@ -58,6 +59,8 @@ readFrame:
} }
t.Logf("received broadcast packet: %#v\n", packet) t.Logf("received broadcast packet: %#v\n", packet)
break readFrame break readFrame
case err := <-errCh:
t.Fatalf("read error: %v", err)
case <-timeout: case <-timeout:
t.Fatal("Waiting for broadcast packet timeout") t.Fatal("Waiting for broadcast packet timeout")
} }

View file

@ -39,8 +39,9 @@ func TestBroadcastTAP(t *testing.T) {
setupIfce(t, net.IPNet{IP: self, Mask: mask}, ifce.Name()) setupIfce(t, net.IPNet{IP: self, Mask: mask}, ifce.Name())
startBroadcast(t, brd) startBroadcast(t, brd)
dataCh := make(chan []byte, 8) dataCh := make(chan []byte)
startRead(dataCh, ifce) errCh := make(chan error)
startRead(t, ifce, dataCh, errCh)
timeout := time.NewTimer(8 * time.Second).C timeout := time.NewTimer(8 * time.Second).C
@ -70,6 +71,8 @@ readFrame:
} }
t.Logf("received broadcast frame: %#v\n", buffer) t.Logf("received broadcast frame: %#v\n", buffer)
break readFrame break readFrame
case err := <-errCh:
t.Fatalf("read error: %v", err)
case <-timeout: case <-timeout:
t.Fatal("Waiting for broadcast packet timeout") t.Fatal("Waiting for broadcast packet timeout")
} }

View file

@ -8,14 +8,16 @@ import (
const BUFFERSIZE = 1522 const BUFFERSIZE = 1522
func startRead(ch chan<- []byte, ifce *Interface) { func startRead(t *testing.T, ifce *Interface, dataCh chan<- []byte, errCh chan<- error) {
go func() { go func() {
for { for {
buffer := make([]byte, BUFFERSIZE) buffer := make([]byte, BUFFERSIZE)
n, err := ifce.Read(buffer) n, err := ifce.Read(buffer)
if err == nil { if err != nil {
errCh <- err
} else {
buffer = buffer[:n:n] buffer = buffer[:n:n]
ch <- buffer dataCh <- buffer
} }
} }
}() }()

View file

@ -45,7 +45,8 @@ func TestBroadcastTAP(t *testing.T) {
startBroadcast(t, brd) startBroadcast(t, brd)
dataCh := make(chan []byte, 8) dataCh := make(chan []byte, 8)
startRead(dataCh, ifce) errCh := make(chan error)
startRead(t, ifce, dataCh, errCh)
timeout := time.NewTimer(8 * time.Second).C timeout := time.NewTimer(8 * time.Second).C
@ -75,6 +76,8 @@ readFrame:
} }
t.Logf("received broadcast frame: %#v\n", buffer) t.Logf("received broadcast frame: %#v\n", buffer)
break readFrame break readFrame
case err := <-errCh:
t.Fatalf("read error: %v", err)
case <-timeout: case <-timeout:
t.Fatal("Waiting for broadcast packet timeout") t.Fatal("Waiting for broadcast packet timeout")
} }