use socketcan_hal::{CanSocket, CanFrame, ShouldRetry, constants::*};
use std::time;
#[test]
fn test_nonexistant_device() {
assert!(CanSocket::open("invalid").is_err());
}
#[test]
fn vcan0_timeout() {
let cs = CanSocket::open("vcan0").unwrap();
cs.set_read_timeout(time::Duration::from_millis(100))
.unwrap();
assert!(cs.read_frame().should_retry());
}
#[test]
fn vcan0_set_error_mask() {
let cs = CanSocket::open("vcan0").unwrap();
cs.set_error_mask(ERR_MASK_ALL).unwrap();
cs.set_error_mask(ERR_MASK_NONE).unwrap();
}
#[test]
fn vcan0_enable_own_loopback() {
let cs = CanSocket::open("vcan0").unwrap();
cs.set_loopback(true).unwrap();
cs.set_recv_own_msgs(true).unwrap();
let frame = CanFrame::init(0x123, &[], true, false).unwrap();
cs.write_frame(&frame).unwrap();
cs.read_frame().unwrap();
}
#[test]
fn vcan0_test_nonblocking() {
let cs = CanSocket::open("vcan0").unwrap();
assert!(cs.set_nonblocking(true).is_ok());
assert!(cs.read_frame().should_retry());
}