telegram/main_test.go

57 lines
1.6 KiB
Go
Raw Normal View History

2024-08-02 11:19:49 +00:00
package main
2024-08-02 11:26:08 +00:00
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")
2024-08-05 11:52:36 +00:00
//time.Sleep(2 * time.Second)
2024-08-02 11:26:08 +00:00
}
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")
}
}