mirror of https://github.com/cbeuw/Cloak
Temp fix to testing reading after closing a stream
This commit is contained in:
parent
a97f5759c0
commit
70a9723377
|
|
@ -7,7 +7,6 @@ import (
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"sync"
|
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
|
@ -152,7 +151,7 @@ func TestStream_Close(t *testing.T) {
|
||||||
t.Error("failed to accept stream", err)
|
t.Error("failed to accept stream", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
time.Sleep(500 * time.Millisecond)
|
||||||
err = stream.Close()
|
err = stream.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error("failed to actively close stream", err)
|
t.Error("failed to actively close stream", err)
|
||||||
|
|
@ -168,18 +167,11 @@ func TestStream_Close(t *testing.T) {
|
||||||
sesh.streamsM.Unlock()
|
sesh.streamsM.Unlock()
|
||||||
|
|
||||||
readBuf := make([]byte, len(testPayload))
|
readBuf := make([]byte, len(testPayload))
|
||||||
var wg sync.WaitGroup
|
_, err = io.ReadFull(stream, readBuf)
|
||||||
wg.Add(1)
|
if err != nil {
|
||||||
assert.Eventually(t, func() bool {
|
t.Errorf("cannot read resiual data: %v", err)
|
||||||
_, err = io.ReadFull(stream, readBuf)
|
}
|
||||||
if err == nil {
|
|
||||||
wg.Done()
|
|
||||||
return true
|
|
||||||
} else {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}, time.Second, 10*time.Millisecond, "can't read residual data", err)
|
|
||||||
wg.Wait()
|
|
||||||
if !bytes.Equal(readBuf, testPayload) {
|
if !bytes.Equal(readBuf, testPayload) {
|
||||||
t.Errorf("read wrong data")
|
t.Errorf("read wrong data")
|
||||||
}
|
}
|
||||||
|
|
@ -323,27 +315,18 @@ func TestStream_Read(t *testing.T) {
|
||||||
streamID++
|
streamID++
|
||||||
writingEnd.Write(obfsBuf[:i])
|
writingEnd.Write(obfsBuf[:i])
|
||||||
stream, _ := sesh.Accept()
|
stream, _ := sesh.Accept()
|
||||||
|
|
||||||
|
time.Sleep(500 * time.Millisecond)
|
||||||
|
|
||||||
stream.Close()
|
stream.Close()
|
||||||
|
|
||||||
var err error
|
_, err := io.ReadFull(stream, buf[:smallPayloadLen])
|
||||||
var wg sync.WaitGroup
|
if err != nil {
|
||||||
wg.Add(1)
|
t.Errorf("cannot read residual data: %v", err)
|
||||||
assert.Eventually(t, func() bool {
|
|
||||||
i, err = stream.Read(buf)
|
|
||||||
if err == nil {
|
|
||||||
wg.Done()
|
|
||||||
return true
|
|
||||||
} else {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}, time.Second, 10*time.Millisecond, "failed to read", err)
|
|
||||||
wg.Wait()
|
|
||||||
if i != smallPayloadLen {
|
|
||||||
t.Errorf("expected read %v, got %v", smallPayloadLen, i)
|
|
||||||
}
|
}
|
||||||
if !bytes.Equal(buf[:i], testPayload) {
|
if !bytes.Equal(buf[:smallPayloadLen], testPayload) {
|
||||||
t.Error("expected", testPayload,
|
t.Error("expected", testPayload,
|
||||||
"got", buf[:i])
|
"got", buf[:smallPayloadLen])
|
||||||
}
|
}
|
||||||
_, err = stream.Read(buf)
|
_, err = stream.Read(buf)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|
@ -357,26 +340,17 @@ func TestStream_Read(t *testing.T) {
|
||||||
streamID++
|
streamID++
|
||||||
writingEnd.Write(obfsBuf[:i])
|
writingEnd.Write(obfsBuf[:i])
|
||||||
stream, _ := sesh.Accept()
|
stream, _ := sesh.Accept()
|
||||||
|
|
||||||
|
time.Sleep(500 * time.Millisecond)
|
||||||
|
|
||||||
sesh.Close()
|
sesh.Close()
|
||||||
var err error
|
_, err := io.ReadFull(stream, buf[:smallPayloadLen])
|
||||||
var wg sync.WaitGroup
|
if err != nil {
|
||||||
wg.Add(1)
|
t.Errorf("cannot read resiual data: %v", err)
|
||||||
assert.Eventually(t, func() bool {
|
|
||||||
i, err = stream.Read(buf)
|
|
||||||
if err == nil {
|
|
||||||
wg.Done()
|
|
||||||
return true
|
|
||||||
} else {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}, time.Second, 10*time.Millisecond, "failed to read", err)
|
|
||||||
wg.Wait()
|
|
||||||
if i != smallPayloadLen {
|
|
||||||
t.Errorf("expected read %v, got %v", smallPayloadLen, i)
|
|
||||||
}
|
}
|
||||||
if !bytes.Equal(buf[:i], testPayload) {
|
if !bytes.Equal(buf[:smallPayloadLen], testPayload) {
|
||||||
t.Error("expected", testPayload,
|
t.Error("expected", testPayload,
|
||||||
"got", buf[:i])
|
"got", buf[:smallPayloadLen])
|
||||||
}
|
}
|
||||||
_, err = stream.Read(buf)
|
_, err = stream.Read(buf)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue