runtime/{internal/testing/mocks/mocknet,internal/rpc/stream/manager}: update for go1.5 error message.
Change-Id: I73c0dfe0c5631642fe377abc250c925a383b5545
diff --git a/runtime/internal/rpc/stream/manager/listener.go b/runtime/internal/rpc/stream/manager/listener.go
index 5659fad..a25c514 100644
--- a/runtime/internal/rpc/stream/manager/listener.go
+++ b/runtime/internal/rpc/stream/manager/listener.go
@@ -125,7 +125,7 @@
}
func isTooManyOpenFiles(err error) bool {
- if oErr, ok := err.(*net.OpError); ok && oErr.Err == syscall.EMFILE {
+ if oErr, ok := err.(*net.OpError); ok && strings.Contains(oErr.Err.Error(), syscall.EMFILE.Error()) {
return true
}
return false
diff --git a/runtime/internal/rpc/stream/manager/manager_test.go b/runtime/internal/rpc/stream/manager/manager_test.go
index 2ec4eb4..622c7af 100644
--- a/runtime/internal/rpc/stream/manager/manager_test.go
+++ b/runtime/internal/rpc/stream/manager/manager_test.go
@@ -447,6 +447,8 @@
}
}
}()
+ // Arrange for the above goroutine to exit when the test finishes.
+ defer ln.Close()
_, err = net.Dial(ep.Addr().Network(), ep.Addr().String())
if err != nil {
@@ -500,12 +502,19 @@
t.Fatal(err)
}
errch := make(chan error)
+ done := make(chan struct{})
go func() {
for {
_, err := ln.Accept()
- errch <- err
+ select {
+ case <-done:
+ return
+ case errch <- err:
+ }
}
}()
+ // Arrange for the above goroutine to exit when the test finishes.
+ defer func() { ln.Close(); close(done) }()
vc, err := client.Dial(cctx, ep, opts...)
if err != nil {
diff --git a/runtime/internal/testing/mocks/mocknet/mocknet_test.go b/runtime/internal/testing/mocks/mocknet/mocknet_test.go
index e93baf3..5839ec8 100644
--- a/runtime/internal/testing/mocks/mocknet/mocknet_test.go
+++ b/runtime/internal/testing/mocks/mocknet/mocknet_test.go
@@ -10,6 +10,7 @@
"io"
"net"
"reflect"
+ "strings"
"sync"
"testing"
"time"
@@ -151,8 +152,8 @@
txBytes += tx
rxBytes += rx
if err != nil {
- if got, want := err.Error(), c.err.Error(); got != want {
- t.Fatalf("%d: got %v, want %v", ci, got, want)
+ if got, want := err.Error(), c.err.Error(); !strings.Contains(got, want) {
+ t.Fatalf("%d: got %q, does not contain %q", ci, got, want)
}
}
}