| /* | |
| * | |
| * Copyright 2018 gRPC authors. | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| * | |
| */ | |
| package binarylog | |
| import ( | |
| "reflect" | |
| "testing" | |
| ) | |
| func (s) TestLongMethodConfigRegexp(t *testing.T) { | |
| testCases := []struct { | |
| in string | |
| out []string | |
| }{ | |
| {in: "", out: nil}, | |
| {in: "*/m", out: nil}, | |
| { | |
| in: "p.s/m{}", | |
| out: []string{"p.s/m{}", "p.s", "m", "{}"}, | |
| }, | |
| { | |
| in: "p.s/m", | |
| out: []string{"p.s/m", "p.s", "m", ""}, | |
| }, | |
| { | |
| in: "p.s/m{h}", | |
| out: []string{"p.s/m{h}", "p.s", "m", "{h}"}, | |
| }, | |
| { | |
| in: "p.s/m{m}", | |
| out: []string{"p.s/m{m}", "p.s", "m", "{m}"}, | |
| }, | |
| { | |
| in: "p.s/m{h:123}", | |
| out: []string{"p.s/m{h:123}", "p.s", "m", "{h:123}"}, | |
| }, | |
| { | |
| in: "p.s/m{m:123}", | |
| out: []string{"p.s/m{m:123}", "p.s", "m", "{m:123}"}, | |
| }, | |
| { | |
| in: "p.s/m{h:123,m:123}", | |
| out: []string{"p.s/m{h:123,m:123}", "p.s", "m", "{h:123,m:123}"}, | |
| }, | |
| { | |
| in: "p.s/*", | |
| out: []string{"p.s/*", "p.s", "*", ""}, | |
| }, | |
| { | |
| in: "p.s/*{h}", | |
| out: []string{"p.s/*{h}", "p.s", "*", "{h}"}, | |
| }, | |
| { | |
| in: "s/m*", | |
| out: []string{"s/m*", "s", "m", "*"}, | |
| }, | |
| { | |
| in: "s/**", | |
| out: []string{"s/**", "s", "*", "*"}, | |
| }, | |
| } | |
| for _, tc := range testCases { | |
| match := longMethodConfigRegexp.FindStringSubmatch(tc.in) | |
| if !reflect.DeepEqual(match, tc.out) { | |
| t.Errorf("in: %q, out: %q, want: %q", tc.in, match, tc.out) | |
| } | |
| } | |
| } | |
| func (s) TestHeaderConfigRegexp(t *testing.T) { | |
| testCases := []struct { | |
| in string | |
| out []string | |
| }{ | |
| {in: "{}", out: nil}, | |
| {in: "{a:b}", out: nil}, | |
| {in: "{m:123}", out: nil}, | |
| {in: "{h:123;m:123}", out: nil}, | |
| { | |
| in: "{h}", | |
| out: []string{"{h}", ""}, | |
| }, | |
| { | |
| in: "{h:123}", | |
| out: []string{"{h:123}", "123"}, | |
| }, | |
| } | |
| for _, tc := range testCases { | |
| match := headerConfigRegexp.FindStringSubmatch(tc.in) | |
| if !reflect.DeepEqual(match, tc.out) { | |
| t.Errorf("in: %q, out: %q, want: %q", tc.in, match, tc.out) | |
| } | |
| } | |
| } | |
| func (s) TestMessageConfigRegexp(t *testing.T) { | |
| testCases := []struct { | |
| in string | |
| out []string | |
| }{ | |
| {in: "{}", out: nil}, | |
| {in: "{a:b}", out: nil}, | |
| {in: "{h:123}", out: nil}, | |
| {in: "{h:123;m:123}", out: nil}, | |
| { | |
| in: "{m}", | |
| out: []string{"{m}", ""}, | |
| }, | |
| { | |
| in: "{m:123}", | |
| out: []string{"{m:123}", "123"}, | |
| }, | |
| } | |
| for _, tc := range testCases { | |
| match := messageConfigRegexp.FindStringSubmatch(tc.in) | |
| if !reflect.DeepEqual(match, tc.out) { | |
| t.Errorf("in: %q, out: %q, want: %q", tc.in, match, tc.out) | |
| } | |
| } | |
| } | |
| func (s) TestHeaderMessageConfigRegexp(t *testing.T) { | |
| testCases := []struct { | |
| in string | |
| out []string | |
| }{ | |
| {in: "{}", out: nil}, | |
| {in: "{a:b}", out: nil}, | |
| {in: "{h}", out: nil}, | |
| {in: "{h:123}", out: nil}, | |
| {in: "{m}", out: nil}, | |
| {in: "{m:123}", out: nil}, | |
| { | |
| in: "{h;m}", | |
| out: []string{"{h;m}", "", ""}, | |
| }, | |
| { | |
| in: "{h:123;m}", | |
| out: []string{"{h:123;m}", "123", ""}, | |
| }, | |
| { | |
| in: "{h;m:123}", | |
| out: []string{"{h;m:123}", "", "123"}, | |
| }, | |
| { | |
| in: "{h:123;m:123}", | |
| out: []string{"{h:123;m:123}", "123", "123"}, | |
| }, | |
| } | |
| for _, tc := range testCases { | |
| match := headerMessageConfigRegexp.FindStringSubmatch(tc.in) | |
| if !reflect.DeepEqual(match, tc.out) { | |
| t.Errorf("in: %q, out: %q, want: %q", tc.in, match, tc.out) | |
| } | |
| } | |
| } |