github.com/outbrain/consul@v1.4.5/logger/grpc_test.go (about) 1 package logger 2 3 import ( 4 "bytes" 5 "fmt" 6 "log" 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/require" 11 12 "google.golang.org/grpc/grpclog" 13 ) 14 15 func TestGRPCLogger(t *testing.T) { 16 var out bytes.Buffer 17 // No flags so we don't have to include date/time in expected output 18 logger := log.New(&out, "", 0) 19 grpclog.SetLoggerV2(NewGRPCLogger(&Config{LogLevel: "TRACE"}, logger)) 20 21 // All of these should output something 22 grpclog.Info("Info,") 23 grpclog.Infoln("Infoln") 24 grpclog.Infof("Infof: %d\n", 1) 25 26 grpclog.Warning("Warning,") 27 grpclog.Warningln("Warningln") 28 grpclog.Warningf("Warningf: %d\n", 1) 29 30 grpclog.Error("Error,") 31 grpclog.Errorln("Errorln") 32 grpclog.Errorf("Errorf: %d\n", 1) 33 34 // Fatal tests are hard... assume they are good! 35 expect := `[INFO] Info, 36 [INFO] Infoln 37 [INFO] Infof: 1 38 [WARN] Warning, 39 [WARN] Warningln 40 [WARN] Warningf: 1 41 [ERR] Error, 42 [ERR] Errorln 43 [ERR] Errorf: 1 44 ` 45 46 require.Equal(t, expect, out.String()) 47 } 48 49 func TestGRPCLogger_V(t *testing.T) { 50 51 tests := []struct { 52 level string 53 v int 54 want bool 55 }{ 56 {"ERR", -1, false}, 57 {"ERR", 0, false}, 58 {"ERR", 1, false}, 59 {"ERR", 2, false}, 60 {"ERR", 3, false}, 61 {"WARN", -1, false}, 62 {"WARN", 0, false}, 63 {"WARN", 1, false}, 64 {"WARN", 2, false}, 65 {"WARN", 3, false}, 66 {"INFO", -1, true}, 67 {"INFO", 0, true}, 68 {"INFO", 1, false}, 69 {"INFO", 2, false}, 70 {"INFO", 3, false}, 71 {"DEBUG", -1, true}, 72 {"DEBUG", 0, true}, 73 {"DEBUG", 1, true}, 74 {"DEBUG", 2, false}, 75 {"DEBUG", 3, false}, 76 {"TRACE", -1, true}, 77 {"TRACE", 0, true}, 78 {"TRACE", 1, true}, 79 {"TRACE", 2, true}, 80 {"TRACE", 3, true}, 81 } 82 83 for _, tt := range tests { 84 t.Run(fmt.Sprintf("%s,%d", tt.level, tt.v), func(t *testing.T) { 85 var out bytes.Buffer 86 // No flags so we don't have to include date/time in expected output 87 logger := log.New(&out, "", 0) 88 grpclog.SetLoggerV2(NewGRPCLogger(&Config{LogLevel: tt.level}, logger)) 89 90 assert.Equal(t, tt.want, grpclog.V(tt.v)) 91 }) 92 } 93 94 }