Browse Source

make bench test more realistic, as handlers may not be done in the first case when the function returns.

master
Gisle Aune 4 years ago
parent
commit
bf0ffea7dd
  1. 10
      handle_test.go

10
handle_test.go

@ -4,6 +4,7 @@ import (
"context" "context"
"math/rand" "math/rand"
"strconv" "strconv"
"sync"
"testing" "testing"
"time" "time"
@ -41,15 +42,24 @@ func BenchmarkHandle(b *testing.B) {
client := irc.New(context.Background(), irc.Config{}) client := irc.New(context.Background(), irc.Config{})
event := irc.NewEvent("test", eventName) event := irc.NewEvent("test", eventName)
wg := sync.WaitGroup{}
client.AddHandler(func(event2 *irc.Event, client *irc.Client) {
wg.Done()
})
b.Run("Emit", func(b *testing.B) { b.Run("Emit", func(b *testing.B) {
wg.Add(b.N)
for n := 0; n < b.N; n++ { for n := 0; n < b.N; n++ {
client.Emit(event) client.Emit(event)
} }
wg.Wait()
}) })
b.Run("EmitSync", func(b *testing.B) { b.Run("EmitSync", func(b *testing.B) {
wg.Add(b.N)
for n := 0; n < b.N; n++ { for n := 0; n < b.N; n++ {
client.EmitSync(context.Background(), event) client.EmitSync(context.Background(), event)
} }
wg.Wait()
}) })
} }
Loading…
Cancel
Save