コード例 #1
0
ファイル: client_test.go プロジェクト: jmptrader/talaria
			var wg sync.WaitGroup
			defer wg.Wait()
			for i := 0; i < 10; i++ {
				wg.Add(1)
				go func() {
					defer GinkgoRecover()
					defer wg.Done()
					expectedData := []byte("some-data")
					_, err := client.WriteToFile(id, expectedData)
					Expect(err).ToNot(HaveOccurred())

					var msg *messages.Client
					Eventually(mockServers[1].clientCh).Should(Receive(&msg))
					Expect(msg.GetMessageType()).To(Equal(messages.Client_WriteToFile))
					Expect(msg.GetWriteToFile().GetData()).To(Equal(expectedData))
				}()
			}
		}, 5)

		Measure("Writes to a file 1000 times in under a second", func(b Benchmarker) {
			runtime := b.Time("runtime", func() {
				mockServers[0].serverCh <- buildFileLocation(1)
				count := 1000

				go func() {
					for i := 0; i < count; i++ {
						mockServers[0].serverCh <- buildFileOffset(uint64(i+2), 101)
					}
				}()