#[test]
fn test_read_lf() {
let s = "S00600004844521B\nS107123400010203AC\nS10712380405060798\nS9031234B6\n";
let mut records = srec::reader::read_records(&s);
assert_eq!(records.next(), Some(Ok(srec::Record::S0("HDR".into()))));
assert_eq!(
records.next(),
Some(Ok(srec::Record::S1(srec::Data {
address: srec::Address16(0x1234),
data: vec![0x00, 0x01, 0x02, 0x03],
})))
);
assert_eq!(
records.next(),
Some(Ok(srec::Record::S1(srec::Data {
address: srec::Address16(0x1238),
data: vec![0x04, 0x05, 0x06, 0x07],
})))
);
assert_eq!(
records.next(),
Some(Ok(srec::Record::S9(srec::Address16(0x1234))))
);
assert_eq!(records.next(), None);
}
#[test]
fn test_read_crlf() {
let s = "S00600004844521B\r\nS107123400010203AC\r\nS10712380405060798\r\nS9031234B6\r\n";
let mut records = srec::reader::read_records(&s);
assert_eq!(records.next(), Some(Ok(srec::Record::S0("HDR".into()))));
assert_eq!(
records.next(),
Some(Ok(srec::Record::S1(srec::Data {
address: srec::Address16(0x1234),
data: vec![0x00, 0x01, 0x02, 0x03],
})))
);
assert_eq!(
records.next(),
Some(Ok(srec::Record::S1(srec::Data {
address: srec::Address16(0x1238),
data: vec![0x04, 0x05, 0x06, 0x07],
})))
);
assert_eq!(
records.next(),
Some(Ok(srec::Record::S9(srec::Address16(0x1234))))
);
assert_eq!(records.next(), None);
}
#[test]
fn test_read_lf_with_err() {
let s = "S00600004844521B\nS107123400010203AC\nS10712380405060798\nS9031234B4\n";
let mut records = srec::reader::read_records(&s);
assert_eq!(records.next(), Some(Ok(srec::Record::S0("HDR".into()))));
assert_eq!(
records.next(),
Some(Ok(srec::Record::S1(srec::Data {
address: srec::Address16(0x1234),
data: vec![0x00, 0x01, 0x02, 0x03],
})))
);
assert_eq!(
records.next(),
Some(Ok(srec::Record::S1(srec::Data {
address: srec::Address16(0x1238),
data: vec![0x04, 0x05, 0x06, 0x07],
})))
);
assert_eq!(
records.next(),
Some(Err(srec::reader::Error::ChecksumMismatch))
);
assert_eq!(records.next(), None);
}
#[test]
fn test_read_crlf_with_err() {
let s = "S00600004844521B\r\nS107123400010203AC\r\nS10712380405060798\r\nS9031234B4\r\n";
let mut records = srec::reader::read_records(&s);
assert_eq!(records.next(), Some(Ok(srec::Record::S0("HDR".into()))));
assert_eq!(
records.next(),
Some(Ok(srec::Record::S1(srec::Data {
address: srec::Address16(0x1234),
data: vec![0x00, 0x01, 0x02, 0x03],
})))
);
assert_eq!(
records.next(),
Some(Ok(srec::Record::S1(srec::Data {
address: srec::Address16(0x1238),
data: vec![0x04, 0x05, 0x06, 0x07],
})))
);
assert_eq!(
records.next(),
Some(Err(srec::reader::Error::ChecksumMismatch))
);
assert_eq!(records.next(), None);
}