From e8ee882379423652634390c76e44353e4627728c Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Mon, 31 Mar 2014 17:26:25 +0400 Subject: [PATCH] Extra checks for socketcan driver test --- libuavcan_drivers/linux/test/test_socket.cpp | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/libuavcan_drivers/linux/test/test_socket.cpp b/libuavcan_drivers/linux/test/test_socket.cpp index b6007c5698..aa7dc23f4c 100644 --- a/libuavcan_drivers/linux/test/test_socket.cpp +++ b/libuavcan_drivers/linux/test/test_socket.cpp @@ -284,6 +284,34 @@ static void testDriver(const std::vector& iface_names) ENFORCE(masks.write == AllIfacesMask); std::cout << "exit" << std::endl; + + /* + * Error checks + */ + for (int i = 0; i < driver.getNumIfaces(); i++) + { + for (auto kv : driver.getIface(i)->getErrors()) + { + switch (kv.first) + { + case uavcan_linux::SocketCanError::SocketReadFailure: + case uavcan_linux::SocketCanError::SocketWriteFailure: + { + ENFORCE(kv.second == 0); + break; + } + case uavcan_linux::SocketCanError::TxTimeout: + { + ENFORCE(kv.second == 1); // One timed out frame from the above + break; + } + default: + { + ENFORCE(false); + } + } + } + } } int main(int argc, const char** argv)