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)
 				}
 			}
 		}