use super ::Cursor;
use rmp::decode::*;
use rmp::Marker;
#[ test]
fn from_empty_array_read_size() {
let buf: &[u8] = &[0 x90];
let mut cur = Cursor::new(buf);
assert_eq!(0 , read_array_len(&mut cur).unwrap());
assert_eq!(1 , cur.position());
}
#[ test]
fn from_fixarray_max_read_size() {
let buf: &[u8] = &[
0 x9f,
0 x00, 0 x01, 0 x02, 0 x03, 0 x04, 0 x05, 0 x06, 0 x07, 0 x08, 0 x09, 0 x0a, 0 x0b, 0 x0c, 0 x0d, 0 x0e
];
let mut cur = Cursor::new(buf);
assert_eq!(15 , read_array_len(&mut cur).unwrap());
assert_eq!(1 , cur.position());
}
#[ test]
fn from_array16_min_read_size() {
let buf: &[u8] = &[0 xdc, 0 x00, 0 x10];
let mut cur = Cursor::new(buf);
assert_eq!(16 , read_array_len(&mut cur).unwrap());
assert_eq!(3 , cur.position());
}
#[ test]
fn from_array16_max_read_size() {
let buf: &[u8] = &[0 xdc, 0 xff, 0 xff];
let mut cur = Cursor::new(buf);
assert_eq!(65535 , read_array_len(&mut cur).unwrap());
assert_eq!(3 , cur.position());
}
#[ test]
fn from_array16_unexpected_eof_read_size() {
let buf: &[u8] = &[0 xdc, 0 xff];
let mut cur = Cursor::new(buf);
read_array_len(&mut cur).err().unwrap();
assert!(cur.position() >= 1 );
}
#[ test]
fn from_array32_min_read_size() {
let buf: &[u8] = &[0 xdd, 0 x00, 0 x00, 0 x00, 0 x00];
let mut cur = Cursor::new(buf);
assert_eq!(0 , read_array_len(&mut cur).unwrap());
assert_eq!(5 , cur.position());
}
#[ test]
fn from_array32_max_read_size() {
let buf: &[u8] = &[0 xdd, 0 xff, 0 xff, 0 xff, 0 xff];
let mut cur = Cursor::new(buf);
assert_eq!(4294967295 , read_array_len(&mut cur).unwrap());
assert_eq!(5 , cur.position());
}
#[ test]
fn from_array32_unexpected_eof_read_size() {
let buf: &[u8] = &[0 xdd, 0 xff, 0 xff, 0 xff];
let mut cur = Cursor::new(buf);
read_array_len(&mut cur).err().unwrap();
assert!(cur.position() >= 1 );
}
#[ test]
fn from_null_read_array_len() {
let buf: &[u8] = &[0 xc0];
let mut cur = Cursor::new(buf);
match read_array_len(&mut cur) {
Err(ValueReadError::TypeMismatch(Marker::Null)) => (),
other => panic!("unexpected result: {other:?}" ),
}
assert_eq!(1 , cur.position());
}
Messung V0.5 in Prozent C=76 H=98 G=87
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-19)
¤
*© Formatika GbR, Deutschland