@@ -404,7 +404,6 @@ p1 = RTPS(
404404)
405405assert p0.build() == d
406406assert p1.build() == d
407- assert p1 == p0
408407
409408+ Test for pr #3914
410409= RTPS Heartbeat SequenceNumber_t packing and dissection
@@ -476,3 +475,106 @@ p1 = RTPS(
476475assert p0.build() == d
477476assert p1.build() == d
478477assert p0 == p1
478+
479+ + Test for #PR4545
480+ = RTPS length computation with inlineQos
481+
482+ p0 = RTPS(
483+ protocolVersion=ProtocolVersionPacket(major=2, minor=2),
484+ vendorId=VendorIdPacket(vendor_id=0x010f),
485+ guidPrefix=GUIDPrefixPacket(
486+ hostId=0x010f45d2, appId=0xb3f558b9, instanceId=0x01000000
487+ ),magic=b"RTPS"
488+ )/RTPSMessage(submessages=[
489+ RTPSSubMessage_INFO_TS(
490+ submessageId=9,
491+ submessageFlags=1,
492+ octetsToNextHeader=8,
493+ ts_seconds=1638425814,
494+ ts_fraction=2083784982,
495+ ),
496+ RTPSSubMessage_DATA(
497+ submessageId= 0x15,
498+ submessageFlags= 0x7,
499+ octetsToNextHeader= 54,
500+ extraFlags= 0x0,
501+ octetsToInlineQoS= 16,
502+ readerEntityIdKey= 0x0,
503+ readerEntityIdKind= 0x0,
504+ writerEntityIdKey= 0x0,
505+ writerEntityIdKind= 0x0,
506+ writerSeqNumHi= 0,
507+ writerSeqNumLow= 4,
508+ inlineQoS= InlineQoSPacket(
509+ parameters= [
510+ PID_UNKNOWN(
511+ parameterId= 0x801e,
512+ parameterLength= 4,
513+ parameterData= b'\x00\x00\x00\x00',
514+ ),
515+ ],
516+ sentinel= PID_SENTINEL(
517+ parameterId= 0x1,
518+ parameterLength= 0,
519+ parameterData= b'',
520+ ),
521+ ),
522+ data= DataPacket(
523+ encapsulationKind= 0x1,
524+ encapsulationOptions= 0x3,
525+ serializedData= b'=\x00\x00\x00abcdefghij\x00\x00\x00\x00',
526+ ),
527+ ),
528+ RTPSSubMessage_INFO_TS(
529+ submessageId=9,
530+ submessageFlags=1,
531+ octetsToNextHeader=8,
532+ ts_seconds=1638425814,
533+ ts_fraction=2083784982,
534+ ),
535+ RTPSSubMessage_DATA(
536+ submessageId= 0x15,
537+ submessageFlags= 0x7,
538+ octetsToNextHeader= 54,
539+ extraFlags= 0x0,
540+ octetsToInlineQoS= 16,
541+ readerEntityIdKey= 0x0,
542+ readerEntityIdKind= 0x0,
543+ writerEntityIdKey= 0x0,
544+ writerEntityIdKind= 0x0,
545+ writerSeqNumHi= 0,
546+ writerSeqNumLow= 4,
547+ inlineQoS= InlineQoSPacket(
548+ parameters= [
549+ PID_UNKNOWN(
550+ parameterId= 0x801e,
551+ parameterLength= 4,
552+ parameterData= b'\x00\x00\x00\x00',
553+ ),
554+ ],
555+ sentinel= PID_SENTINEL(
556+ parameterId= 0x1,
557+ parameterLength= 0,
558+ parameterData= b'',
559+ ),
560+ ),
561+ data= DataPacket(
562+ encapsulationKind= 0x1,
563+ encapsulationOptions= 0x3,
564+ serializedData= b'=\x00\x00\x00abcdefghij\x00\x00\x00\x00',
565+ ),
566+ ),
567+ ])
568+
569+ d = b"\x52\x54\x50\x53\x02\x02\x01\x0f\x01\x0f\x45\xd2\xb3\xf5\x58\xb9" \
570+ b"\x01\x00\x00\x00\x09\x01\x08\x00\xd6\x64\xa8\x61\x16\x09\x34\x7c" \
571+ b"\x15\x07\x36\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00" \
572+ b"\x00\x00\x00\x00\x04\x00\x00\x00\x1e\x80\x04\x00\x00\x00\x00\x00" \
573+ b"\x01\x00\x00\x00\x00\x01\x00\x03\x3d\x00\x00\x00\x61\x62\x63\x64" \
574+ b"\x65\x66\x67\x68\x69\x6a\x00\x00\x00\x00\x09\x01\x08\x00\xd6\x64" \
575+ b"\xa8\x61\x16\x09\x34\x7c\x15\x07\x36\x00\x00\x00\x10\x00\x00\x00" \
576+ b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x1e\x80" \
577+ b"\x04\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x03\x3d\x00" \
578+ b"\x00\x00\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x00\x00\x00\x00"
579+
580+ assert RTPS(d) == p0
0 commit comments