(t *testing.T)
| 241 | } |
| 242 | |
| 243 | func TestCJSONEncoderTypicalDocumentStableWire(t *testing.T) { |
| 244 | state := NewState() |
| 245 | enc := state.NewEncoder() |
| 246 | doc := newBenchEncoderTypicalDoc() |
| 247 | |
| 248 | ser1 := NewPoolSerializer() |
| 249 | if err := enc.EncodeRaw(doc, ser1); err != nil { |
| 250 | t.Fatalf("first encode: %v", err) |
| 251 | } |
| 252 | wire1 := append([]byte(nil), ser1.Bytes()...) |
| 253 | ser1.Close() |
| 254 | |
| 255 | ser2 := NewPoolSerializer() |
| 256 | if err := enc.EncodeRaw(doc, ser2); err != nil { |
| 257 | t.Fatalf("second encode: %v", err) |
| 258 | } |
| 259 | wire2 := append([]byte(nil), ser2.Bytes()...) |
| 260 | ser2.Close() |
| 261 | |
| 262 | if !bytes.Equal(wire1, wire2) { |
| 263 | t.Fatalf("EncodeRaw produced unstable wire bytes: len1=%d len2=%d", len(wire1), len(wire2)) |
| 264 | } |
| 265 | |
| 266 | dec := state.NewDecoder(benchEncoderTypicalDoc{}, nil) |
| 267 | defer dec.Finalize() |
| 268 | var decoded benchEncoderTypicalDoc |
| 269 | if err := dec.Decode(wire2, &decoded); err != nil { |
| 270 | t.Fatalf("decode encoded document: %v", err) |
| 271 | } |
| 272 | if !reflect.DeepEqual(doc, decoded) { |
| 273 | t.Fatalf("EncodeRaw/Decode mismatch:\nwant: %#v\n got: %#v", doc, decoded) |
| 274 | } |
| 275 | } |
nothing calls this directly
no test coverage detected