Loading server/matchmaker_test.go +218 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,224 @@ func TestMatchmakerAddOnly(t *testing.T) { } } func TestMatchmakerPropertyRegexSubmatch(t *testing.T) { consoleLogger := loggerForTest(t) matchMaker, cleanup, err := createTestMatchmaker(t, consoleLogger, nil) if err != nil { t.Fatalf("error creating test matchmaker: %v", err) } defer cleanup() matchmakerIndexDoc1, err := MapMatchmakerIndex("ticket1", &MatchmakerIndex{ Ticket: "ticket1", Properties: map[string]interface{}{ "blocked": "4bd6667a-2659-4888-b245-e13690ff4a9b cc44260e-6b7d-4237-9871-6146d86f7a71 324b7447-ec0f-4b5f-9a13-06511d0bb527", "game_mode": "foo", }, MinCount: 2, MaxCount: 2, PartyId: "", CreatedAt: time.Now().UTC().UnixNano(), Query: "*", Count: 1, CountMultiple: 1, SessionID: "sid1", Intervals: 0, SessionIDs: map[string]struct{}{"sid1": {}}, }) if err != nil { t.Fatalf(err.Error()) } if err := matchMaker.indexWriter.Update(bluge.Identifier("ticket1"), matchmakerIndexDoc1); err != nil { t.Fatalf(err.Error()) } reader, err := matchMaker.indexWriter.Reader() if err != nil { t.Fatalf(err.Error()) } defer reader.Close() parsedIndexQuery1, err := ParseQueryString("+properties.game_mode:foo -properties.blocked:/.*4bd6667a\\-2659\\-4888\\-b245\\-e13690ff4a9b.*/") if err != nil { t.Fatalf(err.Error()) } searchRequest1 := bluge.NewTopNSearch(100, parsedIndexQuery1) iter1, err := reader.Search(context.Background(), searchRequest1) if err != nil { t.Fatalf(err.Error()) } doc1, err := iter1.Next() if err != nil { t.Fatalf(err.Error()) } if doc1 != nil { t.Fatalf("doc1 not nil") } parsedIndexQuery2, err := ParseQueryString("+properties.game_mode:foo -properties.blocked:/.*cc44260e\\-6b7d\\-4237\\-9871\\-6146d86f7a71.*/") if err != nil { t.Fatalf(err.Error()) } searchRequest2 := bluge.NewTopNSearch(100, parsedIndexQuery2) iter2, err := reader.Search(context.Background(), searchRequest2) if err != nil { t.Fatalf(err.Error()) } doc2, err := iter2.Next() if err != nil { t.Fatalf(err.Error()) } if doc2 != nil { t.Fatalf("doc2 not nil") } parsedIndexQuery3, err := ParseQueryString("+properties.game_mode:foo -properties.blocked:/.*324b7447\\-ec0f\\-4b5f\\-9a13\\-06511d0bb527.*/") if err != nil { t.Fatalf(err.Error()) } searchRequest3 := bluge.NewTopNSearch(100, parsedIndexQuery3) iter3, err := reader.Search(context.Background(), searchRequest3) if err != nil { t.Fatalf(err.Error()) } doc3, err := iter3.Next() if err != nil { t.Fatalf(err.Error()) } if doc3 != nil { t.Fatalf("doc3 not nil") } parsedIndexQuery4, err := ParseQueryString("+properties.game_mode:bar -properties.blocked:/.*3a3b78a0\\-8622\\-4a23\\-be42\\-70bfbb26582f.*/") if err != nil { t.Fatalf(err.Error()) } searchRequest4 := bluge.NewTopNSearch(100, parsedIndexQuery4) iter4, err := reader.Search(context.Background(), searchRequest4) if err != nil { t.Fatalf(err.Error()) } doc4, err := iter4.Next() if err != nil { t.Fatalf(err.Error()) } if doc4 != nil { t.Fatalf("doc4 not nil") } parsedIndexQuery5, err := ParseQueryString("+properties.game_mode:foo -properties.blocked:/.*3a3b78a0\\-8622\\-4a23\\-be42\\-70bfbb26582f.*/") if err != nil { t.Fatalf(err.Error()) } searchRequest5 := bluge.NewTopNSearch(100, parsedIndexQuery5) iter5, err := reader.Search(context.Background(), searchRequest5) if err != nil { t.Fatalf(err.Error()) } doc5, err := iter5.Next() if err != nil { t.Fatalf(err.Error()) } if doc5 == nil { t.Fatalf("doc5 nil") } } func TestMatchmakerPropertyRegexSubmatchMultiple(t *testing.T) { consoleLogger := loggerForTest(t) matchMaker, cleanup, err := createTestMatchmaker(t, consoleLogger, nil) if err != nil { t.Fatalf("error creating test matchmaker: %v", err) } defer cleanup() matchmakerIndexDoc1, err := MapMatchmakerIndex("ticket1", &MatchmakerIndex{ Ticket: "ticket1", Properties: map[string]interface{}{ "maps": "map1 map2 some_map other_map", "game_mode": "foo", }, MinCount: 2, MaxCount: 2, PartyId: "", CreatedAt: time.Now().UTC().UnixNano(), Query: "*", Count: 1, CountMultiple: 1, SessionID: "sid1", Intervals: 0, SessionIDs: map[string]struct{}{"sid1": {}}, }) if err != nil { t.Fatalf(err.Error()) } if err := matchMaker.indexWriter.Update(bluge.Identifier("ticket1"), matchmakerIndexDoc1); err != nil { t.Fatalf(err.Error()) } reader, err := matchMaker.indexWriter.Reader() if err != nil { t.Fatalf(err.Error()) } defer reader.Close() parsedIndexQuery1, err := ParseQueryString("+properties.game_mode:foo +properties.maps:/.*(map3|some_map_foo).*/") if err != nil { t.Fatalf(err.Error()) } searchRequest1 := bluge.NewTopNSearch(100, parsedIndexQuery1) iter1, err := reader.Search(context.Background(), searchRequest1) if err != nil { t.Fatalf(err.Error()) } doc1, err := iter1.Next() if err != nil { t.Fatalf(err.Error()) } if doc1 != nil { t.Fatalf("doc1 not nil") } parsedIndexQuery2, err := ParseQueryString("+properties.game_mode:bar +properties.maps:/.*(map2|map3).*/") if err != nil { t.Fatalf(err.Error()) } searchRequest2 := bluge.NewTopNSearch(100, parsedIndexQuery2) iter2, err := reader.Search(context.Background(), searchRequest2) if err != nil { t.Fatalf(err.Error()) } doc2, err := iter2.Next() if err != nil { t.Fatalf(err.Error()) } if doc2 != nil { t.Fatalf("doc2 not nil") } parsedIndexQuery3, err := ParseQueryString("+properties.game_mode:foo +properties.maps:/.*(map2|map3).*/") if err != nil { t.Fatalf(err.Error()) } searchRequest3 := bluge.NewTopNSearch(100, parsedIndexQuery3) iter3, err := reader.Search(context.Background(), searchRequest3) if err != nil { t.Fatalf(err.Error()) } doc3, err := iter3.Next() if err != nil { t.Fatalf(err.Error()) } if doc3 == nil { t.Fatalf("doc3 nil") } } // should add and remove from matchmaker func TestMatchmakerAddAndRemove(t *testing.T) { consoleLogger := loggerForTest(t) Loading server/socket_ws.go +1 −1 Original line number Diff line number Diff line Loading @@ -76,7 +76,7 @@ func NewSocketWsAcceptor(logger *zap.Logger, config Config, sessionRegistry Sess conn, err := upgrader.Upgrade(w, r, nil) if err != nil { // http.Error is invoked automatically from within the Upgrade function. logger.Warn("Could not upgrade to WebSocket", zap.Error(err)) logger.Debug("Could not upgrade to WebSocket", zap.Error(err)) return } Loading Loading
server/matchmaker_test.go +218 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,224 @@ func TestMatchmakerAddOnly(t *testing.T) { } } func TestMatchmakerPropertyRegexSubmatch(t *testing.T) { consoleLogger := loggerForTest(t) matchMaker, cleanup, err := createTestMatchmaker(t, consoleLogger, nil) if err != nil { t.Fatalf("error creating test matchmaker: %v", err) } defer cleanup() matchmakerIndexDoc1, err := MapMatchmakerIndex("ticket1", &MatchmakerIndex{ Ticket: "ticket1", Properties: map[string]interface{}{ "blocked": "4bd6667a-2659-4888-b245-e13690ff4a9b cc44260e-6b7d-4237-9871-6146d86f7a71 324b7447-ec0f-4b5f-9a13-06511d0bb527", "game_mode": "foo", }, MinCount: 2, MaxCount: 2, PartyId: "", CreatedAt: time.Now().UTC().UnixNano(), Query: "*", Count: 1, CountMultiple: 1, SessionID: "sid1", Intervals: 0, SessionIDs: map[string]struct{}{"sid1": {}}, }) if err != nil { t.Fatalf(err.Error()) } if err := matchMaker.indexWriter.Update(bluge.Identifier("ticket1"), matchmakerIndexDoc1); err != nil { t.Fatalf(err.Error()) } reader, err := matchMaker.indexWriter.Reader() if err != nil { t.Fatalf(err.Error()) } defer reader.Close() parsedIndexQuery1, err := ParseQueryString("+properties.game_mode:foo -properties.blocked:/.*4bd6667a\\-2659\\-4888\\-b245\\-e13690ff4a9b.*/") if err != nil { t.Fatalf(err.Error()) } searchRequest1 := bluge.NewTopNSearch(100, parsedIndexQuery1) iter1, err := reader.Search(context.Background(), searchRequest1) if err != nil { t.Fatalf(err.Error()) } doc1, err := iter1.Next() if err != nil { t.Fatalf(err.Error()) } if doc1 != nil { t.Fatalf("doc1 not nil") } parsedIndexQuery2, err := ParseQueryString("+properties.game_mode:foo -properties.blocked:/.*cc44260e\\-6b7d\\-4237\\-9871\\-6146d86f7a71.*/") if err != nil { t.Fatalf(err.Error()) } searchRequest2 := bluge.NewTopNSearch(100, parsedIndexQuery2) iter2, err := reader.Search(context.Background(), searchRequest2) if err != nil { t.Fatalf(err.Error()) } doc2, err := iter2.Next() if err != nil { t.Fatalf(err.Error()) } if doc2 != nil { t.Fatalf("doc2 not nil") } parsedIndexQuery3, err := ParseQueryString("+properties.game_mode:foo -properties.blocked:/.*324b7447\\-ec0f\\-4b5f\\-9a13\\-06511d0bb527.*/") if err != nil { t.Fatalf(err.Error()) } searchRequest3 := bluge.NewTopNSearch(100, parsedIndexQuery3) iter3, err := reader.Search(context.Background(), searchRequest3) if err != nil { t.Fatalf(err.Error()) } doc3, err := iter3.Next() if err != nil { t.Fatalf(err.Error()) } if doc3 != nil { t.Fatalf("doc3 not nil") } parsedIndexQuery4, err := ParseQueryString("+properties.game_mode:bar -properties.blocked:/.*3a3b78a0\\-8622\\-4a23\\-be42\\-70bfbb26582f.*/") if err != nil { t.Fatalf(err.Error()) } searchRequest4 := bluge.NewTopNSearch(100, parsedIndexQuery4) iter4, err := reader.Search(context.Background(), searchRequest4) if err != nil { t.Fatalf(err.Error()) } doc4, err := iter4.Next() if err != nil { t.Fatalf(err.Error()) } if doc4 != nil { t.Fatalf("doc4 not nil") } parsedIndexQuery5, err := ParseQueryString("+properties.game_mode:foo -properties.blocked:/.*3a3b78a0\\-8622\\-4a23\\-be42\\-70bfbb26582f.*/") if err != nil { t.Fatalf(err.Error()) } searchRequest5 := bluge.NewTopNSearch(100, parsedIndexQuery5) iter5, err := reader.Search(context.Background(), searchRequest5) if err != nil { t.Fatalf(err.Error()) } doc5, err := iter5.Next() if err != nil { t.Fatalf(err.Error()) } if doc5 == nil { t.Fatalf("doc5 nil") } } func TestMatchmakerPropertyRegexSubmatchMultiple(t *testing.T) { consoleLogger := loggerForTest(t) matchMaker, cleanup, err := createTestMatchmaker(t, consoleLogger, nil) if err != nil { t.Fatalf("error creating test matchmaker: %v", err) } defer cleanup() matchmakerIndexDoc1, err := MapMatchmakerIndex("ticket1", &MatchmakerIndex{ Ticket: "ticket1", Properties: map[string]interface{}{ "maps": "map1 map2 some_map other_map", "game_mode": "foo", }, MinCount: 2, MaxCount: 2, PartyId: "", CreatedAt: time.Now().UTC().UnixNano(), Query: "*", Count: 1, CountMultiple: 1, SessionID: "sid1", Intervals: 0, SessionIDs: map[string]struct{}{"sid1": {}}, }) if err != nil { t.Fatalf(err.Error()) } if err := matchMaker.indexWriter.Update(bluge.Identifier("ticket1"), matchmakerIndexDoc1); err != nil { t.Fatalf(err.Error()) } reader, err := matchMaker.indexWriter.Reader() if err != nil { t.Fatalf(err.Error()) } defer reader.Close() parsedIndexQuery1, err := ParseQueryString("+properties.game_mode:foo +properties.maps:/.*(map3|some_map_foo).*/") if err != nil { t.Fatalf(err.Error()) } searchRequest1 := bluge.NewTopNSearch(100, parsedIndexQuery1) iter1, err := reader.Search(context.Background(), searchRequest1) if err != nil { t.Fatalf(err.Error()) } doc1, err := iter1.Next() if err != nil { t.Fatalf(err.Error()) } if doc1 != nil { t.Fatalf("doc1 not nil") } parsedIndexQuery2, err := ParseQueryString("+properties.game_mode:bar +properties.maps:/.*(map2|map3).*/") if err != nil { t.Fatalf(err.Error()) } searchRequest2 := bluge.NewTopNSearch(100, parsedIndexQuery2) iter2, err := reader.Search(context.Background(), searchRequest2) if err != nil { t.Fatalf(err.Error()) } doc2, err := iter2.Next() if err != nil { t.Fatalf(err.Error()) } if doc2 != nil { t.Fatalf("doc2 not nil") } parsedIndexQuery3, err := ParseQueryString("+properties.game_mode:foo +properties.maps:/.*(map2|map3).*/") if err != nil { t.Fatalf(err.Error()) } searchRequest3 := bluge.NewTopNSearch(100, parsedIndexQuery3) iter3, err := reader.Search(context.Background(), searchRequest3) if err != nil { t.Fatalf(err.Error()) } doc3, err := iter3.Next() if err != nil { t.Fatalf(err.Error()) } if doc3 == nil { t.Fatalf("doc3 nil") } } // should add and remove from matchmaker func TestMatchmakerAddAndRemove(t *testing.T) { consoleLogger := loggerForTest(t) Loading
server/socket_ws.go +1 −1 Original line number Diff line number Diff line Loading @@ -76,7 +76,7 @@ func NewSocketWsAcceptor(logger *zap.Logger, config Config, sessionRegistry Sess conn, err := upgrader.Upgrade(w, r, nil) if err != nil { // http.Error is invoked automatically from within the Upgrade function. logger.Warn("Could not upgrade to WebSocket", zap.Error(err)) logger.Debug("Could not upgrade to WebSocket", zap.Error(err)) return } Loading