Skip to content

Commit

Permalink
Add vwrite test cases to the xcdr test
Browse files Browse the repository at this point in the history
  • Loading branch information
sonndinh committed Feb 12, 2024
1 parent 4d56f09 commit b4f1904
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
2 changes: 1 addition & 1 deletion dds/DCPS/Xcdr2ValueWriter.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ namespace DCPS {

class OpenDDS_Dcps_Export Xcdr2ValueWriter : public ValueWriter {
public:
explicit Xcdr2ValueWriter(Encoding& encoding)
explicit Xcdr2ValueWriter(const Encoding& encoding)
: mode_(SERIALIZATION_SIZE_MODE)
, encoding_(encoding)
, pos_(0)
Expand Down
20 changes: 19 additions & 1 deletion tests/DCPS/Compiler/xcdr/xcdr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

#include <dds/DCPS/Serializer.h>
#include <dds/DCPS/SafetyProfileStreams.h>
#include <dds/DCPS/Xcdr2ValueWriter.h>
#include <dds/DCPS/XTypes/Utils.h>
#include <dds/DCPS/XTypes/TypeLookupService.h>
#include <dds/DCPS/XTypes/DynamicDataAdapter.h>
Expand Down Expand Up @@ -304,6 +305,20 @@ void serializer_test_union(const Encoding& encoding, const DataView& expected_cd
amalgam_serializer_test_union<Type, Type>(encoding, expected_cdr, disc);
}

template <typename Type>
void baseline_checks_vwrite(const Encoding& encoding, const Type& value, const DataView& expected_cdr)
{
if (encoding.kind() == Encoding::KIND_XCDR2) {
Xcdr2ValueWriter value_writer(encoding);
vwrite(value_writer, value);
ACE_Message_Block buffer(value_writer.get_serialized_size());
Serializer ser(&buffer, encoding);
value_writer.set_serializer(&ser);
EXPECT_TRUE(vwrite(value_writer, value));
EXPECT_PRED_FORMAT2(assert_DataView, expected_cdr, buffer);
}
}

template<typename Type>
void baseline_checks(const Encoding& encoding, const DataView& expected_cdr,
SerializedSizeBound bound = SerializedSizeBound())
Expand All @@ -325,8 +340,9 @@ void baseline_checks(const Encoding& encoding, const DataView& expected_cdr,
Type value;
set_values(value);
EXPECT_EQ(serialized_size(encoding, value), expected_cdr.size);

serializer_test<Type>(encoding, expected_cdr);

baseline_checks_vwrite(encoding, value, expected_cdr);
}

template<typename Type>
Expand All @@ -336,6 +352,8 @@ void baseline_checks_union(const Encoding& encoding, const DataView& expected_cd
set_values_union(value, disc);
EXPECT_EQ(serialized_size(encoding, value), expected_cdr.size);
serializer_test_union<Type>(encoding, expected_cdr, disc);

baseline_checks_vwrite(encoding, value, expected_cdr);
}

#define STREAM_DATA \
Expand Down

0 comments on commit b4f1904

Please sign in to comment.