@@ -25,7 +25,7 @@ using XCdrStreamValues =
2525 std::array<std::vector<uint8_t >,
2626 1 + EncodingAlgorithmFlag::PL_CDR2 + Cdr::Endianness::LITTLE_ENDIANNESS >;
2727
28- class CdrArrayAsSTDVectorTest : public ::testing::TestWithParam< std::tuple<EncodingAlgorithmFlag, Cdr::Endianness>>
28+ class CdrArrayAsSTDVectorTest : public ::testing::TestWithParam<std::tuple<EncodingAlgorithmFlag, Cdr::Endianness>>
2929{
3030};
3131
@@ -266,6 +266,75 @@ TEST_P(CdrArrayAsSTDVectorTest, array_ulong_as_std_vector)
266266 serialize_array (expected_streams, encoding, endianness, array_value);
267267}
268268
269+ /* !
270+ * @test Test an array of boolean type stored in a std::vector.
271+ */
272+ TEST_P (CdrArrayAsSTDVectorTest, array_bool_as_std_vector)
273+ {
274+ const std::vector<bool > array_value {true , false };
275+ constexpr uint8_t tval {0x01 };
276+ constexpr uint8_t fval {0x00 };
277+
278+ // { Defining expected XCDR streams
279+ XCdrStreamValues expected_streams;
280+ expected_streams[0 + EncodingAlgorithmFlag::PLAIN_CDR + Cdr::Endianness::BIG_ENDIANNESS ] =
281+ {
282+ 0x00 , 0x00 , 0x00 , 0x00 , // Encapsulation
283+ tval, fval // Boolean
284+ };
285+ expected_streams[0 + EncodingAlgorithmFlag::PLAIN_CDR + Cdr::Endianness::LITTLE_ENDIANNESS ] =
286+ {
287+ 0x00 , 0x01 , 0x00 , 0x00 , // Encapsulation
288+ tval, fval // Boolean
289+ };
290+ expected_streams[0 + EncodingAlgorithmFlag::PL_CDR + Cdr::Endianness::BIG_ENDIANNESS ] =
291+ {
292+ 0x00 , 0x02 , 0x00 , 0x00 , // Encapsulation
293+ tval, fval // Boolean
294+ };
295+ expected_streams[0 + EncodingAlgorithmFlag::PL_CDR + Cdr::Endianness::LITTLE_ENDIANNESS ] =
296+ {
297+ 0x00 , 0x03 , 0x00 , 0x00 , // Encapsulation
298+ tval, fval // Boolean
299+ };
300+ expected_streams[0 + EncodingAlgorithmFlag::PLAIN_CDR2 + Cdr::Endianness::BIG_ENDIANNESS ] =
301+ {
302+ 0x00 , 0x06 , 0x00 , 0x00 , // Encapsulation
303+ tval, fval // Boolean
304+ };
305+ expected_streams[0 + EncodingAlgorithmFlag::PLAIN_CDR2 + Cdr::Endianness::LITTLE_ENDIANNESS ] =
306+ {
307+ 0x00 , 0x07 , 0x00 , 0x00 , // Encapsulation
308+ tval, fval // Boolean
309+ };
310+ expected_streams[0 + EncodingAlgorithmFlag::DELIMIT_CDR2 + Cdr::Endianness::BIG_ENDIANNESS ] =
311+ {
312+ 0x00 , 0x08 , 0x00 , 0x00 , // Encapsulation
313+ tval, fval // Boolean
314+ };
315+ expected_streams[0 + EncodingAlgorithmFlag::DELIMIT_CDR2 + Cdr::Endianness::LITTLE_ENDIANNESS ] =
316+ {
317+ 0x00 , 0x09 , 0x00 , 0x00 , // Encapsulation
318+ tval, fval // Boolean
319+ };
320+ expected_streams[0 + EncodingAlgorithmFlag::PL_CDR2 + Cdr::Endianness::BIG_ENDIANNESS ] =
321+ {
322+ 0x00 , 0x0A , 0x00 , 0x00 , // Encapsulation
323+ tval, fval // Boolean
324+ };
325+ expected_streams[0 + EncodingAlgorithmFlag::PL_CDR2 + Cdr::Endianness::LITTLE_ENDIANNESS ] =
326+ {
327+ 0x00 , 0x0B , 0x00 , 0x00 , // Encapsulation
328+ tval, fval // Boolean
329+ };
330+ // }
331+
332+ EncodingAlgorithmFlag encoding = std::get<0 >(GetParam ());
333+ Cdr::Endianness endianness = std::get<1 >(GetParam ());
334+
335+ serialize_array (expected_streams, encoding, endianness, array_value);
336+ }
337+
269338/* !
270339 * @test Test an array of struct type stored in a std::vector.
271340 * @code{.idl}
0 commit comments