Fix tests

This commit is contained in:
Daniel Akhterov 2019-07-26 13:52:51 -07:00
parent 05024dbd0a
commit 7eee44cdc2
6 changed files with 83 additions and 60 deletions

View File

@ -144,9 +144,13 @@ impl<'a> Decoder<'a> {
}
#[inline]
pub fn decode_string_eof(&mut self, length: usize) -> Bytes {
let value = self.buf.slice(self.index, if length >= self.index {
length
pub fn decode_string_eof(&mut self, length: Option<usize>) -> Bytes {
let value = self.buf.slice(self.index, if let Some(len) = length {
if len >= self.index {
len
} else {
self.buf.len()
}
} else {
self.buf.len()
});
@ -181,9 +185,13 @@ impl<'a> Decoder<'a> {
}
#[inline]
pub fn decode_byte_eof(&mut self, length: usize) -> Bytes {
let value = self.buf.slice(self.index, if length >= self.index {
length
pub fn decode_byte_eof(&mut self, length: Option<usize>) -> Bytes {
let value = self.buf.slice(self.index, if let Some(len) = length {
if len >= self.index {
len
} else {
self.buf.len()
}
} else {
self.buf.len()
});
@ -199,7 +207,7 @@ mod tests {
use super::*;
// [X] it_decodes_int_lenenc
// [X] it_decodes_int_lenenc
// [X] it_decodes_int_8
// [X] it_decodes_int_4
// [X] it_decodes_int_3
@ -338,7 +346,7 @@ mod tests {
fn it_decodes_string_eof() {
let buf = Bytes::from(b"\x01".to_vec());
let mut decoder = Decoder::new(&buf);
let string: Bytes = decoder.decode_string_eof(0);
let string: Bytes = decoder.decode_string_eof(None);
assert_eq!(string[0], b'\x01');
assert_eq!(string.len(), 1);
@ -375,9 +383,9 @@ mod tests {
fn it_decodes_byte_eof() {
let buf = Bytes::from(b"\x01".to_vec());
let mut decoder = Decoder::new(&buf);
let string: Bytes = decoder.decode_byte_eof(0);
let string: Bytes = decoder.decode_byte_eof(None);
assert_eq!(string[0], b'\x01');
assert_eq!(&string[..], b"\x01");
assert_eq!(string.len(), 1);
assert_eq!(decoder.index, 1);
}

View File

@ -45,7 +45,12 @@ mod test {
})
.await?;
#[rustfmt::skip]
let buf = __bytes_builder!(
// int<3> length
0u8, 0u8, 0u8,
// int<1> seq_no
0u8,
// int<lenenc> tag code: None
0xFB_u8
);
@ -68,9 +73,15 @@ mod test {
})
.await?;
#[rustfmt::skip]
let buf = __bytes_builder!(
// int<3> length
0u8, 0u8, 0u8,
// int<1> seq_no
0u8,
// int<lenenc> tag code: Some(3 bytes)
0xFD_u8, // value: 3 bytes
0xFD_u8,
// value: 3 bytes
0x01_u8, 0x01_u8, 0x01_u8
);
@ -94,6 +105,10 @@ mod test {
#[rustfmt::skip]
let buf = __bytes_builder!(
// int<3> length
0u8, 0u8, 0u8,
// int<1> seq_no
0u8,
// int<lenenc> tag code: Some(3 bytes)
0xFC_u8,
// value: 2 bytes

View File

@ -25,9 +25,9 @@ impl Deserialize for EofPacket {
let packet_header = decoder.decode_int_1();
// if packet_header != 0xFE {
// panic!("Packet header is not 0xFE for ErrPacket");
// }
if packet_header != 0xFE {
panic!("Packet header is not 0xFE for ErrPacket");
}
let warning_count = decoder.decode_int_2();
let status = ServerStatusFlag::from_bits_truncate(decoder.decode_int_2());

View File

@ -54,9 +54,9 @@ impl Deserialize for ErrPacket {
if decoder.buf[decoder.index] == b'#' {
sql_state_marker = Some(decoder.decode_string_fix(1));
sql_state = Some(decoder.decode_string_fix(5));
error_message = Some(decoder.decode_string_eof(length as usize));
error_message = Some(decoder.decode_string_eof(Some(length as usize)));
} else {
error_message = Some(decoder.decode_string_eof(length as usize));
error_message = Some(decoder.decode_string_eof(Some(length as usize)));
}
}

View File

@ -45,7 +45,7 @@ impl Deserialize for OkPacket {
let session_state_info = None;
let value = None;
let info = decoder.decode_byte_eof(index + length as usize);
let info = decoder.decode_byte_eof(Some(index + length as usize));
Ok(OkPacket {
length,