Skip to content

Commit 81fdf5b

Browse files
author
Julien Pivotto
authored
Merge pull request #448 from roidelapluie/test442
expfmt: add test case for issue with *bufio.Reader and FmtText format
2 parents ff69f32 + 3bdfd73 commit 81fdf5b

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

expfmt/decode_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
package expfmt
1515

1616
import (
17+
"bufio"
1718
"io"
1819
"net/http"
1920
"reflect"
@@ -491,3 +492,33 @@ func TestExtractSamples(t *testing.T) {
491492
t.Errorf("unexpected samples extracted, got: %v, want: %v", got, want)
492493
}
493494
}
495+
496+
func TestTextDecoderWithBufioReader(t *testing.T) {
497+
example := `
498+
# TYPE foo gauge
499+
foo 0
500+
`
501+
502+
var decoded bool
503+
r := bufio.NewReader(strings.NewReader(example))
504+
dec := NewDecoder(r, FmtText)
505+
for {
506+
var mf dto.MetricFamily
507+
if err := dec.Decode(&mf); err != nil {
508+
if err == io.EOF {
509+
break
510+
}
511+
t.Fatalf("Unexpected error: %v", err)
512+
}
513+
if mf.GetName() != "foo" {
514+
t.Errorf("Unexpected metric name: got %v, expected %v", mf.GetName(), "foo")
515+
}
516+
if len(mf.Metric) != 1 {
517+
t.Errorf("Unexpected number of metrics: got %v, expected %v", len(mf.Metric), 1)
518+
}
519+
decoded = true
520+
}
521+
if !decoded {
522+
t.Fatal("Metric foo not decoded")
523+
}
524+
}

0 commit comments

Comments
 (0)