MCPcopy Create free account
hub / github.com/djherbis/buffer / TestRingComplex

Function TestRingComplex

buffer_test.go:220–248  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

218}
219
220func TestRingComplex(t *testing.T) {
221 ringSize := 10
222 data := []byte("hello!")
223 ring := NewRing(New(int64(ringSize)))
224 buf := make([]byte, ringSize)
225
226 for i := 0; i < 10; i++ {
227 ring.Write(data)
228 n, err := ring.Read(buf)
229 if err != nil {
230 t.Errorf("unexpected error %s", err)
231 } else if !bytes.Equal(buf[:n], data) {
232 t.Errorf("expected %s got %s", data, buf[:n])
233 }
234 }
235
236 // we are going to overflow the buffer here, we expect the last 10 bytes to remain
237 repData := bytes.Repeat(data, 3)
238 leftover := repData[len(repData)-ringSize:]
239 for i := 0; i < 10; i++ {
240 ring.Write(repData)
241 n, err := ring.Read(buf)
242 if err != nil {
243 t.Errorf("unexpected error %s", err)
244 } else if !bytes.Equal(buf[:n], leftover) {
245 t.Errorf("expected %s got %s", leftover, buf[:n])
246 }
247 }
248}
249
250func TestRing(t *testing.T) {
251 ring := NewRing(New(3))

Callers

nothing calls this directly

Calls 4

NewRingFunction · 0.85
NewFunction · 0.85
WriteMethod · 0.45
ReadMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…