Skip to content

Commit

Permalink
Refs #21379. Add test
Browse files Browse the repository at this point in the history
Signed-off-by: Ricardo González Moreno <[email protected]>
  • Loading branch information
richiware committed Sep 9, 2024
1 parent 70314ce commit d5d3341
Show file tree
Hide file tree
Showing 22 changed files with 1,509 additions and 28 deletions.
51 changes: 50 additions & 1 deletion test/dds-types-test/constants.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ const uint64_t const_uint64 = 19;
typedef int16_t alias_short;

const alias_short alias_const = 55;
const InnerEnumHelper const_enum = InnerEnumHelper::ENUM_VALUE_1;
namespace const_module1 {

const int16_t const_moduled = 11;
Expand Down Expand Up @@ -341,6 +342,7 @@ namespace const_module2 {

const int16_t const_moduled = 22;
const const_module1::alias_short_moduled alias_const_moduled = 2;
const int16_t const_moduled_module1 = const_module1::const_moduled;
/*!
* @brief This class represents the structure Module2ConstsLiteralsStruct defined by the user in the IDL file.
* @ingroup constants
Expand Down Expand Up @@ -378,6 +380,8 @@ class Module2ConstsLiteralsStruct

m_module2_array_literal_module1_const_moduled = x.m_module2_array_literal_module1_const_moduled;

m_module2_array_literal_const_moduled_module1 = x.m_module2_array_literal_const_moduled_module1;

}

/*!
Expand All @@ -391,6 +395,7 @@ class Module2ConstsLiteralsStruct
m_module2_array_literal_const_alias_const_moduled = std::move(x.m_module2_array_literal_const_alias_const_moduled);
m_module2_array_literal_const_scoped_moduled = std::move(x.m_module2_array_literal_const_scoped_moduled);
m_module2_array_literal_module1_const_moduled = std::move(x.m_module2_array_literal_module1_const_moduled);
m_module2_array_literal_const_moduled_module1 = std::move(x.m_module2_array_literal_const_moduled_module1);
}

/*!
Expand All @@ -409,6 +414,8 @@ class Module2ConstsLiteralsStruct

m_module2_array_literal_module1_const_moduled = x.m_module2_array_literal_module1_const_moduled;

m_module2_array_literal_const_moduled_module1 = x.m_module2_array_literal_const_moduled_module1;

return *this;
}

Expand All @@ -424,6 +431,7 @@ class Module2ConstsLiteralsStruct
m_module2_array_literal_const_alias_const_moduled = std::move(x.m_module2_array_literal_const_alias_const_moduled);
m_module2_array_literal_const_scoped_moduled = std::move(x.m_module2_array_literal_const_scoped_moduled);
m_module2_array_literal_module1_const_moduled = std::move(x.m_module2_array_literal_module1_const_moduled);
m_module2_array_literal_const_moduled_module1 = std::move(x.m_module2_array_literal_const_moduled_module1);
return *this;
}

Expand All @@ -437,7 +445,8 @@ class Module2ConstsLiteralsStruct
return (m_module2_array_literal_const_moduled == x.m_module2_array_literal_const_moduled &&
m_module2_array_literal_const_alias_const_moduled == x.m_module2_array_literal_const_alias_const_moduled &&
m_module2_array_literal_const_scoped_moduled == x.m_module2_array_literal_const_scoped_moduled &&
m_module2_array_literal_module1_const_moduled == x.m_module2_array_literal_module1_const_moduled);
m_module2_array_literal_module1_const_moduled == x.m_module2_array_literal_module1_const_moduled &&
m_module2_array_literal_const_moduled_module1 == x.m_module2_array_literal_const_moduled_module1);
}

/*!
Expand Down Expand Up @@ -606,13 +615,53 @@ class Module2ConstsLiteralsStruct
}


/*!
* @brief This function copies the value in member module2_array_literal_const_moduled_module1
* @param _module2_array_literal_const_moduled_module1 New value to be copied in member module2_array_literal_const_moduled_module1
*/
eProsima_user_DllExport void module2_array_literal_const_moduled_module1(
const std::array<int16_t, const_moduled_module1>& _module2_array_literal_const_moduled_module1)
{
m_module2_array_literal_const_moduled_module1 = _module2_array_literal_const_moduled_module1;
}

/*!
* @brief This function moves the value in member module2_array_literal_const_moduled_module1
* @param _module2_array_literal_const_moduled_module1 New value to be moved in member module2_array_literal_const_moduled_module1
*/
eProsima_user_DllExport void module2_array_literal_const_moduled_module1(
std::array<int16_t, const_moduled_module1>&& _module2_array_literal_const_moduled_module1)
{
m_module2_array_literal_const_moduled_module1 = std::move(_module2_array_literal_const_moduled_module1);
}

/*!
* @brief This function returns a constant reference to member module2_array_literal_const_moduled_module1
* @return Constant reference to member module2_array_literal_const_moduled_module1
*/
eProsima_user_DllExport const std::array<int16_t, const_moduled_module1>& module2_array_literal_const_moduled_module1() const
{
return m_module2_array_literal_const_moduled_module1;
}

/*!
* @brief This function returns a reference to member module2_array_literal_const_moduled_module1
* @return Reference to member module2_array_literal_const_moduled_module1
*/
eProsima_user_DllExport std::array<int16_t, const_moduled_module1>& module2_array_literal_const_moduled_module1()
{
return m_module2_array_literal_const_moduled_module1;
}



private:

std::array<int16_t, const_moduled> m_module2_array_literal_const_moduled{0};
std::array<int16_t, alias_const_moduled> m_module2_array_literal_const_alias_const_moduled{0};
std::array<int16_t, const_module2::const_moduled> m_module2_array_literal_const_scoped_moduled{0};
std::array<int16_t, const_module1::const_moduled> m_module2_array_literal_module1_const_moduled{0};
std::array<int16_t, const_moduled_module1> m_module2_array_literal_const_moduled_module1{0};

};

Expand Down
2 changes: 1 addition & 1 deletion test/dds-types-test/constantsCdrAux.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ constexpr uint32_t ConstsLiteralsStruct_max_key_cdr_typesize {0UL};



constexpr uint32_t const_module2_Module2ConstsLiteralsStruct_max_cdr_typesize {118UL};
constexpr uint32_t const_module2_Module2ConstsLiteralsStruct_max_cdr_typesize {140UL};
constexpr uint32_t const_module2_Module2ConstsLiteralsStruct_max_key_cdr_typesize {0UL};

constexpr uint32_t const_module1_ModuleConstsLiteralsStruct_max_cdr_typesize {50UL};
Expand Down
8 changes: 8 additions & 0 deletions test/dds-types-test/constantsCdrAux.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,9 @@ eProsima_user_DllExport size_t calculate_serialized_size(
calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(3),
data.module2_array_literal_module1_const_moduled(), current_alignment);

calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(4),
data.module2_array_literal_const_moduled_module1(), current_alignment);


calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment);

Expand All @@ -204,6 +207,7 @@ eProsima_user_DllExport void serialize(
<< eprosima::fastcdr::MemberId(1) << data.module2_array_literal_const_alias_const_moduled()
<< eprosima::fastcdr::MemberId(2) << data.module2_array_literal_const_scoped_moduled()
<< eprosima::fastcdr::MemberId(3) << data.module2_array_literal_module1_const_moduled()
<< eprosima::fastcdr::MemberId(4) << data.module2_array_literal_const_moduled_module1()
;
scdr.end_serialize_type(current_state);
}
Expand Down Expand Up @@ -239,6 +243,10 @@ eProsima_user_DllExport void deserialize(
dcdr >> data.module2_array_literal_module1_const_moduled();
break;

case 4:
dcdr >> data.module2_array_literal_const_moduled_module1();
break;

default:
ret_value = false;
break;
Expand Down
1 change: 1 addition & 0 deletions test/dds-types-test/constantsPubSubTypes.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@

typedef int16_t alias_short;


namespace const_module1
{
typedef int16_t alias_short_moduled;
Expand Down
64 changes: 64 additions & 0 deletions test/dds-types-test/constantsTypeObjectSupport.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -632,6 +632,70 @@ void register_Module2ConstsLiteralsStruct_type_identifier(
CompleteStructMember member_module2_array_literal_module1_const_moduled = TypeObjectUtils::build_complete_struct_member(common_module2_array_literal_module1_const_moduled, detail_module2_array_literal_module1_const_moduled);
TypeObjectUtils::add_complete_struct_member(member_seq_Module2ConstsLiteralsStruct, member_module2_array_literal_module1_const_moduled);
}
{
TypeIdentifierPair type_ids_module2_array_literal_const_moduled_module1;
ReturnCode_t return_code_module2_array_literal_const_moduled_module1 {eprosima::fastdds::dds::RETCODE_OK};
return_code_module2_array_literal_const_moduled_module1 =
eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers(
"anonymous_array_int16_t_11", type_ids_module2_array_literal_const_moduled_module1);

if (eprosima::fastdds::dds::RETCODE_OK != return_code_module2_array_literal_const_moduled_module1)
{
return_code_module2_array_literal_const_moduled_module1 =
eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers(
"_int16_t", type_ids_module2_array_literal_const_moduled_module1);

if (eprosima::fastdds::dds::RETCODE_OK != return_code_module2_array_literal_const_moduled_module1)
{
EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION,
"Array element TypeIdentifier unknown to TypeObjectRegistry.");
return;
}
bool element_identifier_anonymous_array_int16_t_11_ec {false};
TypeIdentifier* element_identifier_anonymous_array_int16_t_11 {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_module2_array_literal_const_moduled_module1, element_identifier_anonymous_array_int16_t_11_ec))};
if (!element_identifier_anonymous_array_int16_t_11_ec)
{
EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Array element TypeIdentifier inconsistent.");
return;
}
EquivalenceKind equiv_kind_anonymous_array_int16_t_11 = EK_COMPLETE;
if (TK_NONE == type_ids_module2_array_literal_const_moduled_module1.type_identifier2()._d())
{
equiv_kind_anonymous_array_int16_t_11 = EK_BOTH;
}
CollectionElementFlag element_flags_anonymous_array_int16_t_11 = 0;
PlainCollectionHeader header_anonymous_array_int16_t_11 = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_array_int16_t_11, element_flags_anonymous_array_int16_t_11);
{
SBoundSeq array_bound_seq;
TypeObjectUtils::add_array_dimension(array_bound_seq, static_cast<SBound>(11));

PlainArraySElemDefn array_sdefn = TypeObjectUtils::build_plain_array_s_elem_defn(header_anonymous_array_int16_t_11, array_bound_seq,
eprosima::fastcdr::external<TypeIdentifier>(element_identifier_anonymous_array_int16_t_11));
if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER ==
TypeObjectUtils::build_and_register_s_array_type_identifier(array_sdefn, "anonymous_array_int16_t_11", type_ids_module2_array_literal_const_moduled_module1))
{
EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION,
"anonymous_array_int16_t_11 already registered in TypeObjectRegistry for a different type.");
}
}
}
StructMemberFlag member_flags_module2_array_literal_const_moduled_module1 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD,
false, false, false, false);
MemberId member_id_module2_array_literal_const_moduled_module1 = 0x00000004;
bool common_module2_array_literal_const_moduled_module1_ec {false};
CommonStructMember common_module2_array_literal_const_moduled_module1 {TypeObjectUtils::build_common_struct_member(member_id_module2_array_literal_const_moduled_module1, member_flags_module2_array_literal_const_moduled_module1, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_module2_array_literal_const_moduled_module1, common_module2_array_literal_const_moduled_module1_ec))};
if (!common_module2_array_literal_const_moduled_module1_ec)
{
EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure module2_array_literal_const_moduled_module1 member TypeIdentifier inconsistent.");
return;
}
MemberName name_module2_array_literal_const_moduled_module1 = "module2_array_literal_const_moduled_module1";
eprosima::fastcdr::optional<AppliedBuiltinMemberAnnotations> member_ann_builtin_module2_array_literal_const_moduled_module1;
ann_custom_Module2ConstsLiteralsStruct.reset();
CompleteMemberDetail detail_module2_array_literal_const_moduled_module1 = TypeObjectUtils::build_complete_member_detail(name_module2_array_literal_const_moduled_module1, member_ann_builtin_module2_array_literal_const_moduled_module1, ann_custom_Module2ConstsLiteralsStruct);
CompleteStructMember member_module2_array_literal_const_moduled_module1 = TypeObjectUtils::build_complete_struct_member(common_module2_array_literal_const_moduled_module1, detail_module2_array_literal_const_moduled_module1);
TypeObjectUtils::add_complete_struct_member(member_seq_Module2ConstsLiteralsStruct, member_module2_array_literal_const_moduled_module1);
}
CompleteStructType struct_type_Module2ConstsLiteralsStruct = TypeObjectUtils::build_complete_struct_type(struct_flags_Module2ConstsLiteralsStruct, header_Module2ConstsLiteralsStruct, member_seq_Module2ConstsLiteralsStruct);
if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER ==
TypeObjectUtils::build_and_register_struct_type_object(struct_type_Module2ConstsLiteralsStruct, type_name_Module2ConstsLiteralsStruct.to_string(), type_ids_Module2ConstsLiteralsStruct))
Expand Down
133 changes: 133 additions & 0 deletions test/dds-types-test/enumerations.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,16 @@ enum class InnerEnumHelper : int32_t
};

} // namespace Test
/*!
* @brief This class represents the enumeration EnumWithValues defined by the user in the IDL file.
* @ingroup enumerations
*/
enum class EnumWithValues : int32_t
{
ENUM_VALUE1 = -3,
ENUM_VALUE2 = 0,
ENUM_VALUE3 = 3
};
/*!
* @brief This class represents the structure EnumStructure defined by the user in the IDL file.
* @ingroup enumerations
Expand Down Expand Up @@ -489,6 +499,129 @@ class BoundedBitMaskStructure

InnerBoundedBitMaskHelper m_var_InnerBoundedBitMaskHelper{0};

};
/*!
* @brief This class represents the structure EnumWithValuesStructure defined by the user in the IDL file.
* @ingroup enumerations
*/
class EnumWithValuesStructure
{
public:

/*!
* @brief Default constructor.
*/
eProsima_user_DllExport EnumWithValuesStructure()
{
}

/*!
* @brief Default destructor.
*/
eProsima_user_DllExport ~EnumWithValuesStructure()
{
}

/*!
* @brief Copy constructor.
* @param x Reference to the object EnumWithValuesStructure that will be copied.
*/
eProsima_user_DllExport EnumWithValuesStructure(
const EnumWithValuesStructure& x)
{
m_var_enumwithvalues = x.m_var_enumwithvalues;

}

/*!
* @brief Move constructor.
* @param x Reference to the object EnumWithValuesStructure that will be copied.
*/
eProsima_user_DllExport EnumWithValuesStructure(
EnumWithValuesStructure&& x) noexcept
{
m_var_enumwithvalues = x.m_var_enumwithvalues;
}

/*!
* @brief Copy assignment.
* @param x Reference to the object EnumWithValuesStructure that will be copied.
*/
eProsima_user_DllExport EnumWithValuesStructure& operator =(
const EnumWithValuesStructure& x)
{

m_var_enumwithvalues = x.m_var_enumwithvalues;

return *this;
}

/*!
* @brief Move assignment.
* @param x Reference to the object EnumWithValuesStructure that will be copied.
*/
eProsima_user_DllExport EnumWithValuesStructure& operator =(
EnumWithValuesStructure&& x) noexcept
{

m_var_enumwithvalues = x.m_var_enumwithvalues;
return *this;
}

/*!
* @brief Comparison operator.
* @param x EnumWithValuesStructure object to compare.
*/
eProsima_user_DllExport bool operator ==(
const EnumWithValuesStructure& x) const
{
return (m_var_enumwithvalues == x.m_var_enumwithvalues);
}

/*!
* @brief Comparison operator.
* @param x EnumWithValuesStructure object to compare.
*/
eProsima_user_DllExport bool operator !=(
const EnumWithValuesStructure& x) const
{
return !(*this == x);
}

/*!
* @brief This function sets a value in member var_enumwithvalues
* @param _var_enumwithvalues New value for member var_enumwithvalues
*/
eProsima_user_DllExport void var_enumwithvalues(
EnumWithValues _var_enumwithvalues)
{
m_var_enumwithvalues = _var_enumwithvalues;
}

/*!
* @brief This function returns the value of member var_enumwithvalues
* @return Value of member var_enumwithvalues
*/
eProsima_user_DllExport EnumWithValues var_enumwithvalues() const
{
return m_var_enumwithvalues;
}

/*!
* @brief This function returns a reference to member var_enumwithvalues
* @return Reference to member var_enumwithvalues
*/
eProsima_user_DllExport EnumWithValues& var_enumwithvalues()
{
return m_var_enumwithvalues;
}



private:

EnumWithValues m_var_enumwithvalues{EnumWithValues::ENUM_VALUE1};

};

#endif // _FAST_DDS_GENERATED_ENUMERATIONS_HPP_
Expand Down
8 changes: 8 additions & 0 deletions test/dds-types-test/enumerationsCdrAux.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ constexpr uint32_t EnumStructure_max_key_cdr_typesize {0UL};



constexpr uint32_t EnumWithValuesStructure_max_cdr_typesize {8UL};
constexpr uint32_t EnumWithValuesStructure_max_key_cdr_typesize {0UL};



constexpr uint32_t BitMaskStructure_max_cdr_typesize {8UL};
constexpr uint32_t BitMaskStructure_max_key_cdr_typesize {0UL};
Expand Down Expand Up @@ -64,6 +68,10 @@ eProsima_user_DllExport void serialize_key(
eprosima::fastcdr::Cdr& scdr,
const BoundedBitMaskStructure& data);

eProsima_user_DllExport void serialize_key(
eprosima::fastcdr::Cdr& scdr,
const EnumWithValuesStructure& data);


} // namespace fastcdr
} // namespace eprosima
Expand Down
Loading

0 comments on commit d5d3341

Please sign in to comment.