func vote(client crowdsound.CrowdSoundClient) { _, err := client.VoteSong(context.Background(), &crowdsound.VoteSongRequest{ UserId: *userID, Name: songs[4].Name, Artist: songs[4].Artist[0], Like: true, }) if err != nil { log.Fatalf("Error calling VoteSong(): %v", err) } }
func RunVoteSongsBench(c crowdsound.CrowdSoundClient, amount int) (metrics.Histogram, error) { h := metrics.NewHistogram(metrics.NewUniformSample(amount)) // Generate songs to vote on postStream, err := c.PostSong(context.Background()) if err != nil { return h, err } var songToVote *crowdsound.PostSongRequest for song := range songGenerator(1, 0) { song.UserId = randomString(32) if err = postStream.Send(song); err != nil { return h, err } songToVote = song } if _, err = postStream.CloseAndRecv(); err != nil { return h, err } userID := randomString(32) for i := 0; i < amount; i++ { start := time.Now() _, err := c.VoteSong(context.Background(), &crowdsound.VoteSongRequest{ UserId: userID, Name: songToVote.Name, Artist: songToVote.Artist[0], Like: true, }) if err != nil { return h, err } h.Update(time.Since(start).Nanoseconds()) } return h, nil }