commit 661286894a2c3a20ef0dba207314291c14c24708
Author: Serene Han <[email protected]>
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()



_______________________________________________
tor-commits mailing list
[email protected]
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits

Reply via email to