micro-tracer-opentracing/opentracing_test.go
Vasiliy Tolstov b32b60d136
Some checks failed
build / test (push) Failing after 1m29s
build / lint (push) Failing after 2m42s
codeql / analyze (go) (push) Failing after 3m14s
fixup span and tags
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2023-09-01 08:27:53 +03:00

51 lines
832 B
Go

package opentracing
import (
"context"
"sync"
"testing"
opentracing "github.com/opentracing/opentracing-go"
"go.unistack.org/micro/v4/metadata"
)
func TestStartSpanFromIncomingContext(t *testing.T) {
md := metadata.New(2)
md.Set("key", "val")
var g sync.WaitGroup
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
ctx = metadata.NewIncomingContext(ctx, md)
tracer := opentracing.GlobalTracer()
g.Add(8000)
cherr := make(chan error)
for i := 0; i < 8000; i++ {
go func() {
defer g.Done()
_, sp, err := startSpanFromIncomingContext(ctx, tracer, "test")
if err != nil {
cherr <- err
}
sp.Finish()
}()
}
for {
select {
default:
g.Wait()
close(cherr)
case err, ok := <-cherr:
if err != nil {
t.Fatal(err)
} else if !ok {
return
}
}
}
}