MCPcopy Create free account
hub / github.com/OpenDDS/OpenDDS / runEncapsulationOptionsTest

Function runEncapsulationOptionsTest

tests/DCPS/Serializer/SerializerTest.cpp:819–862  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

817}
818
819bool runEncapsulationOptionsTest()
820{
821 std::cerr << "\nRunning encapsulation options tests...\n";
822 const ACE_CDR::Octet arr[4] = {0};
823 OpenDDS::DCPS::EncapsulationHeader encap;
824 const OpenDDS::DCPS::Encoding encoding = OpenDDS::DCPS::Encoding(
825 OpenDDS::DCPS::Encoding::KIND_XCDR2, OpenDDS::DCPS::ENDIAN_BIG);
826
827 if (!from_encoding(encap, encoding, OpenDDS::DCPS::APPENDABLE)) {
828 std::cerr << "EncapsulationHeader::from_encoding failed" << std::endl;
829 return false;
830 }
831
832 bool status = true;
833 for (unsigned int i = 1; i <= OpenDDS::DCPS::EncapsulationHeader::padding_marker_alignment; i++) {
834 OpenDDS::DCPS::Message_Block_Ptr mb;
835 ACE_Message_Block* tmp_mb;
836
837 ACE_NEW_RETURN(tmp_mb,
838 ACE_Message_Block(4 + i, ACE_Message_Block::MB_DATA),
839 false);
840 mb.reset(tmp_mb);
841
842 OpenDDS::DCPS::Serializer serializer(mb.get(), encoding);
843 if (!(serializer << encap) || !serializer.write_octet_array(arr, i)) {
844 std::cerr << "Serialization failed in runEncapsulationOptionsTest" << std::endl;
845 return false;
846 }
847
848 if (!OpenDDS::DCPS::EncapsulationHeader::set_encapsulation_options(mb)) {
849 std::cerr << "EncapsulationHeader::set_encapsulation_options failed. Size: " << mb->length() << std::endl;
850 return false;
851 }
852
853 unsigned int padding_marker_alignment = mb->rd_ptr()[OpenDDS::DCPS::EncapsulationHeader::padding_marker_byte_index] & 0x03;
854 if (padding_marker_alignment != (OpenDDS::DCPS::EncapsulationHeader::padding_marker_alignment - i)) {
855 std::cerr << "EncapsulationHeader::set_encapsulation_options failed for "
856 << i << " bytes, padding marker alignment: " << padding_marker_alignment << std::endl;
857 status = false;
858 }
859 }
860
861 return status;
862}
863
864int
865ACE_TMAIN(int, ACE_TCHAR*[])

Callers 1

ACE_TMAINFunction · 0.85

Calls 4

from_encodingFunction · 0.85
resetMethod · 0.45
getMethod · 0.45
lengthMethod · 0.45

Tested by

no test coverage detected