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

Function TestReadArray_TimeAndDuration

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

Source from the content-addressed store, hash-verified

522}
523
524func TestReadArray_TimeAndDuration(t *testing.T) {
525 var buf bytes.Buffer
526 w := NewWriter(&buf)
527
528 now := time.Unix(1700000000, 123456789).UTC()
529 durs := []time.Duration{0, time.Second, -5 * time.Millisecond}
530
531 // time.Time
532 if err := w.WriteArrayHeader(2); err != nil {
533 t.Fatalf("WriteArrayHeader: %v", err)
534 }
535 if err := w.WriteTime(now); err != nil {
536 t.Fatalf("WriteTime: %v", err)
537 }
538 if err := w.WriteTime(now.Add(time.Minute)); err != nil {
539 t.Fatalf("WriteTime: %v", err)
540 }
541
542 // time.Duration
543 if err := w.WriteArrayHeader(uint32(len(durs))); err != nil {
544 t.Fatalf("WriteArrayHeader: %v", err)
545 }
546 for _, d := range durs {
547 if err := w.WriteDuration(d); err != nil {
548 t.Fatalf("WriteDuration: %v", err)
549 }
550 }
551 if err := w.Flush(); err != nil {
552 t.Fatalf("Flush: %v", err)
553 }
554
555 r := NewReader(&buf)
556 timesGot, err := collectSeq2(ReadArray[time.Time](r, r.ReadTime))
557 if err != nil {
558 t.Fatalf("times iteration error: %v", err)
559 }
560 if len(timesGot) != 2 || !timesGot[0].Equal(now) || !timesGot[1].Equal(now.Add(time.Minute)) {
561 t.Fatalf("times mismatch: got %v", timesGot)
562 }
563
564 dursGot, err := collectSeq2(ReadArray[time.Duration](r, r.ReadDuration))
565 if err != nil {
566 t.Fatalf("durations iteration error: %v", err)
567 }
568 if len(dursGot) != len(durs) {
569 t.Fatalf("length mismatch: got %d want %d", len(dursGot), len(durs))
570 }
571 for i := range durs {
572 if dursGot[i] != durs[i] {
573 t.Fatalf("index %d: got %v want %v", i, dursGot[i], durs[i])
574 }
575 }
576}
577
578func TestReadNumberArrayBytes_Uint16(t *testing.T) {
579 var msg []byte

Callers

nothing calls this directly

Calls 10

WriteArrayHeaderMethod · 0.95
WriteTimeMethod · 0.95
WriteDurationMethod · 0.95
FlushMethod · 0.95
NewWriterFunction · 0.85
NewReaderFunction · 0.85
collectSeq2Function · 0.85
ReadArrayFunction · 0.85
AddMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…