mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 02:03:20 -04:00 
			
		
		
		
	Dep helper (#2151)
* Add dep task to update go dependencies * Update go dependencies
This commit is contained in:
		
				
					committed by
					
						 Miek Gieben
						Miek Gieben
					
				
			
			
				
	
			
			
			
						parent
						
							8f8b81f56b
						
					
				
				
					commit
					0e8977761d
				
			
							
								
								
									
										59
									
								
								vendor/github.com/kr/logfmt/bench_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										59
									
								
								vendor/github.com/kr/logfmt/bench_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,59 +0,0 @@ | ||||
| package logfmt | ||||
|  | ||||
| import ( | ||||
| 	"testing" | ||||
| 	"time" | ||||
| ) | ||||
|  | ||||
| func BenchmarkScanner(b *testing.B) { | ||||
| 	b.StopTimer() | ||||
| 	data := []byte("measure.test=1 measure.foo=bar measure.time=2h measure=\"foo\"") | ||||
| 	h := new(nopHandler) | ||||
| 	b.SetBytes(int64(len(data))) | ||||
| 	b.StartTimer() | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		if err := gotoScanner(data, h); err != nil { | ||||
| 			panic(err) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| type nopHandler struct { | ||||
| 	called bool | ||||
| } | ||||
|  | ||||
| func (h *nopHandler) HandleLogfmt(key, val []byte) error { | ||||
| 	h.called = true | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func BenchmarkDecodeCustom(b *testing.B) { | ||||
| 	data := []byte(`a=foo b=10ms c=cat E="123" d foo= emp=`) | ||||
|  | ||||
| 	h := new(nopHandler) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		if err := Unmarshal(data, h); err != nil { | ||||
| 			panic(err) | ||||
| 		} | ||||
| 	} | ||||
| 	if !h.called { | ||||
| 		panic("handler not called") | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func BenchmarkDecodeDefault(b *testing.B) { | ||||
| 	data := []byte(`a=foo b=10ms c=cat E="123" d foo= emp=`) | ||||
| 	var g struct { | ||||
| 		A string | ||||
| 		B time.Duration | ||||
| 		C *string | ||||
| 		E string | ||||
| 		D bool | ||||
| 	} | ||||
|  | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		if err := Unmarshal(data, &g); err != nil { | ||||
| 			panic(err) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										110
									
								
								vendor/github.com/kr/logfmt/decode_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										110
									
								
								vendor/github.com/kr/logfmt/decode_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,110 +0,0 @@ | ||||
| package logfmt | ||||
|  | ||||
| import ( | ||||
| 	"reflect" | ||||
| 	"testing" | ||||
| 	"time" | ||||
| ) | ||||
|  | ||||
| type pair struct { | ||||
| 	k, v string | ||||
| } | ||||
|  | ||||
| type coll struct { | ||||
| 	a []pair | ||||
| } | ||||
|  | ||||
| func (c *coll) HandleLogfmt(key, val []byte) error { | ||||
| 	c.a = append(c.a, pair{string(key), string(val)}) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func TestDecodeCustom(t *testing.T) { | ||||
| 	data := []byte(`a=foo b=10ms c=cat E="123" d foo= emp=`) | ||||
|  | ||||
| 	g := new(coll) | ||||
| 	if err := Unmarshal(data, g); err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	w := []pair{ | ||||
| 		{"a", "foo"}, | ||||
| 		{"b", "10ms"}, | ||||
| 		{"c", "cat"}, | ||||
| 		{"E", "123"}, | ||||
| 		{"d", ""}, | ||||
| 		{"foo", ""}, | ||||
| 		{"emp", ""}, | ||||
| 	} | ||||
|  | ||||
| 	if !reflect.DeepEqual(w, g.a) { | ||||
| 		t.Errorf("\nwant %v\n got %v", w, g) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestDecodeDefault(t *testing.T) { | ||||
| 	var g struct { | ||||
| 		Float  float64 | ||||
| 		NFloat *float64 | ||||
| 		String string | ||||
| 		Int    int | ||||
| 		D      time.Duration | ||||
| 		NB     *[]byte | ||||
| 		Here   bool | ||||
| 		This   int `logfmt:"that"` | ||||
| 	} | ||||
|  | ||||
| 	em, err := NewStructHandler(&g) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	var tests = []struct { | ||||
| 		name string | ||||
| 		val  string | ||||
| 		want interface{} | ||||
| 	}{ | ||||
| 		{"float", "3.14", 3.14}, | ||||
| 		{"nfloat", "123", float64(123)}, | ||||
| 		{"string", "foobar", "foobar"}, | ||||
| 		{"inT", "10", 10}, | ||||
| 		{"d", "1h", 1 * time.Hour}, | ||||
| 		{"nb", "bytes!", []byte("bytes!")}, | ||||
| 		{"here", "", true}, | ||||
| 		{"that", "5", 5}, | ||||
| 	} | ||||
|  | ||||
| 	rv := reflect.Indirect(reflect.ValueOf(&g)) | ||||
| 	for i, test := range tests { | ||||
| 		err = em.HandleLogfmt([]byte(test.name), []byte(test.val)) | ||||
| 		if err != nil { | ||||
| 			t.Error(err) | ||||
| 			continue | ||||
| 		} | ||||
|  | ||||
| 		fv := reflect.Indirect(rv.Field(i)) | ||||
| 		if !fv.IsValid() { | ||||
| 			ft := rv.Type().Field(i) | ||||
| 			t.Errorf("%s is invalid", ft.Name) | ||||
| 			continue | ||||
| 		} | ||||
|  | ||||
| 		gv := fv.Interface() | ||||
| 		if !reflect.DeepEqual(gv, test.want) { | ||||
| 			t.Errorf("want %T %#v, got %T %#v", test.want, test.want, gv, gv) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if g.Float != 3.14 { | ||||
| 		t.Errorf("want %v, got %v", 3.14, g.Float) | ||||
| 	} | ||||
|  | ||||
| 	err = em.HandleLogfmt([]byte("nfloat"), []byte("123")) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	if g.NFloat == nil || *g.NFloat != 123 { | ||||
| 		t.Errorf("want %v, got %v", 123, *g.NFloat) | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										59
									
								
								vendor/github.com/kr/logfmt/example_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										59
									
								
								vendor/github.com/kr/logfmt/example_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,59 +0,0 @@ | ||||
| package logfmt_test | ||||
|  | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"fmt" | ||||
| 	"github.com/kr/logfmt" | ||||
| 	"log" | ||||
| 	"strconv" | ||||
| ) | ||||
|  | ||||
| type Measurement struct { | ||||
| 	Key  string | ||||
| 	Val  float64 | ||||
| 	Unit string // (e.g. ms, MB, etc) | ||||
| } | ||||
|  | ||||
| type Measurements []*Measurement | ||||
|  | ||||
| var measurePrefix = []byte("measure.") | ||||
|  | ||||
| func (mm *Measurements) HandleLogfmt(key, val []byte) error { | ||||
| 	if !bytes.HasPrefix(key, measurePrefix) { | ||||
| 		return nil | ||||
| 	} | ||||
| 	i := bytes.LastIndexFunc(val, isDigit) | ||||
| 	v, err := strconv.ParseFloat(string(val[:i+1]), 10) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	m := &Measurement{ | ||||
| 		Key:  string(key[len(measurePrefix):]), | ||||
| 		Val:  v, | ||||
| 		Unit: string(val[i+1:]), | ||||
| 	} | ||||
| 	*mm = append(*mm, m) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // return true if r is an ASCII digit only, as opposed to unicode.IsDigit. | ||||
| func isDigit(r rune) bool { | ||||
| 	return '0' <= r && r <= '9' | ||||
| } | ||||
|  | ||||
| func Example_customHandler() { | ||||
| 	var data = []byte("measure.a=1ms measure.b=10 measure.c=100MB measure.d=1s garbage") | ||||
|  | ||||
| 	mm := make(Measurements, 0) | ||||
| 	if err := logfmt.Unmarshal(data, &mm); err != nil { | ||||
| 		log.Fatalf("err=%q", err) | ||||
| 	} | ||||
| 	for _, m := range mm { | ||||
| 		fmt.Printf("%v\n", *m) | ||||
| 	} | ||||
| 	// Output: | ||||
| 	// {a 1 ms} | ||||
| 	// {b 10 } | ||||
| 	// {c 100 MB} | ||||
| 	// {d 1 s} | ||||
| } | ||||
							
								
								
									
										67
									
								
								vendor/github.com/kr/logfmt/scanner_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										67
									
								
								vendor/github.com/kr/logfmt/scanner_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,67 +0,0 @@ | ||||
| package logfmt | ||||
|  | ||||
| import ( | ||||
| 	"reflect" | ||||
| 	"testing" | ||||
| ) | ||||
|  | ||||
| func TestScannerSimple(t *testing.T) { | ||||
| 	type T struct { | ||||
| 		k string | ||||
| 		v string | ||||
| 	} | ||||
|  | ||||
| 	tests := []struct { | ||||
| 		data string | ||||
| 		want []T | ||||
| 	}{ | ||||
| 		{ | ||||
| 			`a=1 b="bar" ƒ=2h3s r="esc\t" d x=sf   `, | ||||
| 			[]T{ | ||||
| 				{"a", "1"}, | ||||
| 				{"b", "bar"}, | ||||
| 				{"ƒ", "2h3s"}, | ||||
| 				{"r", "esc\t"}, | ||||
| 				{"d", ""}, | ||||
| 				{"x", "sf"}, | ||||
| 			}, | ||||
| 		}, | ||||
| 		{`x= `, []T{{"x", ""}}}, | ||||
| 		{`y=`, []T{{"y", ""}}}, | ||||
| 		{`y`, []T{{"y", ""}}}, | ||||
| 		{`y=f`, []T{{"y", "f"}}}, | ||||
| 	} | ||||
|  | ||||
| 	for _, test := range tests { | ||||
| 		var got []T | ||||
| 		h := func(key, val []byte) error { | ||||
| 			got = append(got, T{string(key), string(val)}) | ||||
| 			return nil | ||||
| 		} | ||||
| 		gotoScanner([]byte(test.data), HandlerFunc(h)) | ||||
| 		if !reflect.DeepEqual(test.want, got) { | ||||
| 			t.Errorf("want %q, got %q", test.want, got) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	var called bool | ||||
| 	h := func(key, val []byte) error { called = true; return nil } | ||||
| 	err := gotoScanner([]byte(`foo="b`), HandlerFunc(h)) | ||||
| 	if err != ErrUnterminatedString { | ||||
| 		t.Errorf("want %v, got %v", ErrUnterminatedString, err) | ||||
| 	} | ||||
| 	if called { | ||||
| 		t.Error("did not expect call to handler") | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestScannerAllocs(t *testing.T) { | ||||
| 	data := []byte(`a=1 b="bar" ƒ=2h3s r="esc\t" d x=sf   `) | ||||
| 	h := func(key, val []byte) error { return nil } | ||||
| 	allocs := testing.AllocsPerRun(1000, func() { | ||||
| 		gotoScanner(data, HandlerFunc(h)) | ||||
| 	}) | ||||
| 	if allocs > 1 { | ||||
| 		t.Errorf("got %f, want <=1", allocs) | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user