MCPcopy
hub / github.com/tinylib/msgp / TestReadArray_ErrorOnTooFewElements

Function TestReadArray_ErrorOnTooFewElements

msgp/iter_test.go:639–670  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

637}
638
639func TestReadArray_ErrorOnTooFewElements(t *testing.T) {
640 // Array header says 2, but only 1 element provided.
641 var buf bytes.Buffer
642 w := NewWriter(&buf)
643 if err := w.WriteArrayHeader(2); err != nil {
644 t.Fatalf("WriteArrayHeader: %v", err)
645 }
646 if err := w.WriteInt(7); err != nil {
647 t.Fatalf("WriteInt: %v", err)
648 }
649 if err := w.Flush(); err != nil {
650 t.Fatalf("Flush: %v", err)
651 }
652
653 r := NewReader(&buf)
654 var got []int
655 var firstErr error
656 ReadArray(r, r.ReadInt)(func(v int, err error) bool {
657 if err != nil {
658 firstErr = err
659 return false
660 }
661 got = append(got, v)
662 return true
663 })
664 if firstErr == nil {
665 t.Fatalf("expected error due to missing second element, got nil")
666 }
667 if len(got) != 1 || got[0] != 7 {
668 t.Fatalf("unexpected values read before error: %v", got)
669 }
670}
671
672// approxEqual checks approximate equality for float32/float64
673func approxEqual[T ~float32 | ~float64](a, b T) bool {

Callers

nothing calls this directly

Calls 6

WriteArrayHeaderMethod · 0.95
WriteIntMethod · 0.95
FlushMethod · 0.95
NewWriterFunction · 0.85
NewReaderFunction · 0.85
ReadArrayFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…