package trace import ( "testing" "github.com/stretchr/testify/assert" "github.com/zeromicro/go-zero/core/logx" ) func TestStartAgent(t *testing.T) { logx.Disable() const ( endpoint1 = "localhost:1234" endpoint2 = "remotehost:1234" endpoint3 = "localhost:1235" endpoint4 = "localhost:1236" endpoint5 = "udp://localhost:6831" endpoint6 = "localhost:1237" ) c1 := Config{ Name: "foo", } c2 := Config{ Name: "bar", Endpoint: endpoint1, Batcher: kindJaeger, } c3 := Config{ Name: "any", Endpoint: endpoint2, Batcher: kindZipkin, } c4 := Config{ Name: "bla", Endpoint: endpoint3, Batcher: "otlp", } c5 := Config{ Name: "otlpgrpc", Endpoint: endpoint3, Batcher: kindOtlpGrpc, OtlpHeaders: map[string]string{ "uptrace-dsn": "http://project2_secret_token@localhost:14317/2", }, } c6 := Config{ Name: "otlphttp", Endpoint: endpoint4, Batcher: kindOtlpHttp, OtlpHeaders: map[string]string{ "uptrace-dsn": "http://project2_secret_token@localhost:14318/2", }, OtlpHttpPath: "/v1/traces", } c7 := Config{ Name: "UDP", Endpoint: endpoint5, Batcher: kindJaeger, } c8 := Config{ Disabled: true, Endpoint: endpoint6, Batcher: kindJaeger, } StartAgent(c1) StartAgent(c1) StartAgent(c2) StartAgent(c3) StartAgent(c4) StartAgent(c5) StartAgent(c6) StartAgent(c7) StartAgent(c8) defer StopAgent() lock.Lock() defer lock.Unlock() // because remotehost cannot be resolved assert.Equal(t, 5, len(agents)) _, ok := agents[""] assert.True(t, ok) _, ok = agents[endpoint1] assert.True(t, ok) _, ok = agents[endpoint2] assert.False(t, ok) _, ok = agents[endpoint5] assert.True(t, ok) _, ok = agents[endpoint6] assert.False(t, ok) }