Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(815)

Unified Diff: logdog/client/butler/streamserver/base_test.go

Issue 2737603003: Butler stream servers can generate client address. (Closed)
Patch Set: better Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: logdog/client/butler/streamserver/base_test.go
diff --git a/logdog/client/butler/streamserver/base_test.go b/logdog/client/butler/streamserver/base_test.go
index 1510af6ce722be57fecd7b6ad26d829c4ba9f28e..fc42853636922aaa162479fcf3043b9d8a8225ed 100644
--- a/logdog/client/butler/streamserver/base_test.go
+++ b/logdog/client/butler/streamserver/base_test.go
@@ -13,9 +13,14 @@ import (
"testing"
"time"
+ "github.com/luci/luci-go/common/clock/clockflag"
+ "github.com/luci/luci-go/common/clock/testclock"
+ "github.com/luci/luci-go/logdog/client/butlerlib/streamclient"
"github.com/luci/luci-go/logdog/client/butlerlib/streamproto"
- . "github.com/smartystreets/goconvey/convey"
+
"golang.org/x/net/context"
+
+ . "github.com/smartystreets/goconvey/convey"
)
type testAddr string
@@ -228,3 +233,49 @@ func TestListenerStreamServer(t *testing.T) {
})
})
}
+
+// testClientServer tests to ensure that a client can create streams with a
+// server.
+//
+// svr must be in listening state when this is called.
+func testClientServer(t *testing.T, svr StreamServer, client streamclient.Client) {
+ flags := streamproto.Flags{
+ Name: "foo/bar",
+ Timestamp: clockflag.Time(testclock.TestTimeLocal),
+ }
+ data := []byte("ohaithere")
+
+ clientDoneC := make(chan error)
+ go func() {
+ var err error
+ defer func() {
+ clientDoneC <- err
+ }()
+
+ var stream streamclient.Stream
+ if stream, err = client.NewStream(flags); err != nil {
+ return
+ }
+ defer func() {
+ if closeErr := stream.Close(); closeErr != nil && err == nil {
+ err = closeErr
+ }
+ }()
+
+ if _, err = stream.Write(data); err != nil {
+ return
+ }
+ }()
+
+ rc, props := svr.Next()
+ defer rc.Close()
+
+ So(props, ShouldResemble, flags.Properties())
+
+ var buf bytes.Buffer
+ _, err := buf.ReadFrom(rc)
+ So(err, ShouldBeNil)
+ So(buf.Bytes(), ShouldResemble, data)
+
+ So(<-clientDoneC, ShouldBeNil)
+}

Powered by Google App Engine
This is Rietveld 408576698