MCPcopy Create free account
hub / github.com/buger/jsonparser / TestReaderParserLargeFile

Function TestReaderParserLargeFile

reader_parser_test.go:138–162  ·  view source on GitHub ↗

Verifies: SYS-REQ-116 (bounded window over a large stream) SYS-REQ-116:boundary:nominal reqproof:proptest:skip deterministic 100 MiB streaming boundary witness

(t *testing.T)

Source from the content-addressed store, hash-verified

136// SYS-REQ-116:boundary:nominal
137// reqproof:proptest:skip deterministic 100 MiB streaming boundary witness
138func TestReaderParserLargeFile(t *testing.T) {
139 const paddingSize = int64(100 * 1024 * 1024)
140 const maxBufferSize = 32 * 1024
141
142 source := io.MultiReader(
143 strings.NewReader(`{"padding":"`),
144 &repeatedByteReader{remaining: paddingSize, value: 'x'},
145 strings.NewReader(`","target":"found"}`),
146 )
147 rp := NewReaderParser(source, Config{MaxBufferSize: maxBufferSize})
148
149 value, vt, err := rp.Get("target")
150 if err != nil {
151 t.Fatalf("Get after 100 MiB field returned error: %v", err)
152 }
153 if vt != String || string(value) != "found" {
154 t.Fatalf("Get after 100 MiB field = (%q, %v), want (found, String)", value, vt)
155 }
156 if rp.bufStart < paddingSize {
157 t.Fatalf("sliding buffer discarded through offset %d, want at least %d", rp.bufStart, paddingSize)
158 }
159 if cap(rp.buf) > 2*maxBufferSize {
160 t.Fatalf("sliding buffer capacity = %d, want <= %d", cap(rp.buf), 2*maxBufferSize)
161 }
162}
163
164// Verifies: SYS-REQ-116 (malformed and truncated streams)
165// SYS-REQ-116:malformed_input:nominal

Callers

nothing calls this directly

Calls 2

GetMethod · 0.95
NewReaderParserFunction · 0.85

Tested by

no test coverage detected