[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [snowflake/master] another goconvey test for RequestOffer, fix data race in the Broker test
commit 661286894a2c3a20ef0dba207314291c14c24708
Author: Serene Han <keroserene+git@xxxxxxxxx>
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
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits