diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 3ccac596..7bf076e4 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -61,5 +61,5 @@ jobs: run: | go mod verify go mod download - go test -v -race ./... + go test ./... cd tools/goctl && go build -v goctl.go diff --git a/core/trace/agent.go b/core/trace/agent.go index f6cde205..840e28ce 100644 --- a/core/trace/agent.go +++ b/core/trace/agent.go @@ -85,10 +85,7 @@ func createExporter(c Config) (sdktrace.SpanExporter, error) { if len(c.OtlpHeaders) > 0 { opts = append(opts, otlptracegrpc.WithHeaders(c.OtlpHeaders)) } - return otlptracegrpc.New( - context.Background(), - opts..., - ) + return otlptracegrpc.New(context.Background(), opts...) case kindOtlpHttp: // Not support flexible configuration now. opts := []otlptracehttp.Option{ @@ -101,10 +98,7 @@ func createExporter(c Config) (sdktrace.SpanExporter, error) { if len(c.OtlpHttpPath) > 0 { opts = append(opts, otlptracehttp.WithURLPath(c.OtlpHttpPath)) } - return otlptracehttp.New( - context.Background(), - opts..., - ) + return otlptracehttp.New(context.Background(), opts...) case kindFile: f, err := os.OpenFile(c.Endpoint, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666) if err != nil { diff --git a/core/trace/agent_test.go b/core/trace/agent_test.go index 2a03e7ae..e3056f4d 100644 --- a/core/trace/agent_test.go +++ b/core/trace/agent_test.go @@ -11,13 +11,14 @@ 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" - endpoint7 = "/tmp/trace.log" + endpoint1 = "localhost:1234" + endpoint2 = "remotehost:1234" + endpoint3 = "localhost:1235" + endpoint4 = "localhost:1236" + endpoint5 = "udp://localhost:6831" + endpoint6 = "localhost:1237" + endpoint71 = "/tmp/trace.log" + endpoint72 = "/not-exist-fs/trace.log" ) c1 := Config{ Name: "foo", @@ -66,7 +67,12 @@ func TestStartAgent(t *testing.T) { } c9 := Config{ Name: "file", - Endpoint: endpoint7, + Endpoint: endpoint71, + Batcher: kindFile, + } + c10 := Config{ + Name: "file", + Endpoint: endpoint72, Batcher: kindFile, } @@ -80,6 +86,7 @@ func TestStartAgent(t *testing.T) { StartAgent(c7) StartAgent(c8) StartAgent(c9) + StartAgent(c10) defer StopAgent() lock.Lock() @@ -97,6 +104,8 @@ func TestStartAgent(t *testing.T) { assert.True(t, ok) _, ok = agents[endpoint6] assert.False(t, ok) - _, ok = agents[endpoint7] + _, ok = agents[endpoint71] assert.True(t, ok) + _, ok = agents[endpoint72] + assert.False(t, ok) } diff --git a/rest/engine_test.go b/rest/engine_test.go index e9c7cebd..fe5358f1 100644 --- a/rest/engine_test.go +++ b/rest/engine_test.go @@ -2,6 +2,7 @@ package rest import ( "context" + "crypto/tls" "errors" "fmt" "net/http" @@ -15,6 +16,7 @@ import ( "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/core/fs" "github.com/zeromicro/go-zero/core/logx" + "github.com/zeromicro/go-zero/rest/router" ) const ( @@ -200,6 +202,7 @@ Verbose: true }, } + var index int32 for _, yaml := range yamls { yaml := yaml for _, route := range routes { @@ -208,6 +211,11 @@ Verbose: true var cnf RestConf assert.Nil(t, conf.LoadFromYamlBytes([]byte(yaml), &cnf)) ng := newEngine(cnf) + if atomic.AddInt32(&index, 1)%2 == 0 { + ng.setUnsignedCallback(func(w http.ResponseWriter, r *http.Request, + next http.Handler, strict bool, code int) { + }) + } ng.addRoutes(route) ng.use(func(next http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { @@ -398,6 +406,29 @@ func TestEngine_withTimeout(t *testing.T) { } } +func TestEngine_start(t *testing.T) { + logx.Disable() + + t.Run("http", func(t *testing.T) { + ng := newEngine(RestConf{ + Host: "localhost", + Port: -1, + }) + assert.Error(t, ng.start(router.NewRouter())) + }) + + t.Run("https", func(t *testing.T) { + ng := newEngine(RestConf{ + Host: "localhost", + Port: -1, + CertFile: "foo", + KeyFile: "bar", + }) + ng.tlsConfig = &tls.Config{} + assert.Error(t, ng.start(router.NewRouter())) + }) +} + type mockedRouter struct { }