From 50fb6158af40bec746489a1d53798217411eb1f6 Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Wed, 15 Apr 2020 14:09:10 +0200 Subject: [PATCH] Introduce more UdpReceiver tests --- core-writer/test/test_UdpReceiver.cpp | 61 ++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/core-writer/test/test_UdpReceiver.cpp b/core-writer/test/test_UdpReceiver.cpp index ff2e373..fe69db9 100644 --- a/core-writer/test/test_UdpReceiver.cpp +++ b/core-writer/test/test_UdpReceiver.cpp @@ -39,12 +39,69 @@ TEST(UdpReceiver, simple_recv) sizeof(server_address)); jungfrau_packet recv_udp_buffer; - EXPECT_TRUE(udp_receiver.receive( + ASSERT_TRUE(udp_receiver.receive( &recv_udp_buffer, JUNGFRAU_BYTES_PER_PACKET)); - EXPECT_FALSE(udp_receiver.receive( + EXPECT_EQ(send_udp_buffer.packetnum, recv_udp_buffer.packetnum); + EXPECT_EQ(send_udp_buffer.framenum, recv_udp_buffer.framenum); + EXPECT_EQ(send_udp_buffer.bunchid, recv_udp_buffer.bunchid); + EXPECT_EQ(send_udp_buffer.debug, recv_udp_buffer.debug); + + ASSERT_FALSE(udp_receiver.receive( &recv_udp_buffer, JUNGFRAU_BYTES_PER_PACKET)); + udp_receiver.close(); + ::close(send_socket_fd); +} + +TEST(UdpReceiver, false_recv) +{ + uint16_t udp_port = 12000; + + auto send_socket_fd = socket(AF_INET,SOCK_DGRAM,0); + ASSERT_TRUE(send_socket_fd >= 0); + + UdpReceiver udp_receiver; + udp_receiver.bind(udp_port); + + jungfrau_packet send_udp_buffer; + jungfrau_packet recv_udp_buffer; + + auto server_address = get_server_address(udp_port); + + ::sendto( + send_socket_fd, + &send_udp_buffer, + JUNGFRAU_BYTES_PER_PACKET-1, + 0, + (sockaddr*) &server_address, + sizeof(server_address)); + + ASSERT_FALSE(udp_receiver.receive( + &recv_udp_buffer, JUNGFRAU_BYTES_PER_PACKET)); + + ::sendto( + send_socket_fd, + &send_udp_buffer, + JUNGFRAU_BYTES_PER_PACKET, + 0, + (sockaddr*) &server_address, + sizeof(server_address)); + + ASSERT_TRUE(udp_receiver.receive( + &recv_udp_buffer, JUNGFRAU_BYTES_PER_PACKET)); + + ::sendto( + send_socket_fd, + &send_udp_buffer, + JUNGFRAU_BYTES_PER_PACKET-1, + 0, + (sockaddr*) &server_address, + sizeof(server_address)); + + ASSERT_TRUE(udp_receiver.receive( + &recv_udp_buffer, JUNGFRAU_BYTES_PER_PACKET-1)); + udp_receiver.close(); ::close(send_socket_fd); } \ No newline at end of file