@@ -23,6 +23,7 @@ import (
2323 "os"
2424 "reflect"
2525 "sort"
26+ "strconv"
2627 "strings"
2728 "testing"
2829
8889 var all model.Vector
8990 for {
9091 var smpls model.Vector
91- err := dec .Decode (& smpls , model . UTF8Validation )
92+ err := dec .Decode (& smpls )
9293 if err != nil && errors .Is (err , io .EOF ) {
9394 break
9495 }
@@ -360,44 +361,46 @@ func TestProtoDecoder(t *testing.T) {
360361 }
361362
362363 for i , scenario := range scenarios {
363- dec := & SampleDecoder {
364- Dec : & protoDecoder {r : strings .NewReader (scenario .in )},
365- Opts : & DecodeOptions {
366- Timestamp : testTime ,
367- },
368- }
369-
370- var all model.Vector
371- for {
372- var smpls model.Vector
373- err := dec .Decode (& smpls , model .LegacyValidation )
374- if err != nil && errors .Is (err , io .EOF ) {
375- break
364+ t .Run (strconv .Itoa (i ), func (t * testing.T ) {
365+ dec := & SampleDecoder {
366+ Dec : newDecoder (t , strings .NewReader (scenario .in ), FmtProtoDelim , model .LegacyValidation ),
367+ Opts : & DecodeOptions {
368+ Timestamp : testTime ,
369+ },
376370 }
377- if scenario .legacyNameFail {
378- require .Errorf (t , err , "Expected error when decoding without UTF-8 support enabled but got none" )
379- dec = & SampleDecoder {
380- Dec : & protoDecoder {r : strings .NewReader (scenario .in )},
381- Opts : & DecodeOptions {
382- Timestamp : testTime ,
383- },
371+
372+ var all model.Vector
373+ for {
374+ var smpls model.Vector
375+ err := dec .Decode (& smpls )
376+ if err != nil && errors .Is (err , io .EOF ) {
377+ break
378+ }
379+ if scenario .legacyNameFail {
380+ require .Errorf (t , err , "Expected error when decoding without UTF-8 support enabled but got none" )
381+ dec = & SampleDecoder {
382+ Dec : newDecoder (t , strings .NewReader (scenario .in ), FmtProtoDelim , model .UTF8Validation ),
383+ Opts : & DecodeOptions {
384+ Timestamp : testTime ,
385+ },
386+ }
387+ err = dec .Decode (& smpls )
388+ if errors .Is (err , io .EOF ) {
389+ break
390+ }
391+ require .NoErrorf (t , err , "Unexpected error when decoding with UTF-8 support: %v" , err )
384392 }
385- err = dec . Decode ( & smpls , model . UTF8Validation )
386- if errors . Is ( err , io . EOF ) {
393+ if scenario . fail {
394+ require . Errorf ( t , err , "Expected error but got none" )
387395 break
388396 }
389- require .NoErrorf (t , err , "Unexpected error when decoding with UTF-8 support: %v" , err )
397+ require .NoError (t , err )
398+ all = append (all , smpls ... )
390399 }
391- if scenario .fail {
392- require .Errorf (t , err , "Expected error but got none" )
393- break
394- }
395- require .NoError (t , err )
396- all = append (all , smpls ... )
397- }
398- sort .Sort (all )
399- sort .Sort (scenario .expected )
400- require .Truef (t , reflect .DeepEqual (all , scenario .expected ), "%d. output does not match, want: %#v, got %#v" , i , scenario .expected , all )
400+ sort .Sort (all )
401+ sort .Sort (scenario .expected )
402+ require .Truef (t , reflect .DeepEqual (all , scenario .expected ), "%d. output does not match, want: %#v, got %#v" , i , scenario .expected , all )
403+ })
401404 }
402405}
403406
@@ -406,11 +409,11 @@ func TestProtoMultiMessageDecoder(t *testing.T) {
406409 require .NoErrorf (t , err , "Reading file failed: %v" , err )
407410
408411 buf := bytes .NewReader (data )
409- decoder := NewDecoder ( buf , FmtProtoDelim )
412+ decoder := newDecoder ( t , buf , FmtProtoDelim , model . UTF8Validation )
410413 var metrics []* dto.MetricFamily
411414 for {
412415 var mf dto.MetricFamily
413- if err := decoder .Decode (& mf , model . UTF8Validation ); err != nil {
416+ if err := decoder .Decode (& mf ); err != nil {
414417 if errors .Is (err , io .EOF ) {
415418 break
416419 }
@@ -555,10 +558,10 @@ func TestTextDecoderWithBufioReader(t *testing.T) {
555558
556559 var decoded bool
557560 r := bufio .NewReader (strings .NewReader (example ))
558- dec := NewDecoder ( r , FmtText )
561+ dec := newDecoder ( t , r , FmtText , model . UTF8Validation )
559562 for {
560563 var mf dto.MetricFamily
561- if err := dec .Decode (& mf , model . UTF8Validation ); err != nil {
564+ if err := dec .Decode (& mf ); err != nil {
562565 if errors .Is (err , io .EOF ) {
563566 break
564567 }
0 commit comments