stream_message_parser_test.cpp
Go to the documentation of this file.
1 #include <catch2/catch_all.hpp>
2 
3 // Include depthai library
4 #include <depthai/depthai.hpp>
6 
7 // TODO(themarpe) - fuzz me instead
8 
9 constexpr auto MARKER_SIZE = 16;
10 
11 TEST_CASE("Correct message") {
12  dai::ImgFrame frm;
14 
15  streamPacketDesc_t packet;
16  packet.data = ser.data();
17  packet.length = ser.size();
18 
21 
22  REQUIRE(ser == ser2);
23 }
24 
25 TEST_CASE("Correct message, but padding corrupted, a warning should be printed") {
26  dai::ImgFrame frm;
28  ser[ser.size() - 1] = 0x55;
29 
30  streamPacketDesc_t packet;
31  packet.data = ser.data();
32  packet.length = ser.size();
33 
36  // Just for the binary compare to match, cause the same corruption in re-serialized msg
37  ser2[ser.size() - 1] = 0x55;
38 
39  REQUIRE(ser == ser2);
40 }
41 
42 TEST_CASE("Incorrect message bad size") {
43  dai::ImgFrame frm;
45 
46  // wreak havoc on serialized data
47  ser[ser.size() - 1 - MARKER_SIZE] = 100;
48 
49  streamPacketDesc_t packet;
50  packet.data = ser.data();
51  packet.length = ser.size();
52 
54 }
55 
56 TEST_CASE("Incorrect message negative size") {
57  dai::ImgFrame frm;
59 
60  // wreak havoc on serialized data
61  ser[ser.size() - 1 - MARKER_SIZE] = 200;
62 
63  streamPacketDesc_t packet;
64  packet.data = ser.data();
65  packet.length = ser.size();
66 
68 }
69 
70 TEST_CASE("Incorrect message too small size") {
71  std::vector<uint8_t> ser = {0, 1, 2};
72 
73  streamPacketDesc_t packet;
74  packet.data = ser.data();
75  packet.length = ser.size();
76 
78 }
79 
80 TEST_CASE("Incorrect message too small size 2") {
81  std::vector<uint8_t> ser = {0, 1, 1};
82 
83  streamPacketDesc_t packet;
84  packet.data = ser.data();
85  packet.length = ser.size();
86 
88 }
89 
90 TEST_CASE("Raw - Correct message") {
91  dai::ImgFrame frm;
93 
94  streamPacketDesc_t packet;
95  packet.data = ser.data();
96  packet.length = ser.size();
97 
98  auto des = dai::StreamMessageParser::parseMessage(&packet);
100 
101  REQUIRE(ser == ser2);
102 }
103 
104 TEST_CASE("Raw - Incorrect message bad size") {
105  dai::ImgFrame frm;
107 
108  // wreak havoc on serialized data
109  ser[ser.size() - 1 - MARKER_SIZE] = 100;
110 
111  streamPacketDesc_t packet;
112  packet.data = ser.data();
113  packet.length = ser.size();
114 
115  REQUIRE_THROWS(dai::StreamMessageParser::parseMessage(&packet));
116 }
117 
118 TEST_CASE("Raw - Incorrect message negative size") {
119  dai::ImgFrame frm;
121 
122  // wreak havoc on serialized data
123  ser[ser.size() - 1 - MARKER_SIZE] = 200;
124 
125  streamPacketDesc_t packet;
126  packet.data = ser.data();
127  packet.length = ser.size();
128 
129  REQUIRE_THROWS(dai::StreamMessageParser::parseMessage(&packet));
130 }
131 
132 TEST_CASE("Raw - Incorrect message too small size") {
133  std::vector<uint8_t> ser = {0, 1, 2};
134 
135  streamPacketDesc_t packet;
136  packet.data = ser.data();
137  packet.length = ser.size();
138 
139  REQUIRE_THROWS(dai::StreamMessageParser::parseMessage(&packet));
140 }
141 
142 TEST_CASE("Raw - Incorrect message too small size 2") {
143  std::vector<uint8_t> ser = {0, 1, 1};
144 
145  streamPacketDesc_t packet;
146  packet.data = ser.data();
147  packet.length = ser.size();
148 
149  REQUIRE_THROWS(dai::StreamMessageParser::parseMessage(&packet));
150 }
dai::StreamMessageParser::parseMessageToADatatype
static std::shared_ptr< ADatatype > parseMessageToADatatype(streamPacketDesc_t *const packet)
Definition: StreamMessageParser.cpp:349
TEST_CASE
TEST_CASE("Correct message")
Definition: stream_message_parser_test.cpp:11
dai::StreamMessageParser::serializeMessage
static std::vector< std::uint8_t > serializeMessage(const std::shared_ptr< const RawBuffer > &data)
Definition: StreamMessageParser.cpp:384
depthai.hpp
StreamMessageParser.hpp
dai::ImgFrame
Definition: ImgFrame.hpp:25
MARKER_SIZE
constexpr auto MARKER_SIZE
Definition: stream_message_parser_test.cpp:9
dai::StreamMessageParser::parseMessage
static std::shared_ptr< RawBuffer > parseMessage(streamPacketDesc_t *const packet)
Definition: StreamMessageParser.cpp:132


depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:19