MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / valid_null_array_falsely_rejected

Function valid_null_array_falsely_rejected

src/avro/src/decode.rs:225–249  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

223
224 #[mz_ore::test]
225 fn valid_null_array_falsely_rejected() {
226 // Materialize's encoder emits no element bytes for `null` array
227 // elements, so decoding must not assume each element consumes at least
228 // one byte of remaining input.
229 use std::str::FromStr;
230
231 use super::{AvroDeserializer, GeneralDeserializer};
232 use crate::encode::encode_to_vec;
233 use crate::types::Value;
234 use crate::{Schema, ValueDecoder};
235
236 let schema = Schema::from_str(r#"{"type": "array", "items": "null"}"#).unwrap();
237 let value = Value::Array(vec![Value::Null, Value::Null]);
238 let body = encode_to_vec(&value, &schema);
239
240 let dsr = GeneralDeserializer {
241 schema: schema.top_node(),
242 };
243 let mut reader: &[u8] = &body;
244 let res = dsr.deserialize(&mut reader, ValueDecoder);
245 assert!(
246 res.is_ok(),
247 "an encoder-produced array of nulls should round-trip, but got: {res:?}"
248 );
249 }
250
251 #[mz_ore::test]
252 fn zero_width_array_elements_decode_across_blocks() {

Callers

nothing calls this directly

Calls 5

ArrayClass · 0.85
encode_to_vecFunction · 0.85
unwrapMethod · 0.80
top_nodeMethod · 0.80
deserializeMethod · 0.45

Tested by

no test coverage detected