Golang counters for readers/writers.
buf:= bytes.Buffer{}
buf.Write(data)
counter:=datacounter.NewReaderCounter(&buf)
io.Copy(ioutil.Discard, counter)
ifcounter.Count() !=dataLen {
t.Fatalf("count mismatch len of test data: %d != %d", counter.Count(), len(data))
}buf:= bytes.Buffer{}
counter:=datacounter.NewWriterCounter(&buf)
counter.Write(data)
ifcounter.Count() !=dataLen {
t.Fatalf("count mismatch len of test data: %d != %d", counter.Count(), len(data))
}handler:=func(w http.ResponseWriter, r*http.Request) {
w.Write(data)
}
req, err:=http.NewRequest("GET", "http://example.com/foo", nil)
iferr!=nil {
t.Fatal(err)
}
w:=httptest.NewRecorder()
counter:=datacounter.NewResponseWriterCounter(w)
handler(counter, req)
ifcounter.Count() !=dataLen {
t.Fatalf("count mismatch len of test data: %d != %d", counter.Count(), len(data))
}