OSDN Git Service

new repo
[bytom/vapor.git] / vendor / google.golang.org / grpc / grpclog / loggerv2_test.go
1 /*
2  *
3  * Copyright 2017 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18
19 package grpclog
20
21 import (
22         "bytes"
23         "fmt"
24         "regexp"
25         "testing"
26 )
27
28 func TestLoggerV2Severity(t *testing.T) {
29         buffers := []*bytes.Buffer{new(bytes.Buffer), new(bytes.Buffer), new(bytes.Buffer)}
30         SetLoggerV2(NewLoggerV2(buffers[infoLog], buffers[warningLog], buffers[errorLog]))
31
32         Info(severityName[infoLog])
33         Warning(severityName[warningLog])
34         Error(severityName[errorLog])
35
36         for i := 0; i < fatalLog; i++ {
37                 buf := buffers[i]
38                 // The content of info buffer should be something like:
39                 //  INFO: 2017/04/07 14:55:42 INFO
40                 //  WARNING: 2017/04/07 14:55:42 WARNING
41                 //  ERROR: 2017/04/07 14:55:42 ERROR
42                 for j := i; j < fatalLog; j++ {
43                         b, err := buf.ReadBytes('\n')
44                         if err != nil {
45                                 t.Fatal(err)
46                         }
47                         if err := checkLogForSeverity(j, b); err != nil {
48                                 t.Fatal(err)
49                         }
50                 }
51         }
52 }
53
54 // check if b is in the format of:
55 //  WARNING: 2017/04/07 14:55:42 WARNING
56 func checkLogForSeverity(s int, b []byte) error {
57         expected := regexp.MustCompile(fmt.Sprintf(`^%s: [0-9]{4}/[0-9]{2}/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} %s\n$`, severityName[s], severityName[s]))
58         if m := expected.Match(b); !m {
59                 return fmt.Errorf("got: %v, want string in format of: %v", string(b), severityName[s]+": 2016/10/05 17:09:26 "+severityName[s])
60         }
61         return nil
62 }