Bladeren bron

chore: add more tests (#3299)

Kevin Wan 1 jaar geleden
bovenliggende
commit
8a4cc4f98d
4 gewijzigde bestanden met toevoegingen van 52 en 18 verwijderingen
  1. 1 1
      .github/workflows/go.yml
  2. 2 8
      core/trace/agent.go
  3. 18 9
      core/trace/agent_test.go
  4. 31 0
      rest/engine_test.go

+ 1 - 1
.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

+ 2 - 8
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 {

+ 18 - 9
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)
 }

+ 31 - 0
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 {
 }