
commit 661286894a2c3a20ef0dba207314291c14c24708 Author: Serene Han <keroserene+git@gmail.com> Date: Wed Feb 17 12:52:22 2016 -0800 another goconvey test for RequestOffer, fix data race in the Broker test --- broker/snowflake-broker_test.go | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/broker/snowflake-broker_test.go b/broker/snowflake-broker_test.go index 0e125cc..44940a3 100644 --- a/broker/snowflake-broker_test.go +++ b/broker/snowflake-broker_test.go @@ -22,20 +22,35 @@ func TestBroker(t *testing.T) { So(len(ctx.idToSnowflake), ShouldEqual, 1) }) - /* Convey("Broker goroutine matches clients with proxies", func() { - ctx2 := NewBrokerContext() p := new(ProxyPoll) p.id = "test" + p.offerChannel = make(chan []byte) + go func(ctx *BrokerContext) { + ctx.proxyPolls <- p + close(ctx.proxyPolls) + }(ctx) + ctx.Broker() + So(ctx.snowflakes.Len(), ShouldEqual, 1) + snowflake := heap.Pop(ctx.snowflakes).(*Snowflake) + snowflake.offerChannel <- []byte("test offer") + offer := <-p.offerChannel + So(ctx.idToSnowflake["test"], ShouldNotBeNil) + So(offer, ShouldResemble, []byte("test offer")) + So(ctx.snowflakes.Len(), ShouldEqual, 0) + }) + + Convey("Request an offer from the Snowflake Heap", func() { + done := make(chan []byte) go func() { - ctx2.proxyPolls <- p - close(ctx2.proxyPolls) + offer := ctx.RequestOffer("test") + done <- offer }() - ctx2.Broker() - So(ctx2.snowflakes.Len(), ShouldEqual, 1) - So(ctx2.idToSnowflake["test"], ShouldNotBeNil) + request := <-ctx.proxyPolls + request.offerChannel <- []byte("test offer") + offer := <-done + So(offer, ShouldResemble, []byte("test offer")) }) - */ Convey("Responds to client offers...", func() { w := httptest.NewRecorder()
participants (1)
-
serene@torproject.org