MCPcopy Create free account
hub / github.com/dgrr/http2 / TestFrameRead

Function TestFrameRead

frameHeader_test.go:43–87  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

41}
42
43func TestFrameRead(t *testing.T) {
44 var h [9]byte
45 bf := bytes.NewBuffer(nil)
46 br := bufio.NewReader(bf)
47
48 http2utils.Uint24ToBytes(h[:3], uint32(len(testStr)))
49
50 n, err := bf.Write(h[:9])
51 if err != nil {
52 t.Fatal(err)
53 }
54 if n != 9 {
55 t.Fatalf("unexpected written bytes %d<>9", n)
56 }
57
58 n, err = io.WriteString(bf, testStr)
59 if err != nil {
60 t.Fatal(err)
61 }
62 if n != len(testStr) {
63 t.Fatalf("unexpected written bytes %d<>%d", n, len(testStr))
64 }
65
66 fr := AcquireFrameHeader()
67 defer ReleaseFrameHeader(fr)
68
69 nn, err := fr.ReadFrom(br)
70 if err != nil {
71 t.Fatal(err)
72 }
73 n = int(nn)
74 if n != len(testStr)+9 {
75 t.Fatalf("unexpected read bytes %d<>%d", n, len(testStr)+9)
76 }
77
78 if fr.Type() != FrameData {
79 t.Fatalf("unexpected frame type: %s. Expected Data", fr.Type())
80 }
81
82 data := fr.Body().(*Data)
83
84 if str := string(data.Data()); str != testStr {
85 t.Fatalf("mismatch %s<>%s", str, testStr)
86 }
87}
88
89// TODO: continue

Callers

nothing calls this directly

Calls 8

Uint24ToBytesFunction · 0.92
AcquireFrameHeaderFunction · 0.85
ReleaseFrameHeaderFunction · 0.85
BodyMethod · 0.80
TypeMethod · 0.65
WriteMethod · 0.45
ReadFromMethod · 0.45
DataMethod · 0.45

Tested by

no test coverage detected