func parallelAdd(t *testing.T, h *cart.Handler, wg *sync.WaitGroup, data chan map[uint32]map[uint32]uint32) { basket := make(map[uint32]map[uint32]uint32) w := httptest.NewRecorder() var slice []tuple for i := 0; i <= NumberOfThreadIterations; i++ { var item uint32 = uint32(rand.Intn(200)) var customer uint32 = uint32(rand.Intn(100)) i := tuple{customer, item} slice = append(slice, i) } for _, pair := range slice { r := modRequest(t, "add", pair.customer, pair.item) retry: h.Mod(cart.AddToSet)(w, r) if w.Code == 503 { goto retry } if basket[pair.customer] == nil { basket[pair.customer] = make(map[uint32]uint32) } basket[pair.customer][pair.item]++ if !strings.HasPrefix(w.Body.String(), "OK") { t.Fatalf("expected `OK`, got `%s`", w.Body.String()) } } data <- basket wg.Done() }