Commit 7f2cfaff authored by Petar Radovic's avatar Petar Radovic Committed by GitHub

Tests time improvement (#90)

* improve execution time of tests
parent bc67a6bd
...@@ -167,7 +167,7 @@ func TestBroadcastPeers(t *testing.T) { ...@@ -167,7 +167,7 @@ func TestBroadcastPeers(t *testing.T) {
} }
func expectOverlaysEventually(t *testing.T, exporter AddressExporter, wantOverlays []swarm.Address) { func expectOverlaysEventually(t *testing.T, exporter AddressExporter, wantOverlays []swarm.Address) {
for i := 0; i < 10; i++ { for i := 0; i < 100; i++ {
var stringOverlays []string var stringOverlays []string
var stringWantOverlays []string var stringWantOverlays []string
o, err := exporter.Overlays() o, err := exporter.Overlays()
...@@ -188,7 +188,7 @@ func expectOverlaysEventually(t *testing.T, exporter AddressExporter, wantOverla ...@@ -188,7 +188,7 @@ func expectOverlaysEventually(t *testing.T, exporter AddressExporter, wantOverla
return return
} }
time.Sleep(50 * time.Millisecond) time.Sleep(10 * time.Millisecond)
} }
o, err := exporter.Overlays() o, err := exporter.Overlays()
......
...@@ -104,7 +104,7 @@ func expectPeersEventually(t *testing.T, s *libp2p.Service, addrs ...swarm.Addre ...@@ -104,7 +104,7 @@ func expectPeersEventually(t *testing.T, s *libp2p.Service, addrs ...swarm.Addre
if len(peers) == len(addrs) { if len(peers) == len(addrs) {
break break
} }
time.Sleep(50 * time.Millisecond) time.Sleep(10 * time.Millisecond)
} }
if len(peers) != len(addrs) { if len(peers) != len(addrs) {
......
...@@ -75,7 +75,7 @@ func TestReader_timeout(t *testing.T) { ...@@ -75,7 +75,7 @@ func TestReader_timeout(t *testing.T) {
{ {
name: "NewReader", name: "NewReader",
readerFunc: func() protobuf.Reader { readerFunc: func() protobuf.Reader {
return protobuf.NewReader(newMessageReader(messages, 400*time.Millisecond)) return protobuf.NewReader(newMessageReader(messages, 100*time.Millisecond))
}, },
}, },
{ {
...@@ -83,7 +83,7 @@ func TestReader_timeout(t *testing.T) { ...@@ -83,7 +83,7 @@ func TestReader_timeout(t *testing.T) {
readerFunc: func() protobuf.Reader { readerFunc: func() protobuf.Reader {
_, r := protobuf.NewWriterAndReader( _, r := protobuf.NewWriterAndReader(
newNoopWriteCloser( newNoopWriteCloser(
newMessageReader(messages, 400*time.Millisecond), newMessageReader(messages, 100*time.Millisecond),
), ),
) )
return r return r
...@@ -99,7 +99,7 @@ func TestReader_timeout(t *testing.T) { ...@@ -99,7 +99,7 @@ func TestReader_timeout(t *testing.T) {
if i == 0 { if i == 0 {
timeout = 600 * time.Millisecond timeout = 600 * time.Millisecond
} else { } else {
timeout = 200 * time.Millisecond timeout = 10 * time.Millisecond
} }
ctx, cancel := context.WithTimeout(context.Background(), timeout) ctx, cancel := context.WithTimeout(context.Background(), timeout)
defer cancel() defer cancel()
...@@ -129,7 +129,7 @@ func TestReader_timeout(t *testing.T) { ...@@ -129,7 +129,7 @@ func TestReader_timeout(t *testing.T) {
if i == 0 { if i == 0 {
timeout = 600 * time.Millisecond timeout = 600 * time.Millisecond
} else { } else {
timeout = 200 * time.Millisecond timeout = 10 * time.Millisecond
} }
err := r.ReadMsgWithTimeout(timeout, &msg) err := r.ReadMsgWithTimeout(timeout, &msg)
if i == 0 { if i == 0 {
...@@ -204,14 +204,14 @@ func TestWriter_timeout(t *testing.T) { ...@@ -204,14 +204,14 @@ func TestWriter_timeout(t *testing.T) {
{ {
name: "NewWriter", name: "NewWriter",
writerFunc: func() (protobuf.Writer, <-chan string) { writerFunc: func() (protobuf.Writer, <-chan string) {
w, msgs := newMessageWriter(400 * time.Millisecond) w, msgs := newMessageWriter(100 * time.Millisecond)
return protobuf.NewWriter(w), msgs return protobuf.NewWriter(w), msgs
}, },
}, },
{ {
name: "NewWriterAndReader", name: "NewWriterAndReader",
writerFunc: func() (protobuf.Writer, <-chan string) { writerFunc: func() (protobuf.Writer, <-chan string) {
w, msgs := newMessageWriter(400 * time.Millisecond) w, msgs := newMessageWriter(100 * time.Millisecond)
writer, _ := protobuf.NewWriterAndReader(newNoopReadCloser(w)) writer, _ := protobuf.NewWriterAndReader(newNoopReadCloser(w))
return writer, msgs return writer, msgs
}, },
...@@ -226,7 +226,7 @@ func TestWriter_timeout(t *testing.T) { ...@@ -226,7 +226,7 @@ func TestWriter_timeout(t *testing.T) {
if i == 0 { if i == 0 {
timeout = 600 * time.Millisecond timeout = 600 * time.Millisecond
} else { } else {
timeout = 200 * time.Millisecond timeout = 10 * time.Millisecond
} }
ctx, cancel := context.WithTimeout(context.Background(), timeout) ctx, cancel := context.WithTimeout(context.Background(), timeout)
defer cancel() defer cancel()
...@@ -256,7 +256,7 @@ func TestWriter_timeout(t *testing.T) { ...@@ -256,7 +256,7 @@ func TestWriter_timeout(t *testing.T) {
if i == 0 { if i == 0 {
timeout = 600 * time.Millisecond timeout = 600 * time.Millisecond
} else { } else {
timeout = 200 * time.Millisecond timeout = 10 * time.Millisecond
} }
err := w.WriteMsgWithTimeout(timeout, &pb.Message{ err := w.WriteMsgWithTimeout(timeout, &pb.Message{
Text: m, Text: m,
...@@ -302,12 +302,10 @@ func TestReadMessages(t *testing.T) { ...@@ -302,12 +302,10 @@ func TestReadMessages(t *testing.T) {
func newMessageReader(messages []string, delay time.Duration) io.Reader { func newMessageReader(messages []string, delay time.Duration) io.Reader {
r, pipe := io.Pipe() r, pipe := io.Pipe()
w := protobuf.NewWriter(pipe) w := protobuf.NewWriter(pipe)
go func() { go func() {
for _, m := range messages { for _, m := range messages {
time.Sleep(delay)
if err := w.WriteMsg(&pb.Message{ if err := w.WriteMsg(&pb.Message{
Text: m, Text: m,
}); err != nil { }); err != nil {
...@@ -319,14 +317,12 @@ func newMessageReader(messages []string, delay time.Duration) io.Reader { ...@@ -319,14 +317,12 @@ func newMessageReader(messages []string, delay time.Duration) io.Reader {
} }
}() }()
return r return delayedReader{r: r, delay: delay}
} }
func newMessageWriter(delay time.Duration) (w io.Writer, messages <-chan string) { func newMessageWriter(delay time.Duration) (w io.Writer, messages <-chan string) {
pipe, w := io.Pipe() pipe, w := io.Pipe()
r := protobuf.NewReader(pipe) r := protobuf.NewReader(pipe)
msgs := make(chan string) msgs := make(chan string)
go func() { go func() {
...@@ -334,7 +330,6 @@ func newMessageWriter(delay time.Duration) (w io.Writer, messages <-chan string) ...@@ -334,7 +330,6 @@ func newMessageWriter(delay time.Duration) (w io.Writer, messages <-chan string)
var msg pb.Message var msg pb.Message
for { for {
time.Sleep(delay)
err := r.ReadMsg(&msg) err := r.ReadMsg(&msg)
if err != nil { if err != nil {
if err == io.EOF { if err == io.EOF {
...@@ -345,7 +340,27 @@ func newMessageWriter(delay time.Duration) (w io.Writer, messages <-chan string) ...@@ -345,7 +340,27 @@ func newMessageWriter(delay time.Duration) (w io.Writer, messages <-chan string)
msgs <- msg.Text msgs <- msg.Text
} }
}() }()
return w, msgs return delayedWriter{w: w, delay: delay}, msgs
}
type delayedWriter struct {
w io.Writer
delay time.Duration
}
func (d delayedWriter) Write(p []byte) (n int, err error) {
time.Sleep(d.delay)
return d.w.Write(p)
}
type delayedReader struct {
r io.Reader
delay time.Duration
}
func (d delayedReader) Read(p []byte) (n int, err error) {
time.Sleep(d.delay)
return d.r.Read(p)
} }
type noopWriteCloser struct { type noopWriteCloser struct {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment