package main import ( "fmt" "penahub.gitlab.yandexcloud.net/backend/quiz/telegram/client" "penahub.gitlab.yandexcloud.net/backend/quiz/telegram/models" "penahub.gitlab.yandexcloud.net/backend/quiz/telegram/respondent" stateManager "penahub.gitlab.yandexcloud.net/backend/quiz/telegram/state_manager" "sync" "testing" ) //goos: windows //goarch: amd64 //pkg: penahub.gitlab.yandexcloud.net/backend/quiz/telegram //cpu: AMD Ryzen 5 5600H with Radeon Graphics //BenchmarkMain-12 1 6015112300 ns/op 12184 B/op 94 allocs/op //PASS //ok penahub.gitlab.yandexcloud.net/backend/quiz/telegram 6.049s func BenchmarkMain(b *testing.B) { for n := 0; n < b.N; n++ { var wg sync.WaitGroup wg.Add(len(models.DataSet)) for i := 0; i < len(models.DataSet); i++ { go func(i int) { defer wg.Done() mockClient := client.NewClient() mockStateManager := stateManager.NewStateManager(stateManager.Deps{ Questions: models.DataSet[i], State: "start", Client: mockClient, }) mockRespondent := respondent.NewRespondent(mockStateManager) mockStateManager.SendQuestion() for mockStateManager.State != "end" { mockRespondent.Respond() fmt.Println("respond") //time.Sleep(2 * time.Second) } fmt.Println(fmt.Sprintf("gorutine %d is complete, now serch it messages", i)) for number, msg := range mockClient.Messages { fmt.Println(fmt.Sprintf("gorutine %d, message %s, message number %d", i, msg, number)) } }(i) } wg.Wait() fmt.Println("complete") } }