MCPcopy Create free account
hub / github.com/apache/fory / TestStreamDeserializationEOF

Function TestStreamDeserializationEOF

go/fory/stream_test.go:109–136  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

107}
108
109func TestStreamDeserializationEOF(t *testing.T) {
110 f := New(WithXlang(false), WithCompatible(false))
111 f.RegisterStruct(&StreamTestStruct{}, 100)
112
113 original := &StreamTestStruct{
114 ID: 42,
115 Name: "EOF Test",
116 }
117
118 data, err := f.Serialize(original)
119 if err != nil {
120 t.Fatalf("Serialize failed: %v", err)
121 }
122
123 // Truncate data to cause unexpected EOF during reading Name
124 truncated := data[:len(data)-2]
125 reader := bytes.NewReader(truncated)
126 var decoded StreamTestStruct
127 err = f.DeserializeFromReader(reader, &decoded)
128 if err == nil {
129 t.Fatal("Expected error on truncated stream, got nil")
130 }
131
132 // Ideally it should be a BufferOutOfBoundError
133 if _, ok := err.(Error); !ok {
134 t.Errorf("Expected fory.Error, got %T: %v", err, err)
135 }
136}
137
138func TestDeserializeFromStreamClearsReadMetadataOnError(t *testing.T) {
139 f := New(WithXlang(false), WithCompatible(true))

Callers

nothing calls this directly

Calls 6

WithXlangFunction · 0.85
WithCompatibleFunction · 0.85
NewFunction · 0.70
RegisterStructMethod · 0.45
SerializeMethod · 0.45
DeserializeFromReaderMethod · 0.45

Tested by

no test coverage detected