11// / This software is distributed under the terms of the MIT License.
2- // / Copyright (c) 2020 UAVCAN Development Team.
2+ // / Copyright (c) 2020 OpenCyphal
33// / Author: Pavel Kirienko <[email protected] >44
55#include " socketcan.h"
@@ -16,7 +16,8 @@ TEST_CASE("IO-Classic") // Catch2 does not support parametrized tests yet.
1616 REQUIRE (sa >= 0 );
1717 REQUIRE (sb >= 0 );
1818
19- CanardFrame fr{};
19+ CanardFrame fr{};
20+ CanardMicrosecond timestamp_usec{};
2021 fr.extended_can_id = 0x1234U ;
2122 fr.payload_size = 6 ;
2223 fr.payload = " Hello" ;
@@ -29,26 +30,26 @@ TEST_CASE("IO-Classic") // Catch2 does not support parametrized tests yet.
2930
3031 char buf[255 ]{};
3132 fr = {};
32- REQUIRE (1 == socketcanPop (sb, &fr, sizeof (buf), buf, 1000 , nullptr ));
33- REQUIRE (fr. timestamp_usec > 0 );
33+ REQUIRE (1 == socketcanPop (sb, &fr, ×tamp_usec, sizeof (buf), buf, 1000 , nullptr ));
34+ REQUIRE (timestamp_usec > 0 );
3435 REQUIRE (fr.extended_can_id == 0x1234U );
3536 REQUIRE (fr.payload_size == 6 );
3637 REQUIRE (0 == std::memcmp (fr.payload , " Hello" , 6 ));
37- auto old_ts = fr. timestamp_usec ;
38+ auto old_ts = timestamp_usec;
3839
3940 fr = {};
40- REQUIRE (0 == socketcanPop (sa, &fr, sizeof (buf), buf, 1000 , nullptr )); // Loopback frame.
41- REQUIRE (1 == socketcanPop (sa, &fr, sizeof (buf), buf, 1000 , nullptr )); // Received actual frame.
42- REQUIRE (fr. timestamp_usec > 0 );
43- REQUIRE (fr. timestamp_usec >= old_ts);
41+ REQUIRE (0 == socketcanPop (sa, &fr, ×tamp_usec, sizeof (buf), buf, 1000 , nullptr )); // Loopback frame.
42+ REQUIRE (1 == socketcanPop (sa, &fr, ×tamp_usec, sizeof (buf), buf, 1000 , nullptr )); // Received actual frame.
43+ REQUIRE (timestamp_usec > 0 );
44+ REQUIRE (timestamp_usec >= old_ts);
4445 REQUIRE (fr.extended_can_id == 0x4321U );
4546 REQUIRE (fr.payload_size == 7 );
4647 REQUIRE (0 == std::memcmp (fr.payload , " World!" , 7 ));
4748
48- REQUIRE (0 == socketcanPop (sa, &fr, sizeof (buf), buf, 0 , nullptr ));
49- REQUIRE (0 == socketcanPop (sa, &fr, sizeof (buf), buf, 1000 , nullptr ));
50- REQUIRE (-EINVAL == socketcanPop (sa, &fr, 0 , nullptr , 1000 , nullptr ));
51- REQUIRE (-EINVAL == socketcanPop (sa, nullptr , sizeof (buf), buf, 1000 , nullptr ));
49+ REQUIRE (0 == socketcanPop (sa, &fr, ×tamp_usec, sizeof (buf), buf, 0 , nullptr ));
50+ REQUIRE (0 == socketcanPop (sa, &fr, ×tamp_usec, sizeof (buf), buf, 1000 , nullptr ));
51+ REQUIRE (-EINVAL == socketcanPop (sa, &fr, ×tamp_usec, 0 , nullptr , 1000 , nullptr ));
52+ REQUIRE (-EINVAL == socketcanPop (sa, nullptr , nullptr , sizeof (buf), buf, 1000 , nullptr ));
5253
5354 REQUIRE (-EINVAL == socketcanPush (sa, nullptr , 1'000'000 ));
5455
@@ -65,15 +66,16 @@ TEST_CASE("IO-FD")
6566 REQUIRE (sa >= 0 );
6667 REQUIRE (sb >= 0 );
6768
68- const SocketCANFilterConfig fcs = {
69+ const CanardFilter fcs = {
6970 0x00001234U ,
7071 0x1FFFFFFFU ,
7172 };
7273 REQUIRE (0 == socketcanFilter (sb, 1 , &fcs));
7374 REQUIRE (-EFBIG == socketcanFilter (sa, 1'000'000 , &fcs));
7475 REQUIRE (-EINVAL == socketcanFilter (sa, 1 , NULL ));
7576
76- CanardFrame fr{};
77+ CanardFrame fr{};
78+ CanardMicrosecond timestamp_usec{};
7779 fr.extended_can_id = 0x1234U ;
7880 fr.payload_size = 13 ;
7981 fr.payload = " Hello world!" ;
@@ -86,26 +88,26 @@ TEST_CASE("IO-FD")
8688
8789 char buf[255 ]{};
8890 fr = {};
89- REQUIRE (1 == socketcanPop (sb, &fr, sizeof (buf), buf, 1000 , nullptr ));
90- REQUIRE (fr. timestamp_usec > 0 );
91+ REQUIRE (1 == socketcanPop (sb, &fr, ×tamp_usec, sizeof (buf), buf, 1000 , nullptr ));
92+ REQUIRE (timestamp_usec > 0 );
9193 REQUIRE (fr.extended_can_id == 0x1234U );
9294 REQUIRE (fr.payload_size == 13 );
9395 REQUIRE (0 == std::memcmp (fr.payload , " Hello world!" , 13 ));
94- auto old_ts = fr. timestamp_usec ;
96+ auto old_ts = timestamp_usec;
9597
9698 fr = {};
97- REQUIRE (0 == socketcanPop (sa, &fr, sizeof (buf), buf, 1000 , nullptr )); // Loopback frame.
98- REQUIRE (1 == socketcanPop (sa, &fr, sizeof (buf), buf, 1000 , nullptr )); // Received actual frame.
99- REQUIRE (fr. timestamp_usec > 0 );
100- REQUIRE (fr. timestamp_usec >= old_ts);
99+ REQUIRE (0 == socketcanPop (sa, &fr, ×tamp_usec, sizeof (buf), buf, 1000 , nullptr )); // Loopback frame.
100+ REQUIRE (1 == socketcanPop (sa, &fr, ×tamp_usec, sizeof (buf), buf, 1000 , nullptr )); // Received actual frame.
101+ REQUIRE (timestamp_usec > 0 );
102+ REQUIRE (timestamp_usec >= old_ts);
101103 REQUIRE (fr.extended_can_id == 0x4321U );
102104 REQUIRE (fr.payload_size == 10 );
103105 REQUIRE (0 == std::memcmp (fr.payload , " 0123456789" , 10 ));
104106
105- REQUIRE (0 == socketcanPop (sa, &fr, sizeof (buf), buf, 0 , nullptr ));
106- REQUIRE (0 == socketcanPop (sa, &fr, sizeof (buf), buf, 1000 , nullptr ));
107- REQUIRE (-EINVAL == socketcanPop (sa, &fr, 0 , nullptr , 1000 , nullptr ));
108- REQUIRE (-EINVAL == socketcanPop (sa, nullptr , sizeof (buf), buf, 1000 , nullptr ));
107+ REQUIRE (0 == socketcanPop (sa, &fr, ×tamp_usec, sizeof (buf), buf, 0 , nullptr ));
108+ REQUIRE (0 == socketcanPop (sa, &fr, ×tamp_usec, sizeof (buf), buf, 1000 , nullptr ));
109+ REQUIRE (-EINVAL == socketcanPop (sa, &fr, ×tamp_usec, 0 , nullptr , 1000 , nullptr ));
110+ REQUIRE (-EINVAL == socketcanPop (sa, nullptr , nullptr , sizeof (buf), buf, 1000 , nullptr ));
109111
110112 REQUIRE (-EINVAL == socketcanPush (sa, nullptr , 1'000'000 ));
111113
@@ -122,7 +124,8 @@ TEST_CASE("IO-FD-Loopback")
122124 REQUIRE (sa >= 0 );
123125 REQUIRE (sb >= 0 );
124126
125- CanardFrame fr{};
127+ CanardFrame fr{};
128+ CanardMicrosecond timestamp_usec{};
126129 fr.extended_can_id = 0x1234U ;
127130 fr.payload_size = 13 ;
128131 fr.payload = " Hello World!" ;
@@ -131,25 +134,28 @@ TEST_CASE("IO-FD-Loopback")
131134 bool loopback = true ;
132135 char buf[255 ]{};
133136 fr = {};
134- REQUIRE (1 == socketcanPop (sb, &fr, sizeof (buf), buf, 1000 , &loopback)); // Receive actual frame on sb.
137+ REQUIRE (1 ==
138+ socketcanPop (sb, &fr, ×tamp_usec, sizeof (buf), buf, 1000 , &loopback)); // Receive actual frame on sb.
135139 REQUIRE (loopback == false );
136- REQUIRE (fr. timestamp_usec > 0 );
140+ REQUIRE (timestamp_usec > 0 );
137141 REQUIRE (fr.extended_can_id == 0x1234U );
138142 REQUIRE (fr.payload_size == 13 );
139143 REQUIRE (0 == std::memcmp (fr.payload , " Hello World!" , 13 ));
140- auto old_ts = fr. timestamp_usec ;
144+ auto old_ts = timestamp_usec;
141145
142146 fr = {};
143- REQUIRE (1 == socketcanPop (sa, &fr, sizeof (buf), buf, 1000 , &loopback)); // Receive loopback frame on sa.
147+ REQUIRE (
148+ 1 ==
149+ socketcanPop (sa, &fr, ×tamp_usec, sizeof (buf), buf, 1000 , &loopback)); // Receive loopback frame on sa.
144150 REQUIRE (loopback == true );
145- REQUIRE (fr. timestamp_usec > 0 );
146- REQUIRE (fr. timestamp_usec >= old_ts);
151+ REQUIRE (timestamp_usec > 0 );
152+ REQUIRE (timestamp_usec >= old_ts);
147153 REQUIRE (fr.extended_can_id == 0x1234U );
148154 REQUIRE (fr.payload_size == 13 );
149155 REQUIRE (0 == std::memcmp (fr.payload , " Hello World!" , 13 ));
150156
151- REQUIRE (0 == socketcanPop (sa, &fr, sizeof (buf), buf, 0 , nullptr )); // No more frames.
152- REQUIRE (0 == socketcanPop (sa, &fr, sizeof (buf), buf, 1000 , nullptr )); // No more frames.
157+ REQUIRE (0 == socketcanPop (sa, &fr, ×tamp_usec, sizeof (buf), buf, 0 , nullptr )); // No more frames.
158+ REQUIRE (0 == socketcanPop (sa, &fr, ×tamp_usec, sizeof (buf), buf, 1000 , nullptr )); // No more frames.
153159
154160 ::close (sa);
155161 ::close (sb);
0 commit comments