X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fbindings%2Frmr-python%2Ftests%2Ftest_rmr.py;h=cd0754529512c5a9d653c2df04e40b6f6b686d51;hb=refs%2Fchanges%2F25%2F1925%2F1;hp=d5023b306695c11161ff0dc57efdf408a284663a;hpb=67bbe087d505cd179e1c5bb9ef6be2c60b2e7d5a;p=ric-plt%2Flib%2Frmr.git diff --git a/src/bindings/rmr-python/tests/test_rmr.py b/src/bindings/rmr-python/tests/test_rmr.py index d5023b3..cd07545 100644 --- a/src/bindings/rmr-python/tests/test_rmr.py +++ b/src/bindings/rmr-python/tests/test_rmr.py @@ -63,7 +63,7 @@ def _assert_new_sbuf(sbuf): assert summary["transaction id"] == b"" assert summary["message state"] == 0 assert summary["message status"] == "RMR_OK" - assert summary["meid"] == "" + assert summary["meid"] == b"" assert summary["errno"] == 0 @@ -105,19 +105,19 @@ def test_meid(): """ sbuf = rmr.rmr_alloc_msg(MRC_SEND, SIZE) - rmr.rmr_set_meid(sbuf, b"\x01\x02", 2) - assert rmr.rmr_get_meid(sbuf) == rmr.message_summary(sbuf)["meid"] == "\x01\x02" + rmr.rmr_set_meid(sbuf, b"\x01\x02") + assert rmr.rmr_get_meid(sbuf) == rmr.message_summary(sbuf)["meid"] == b"\x01\x02" assert len(rmr.rmr_get_meid(sbuf)) == 2 - rmr.rmr_set_meid(sbuf, b"\x00" * 32, 32) - assert rmr.rmr_get_meid(sbuf) == rmr.message_summary(sbuf)["meid"] == "" # NULL bytes get truncated + rmr.rmr_set_meid(sbuf, b"\x00" * 32) + assert rmr.rmr_get_meid(sbuf) == rmr.message_summary(sbuf)["meid"] == b"" # NULL bytes get truncated - rmr.rmr_set_meid(sbuf, b"6" * 32, 32) - assert rmr.rmr_get_meid(sbuf) == rmr.message_summary(sbuf)["meid"] == "6" * 32 # string in string out + rmr.rmr_set_meid(sbuf, b"6" * 32) + assert rmr.rmr_get_meid(sbuf) == rmr.message_summary(sbuf)["meid"] == b"6" * 32 # string in string out - rmr.rmr_set_meid(sbuf, b"\x01\x02", 2) + rmr.rmr_set_meid(sbuf, b"\x01\x02") assert ( - rmr.rmr_get_meid(sbuf) == rmr.message_summary(sbuf)["meid"] == "\x01\x02" + "6" * 30 + rmr.rmr_get_meid(sbuf) == rmr.message_summary(sbuf)["meid"] == b"\x01\x02" + b"6" * 30 ) # bytes in string out, 6s left over assert len(rmr.rmr_get_meid(sbuf)) == 32 @@ -145,10 +145,10 @@ def test_rmr_set_get(): assert len(summary["transaction id"]) == 32 # test meid - assert rmr.rmr_get_meid(sbuf) == summary["meid"] == "" - rmr.rmr_set_meid(sbuf, b"666\x01\x00\x01", 6) + assert rmr.rmr_get_meid(sbuf) == summary["meid"] == b"" + rmr.rmr_set_meid(sbuf, b"666\x01\x00\x01") summary = rmr.message_summary(sbuf) - assert rmr.rmr_get_meid(sbuf) == summary["meid"] == "666\x01" + assert rmr.rmr_get_meid(sbuf) == summary["meid"] == b"666\x01" assert (len(summary["meid"])) == 4 @@ -274,3 +274,34 @@ def test_bad_buffer(): """test that we get a proper exception when the buffer has a null pointer""" with pytest.raises(exceptions.BadBufferAllocation): rmr.rmr_alloc_msg(None, 4096) + + +def test_alloc_fancy(): + """test allocation with setting payload, trans, mtype""" + pay = b"yoo\x01\x00\x80" + sbuf = rmr.rmr_alloc_msg(MRC_SEND, SIZE, payload=pay, gen_transaction_id=True, mtype=14, meid=b"asdf") + summary = rmr.message_summary(sbuf) + assert summary["payload"] == pay + assert summary["payload length"] == 6 + assert summary["transaction id"] != b"" # hard to test what it will be, but make sure not empty + assert summary["message state"] == 0 + assert summary["message type"] == 14 + assert summary["meid"] == b"asdf" + + +def test_resize_payload(): + """test the ability to insert a larger payload into an existing message""" + mtype = 99 + subid = 100 + + mbuf = rmr.rmr_alloc_msg(MRC_SEND, 25) # allocate buffer with small payload + mbuf.contents.mtype = mtype # type and sub-id should not change + mbuf.contents.sub_id = subid + + long_payload = b"This is a long payload that should force the message buffer to be reallocated" + rmr.set_payload_and_length(long_payload, mbuf) + summary = rmr.message_summary(mbuf) + assert summary["payload max size"] >= len(long_payload) # RMR may allocate a larger payload space + assert summary["payload length"] == len(long_payload) # however, the length must be exactly the same + assert summary["message type"] == mtype # both mtype and sub-id should be preserved in new + assert summary["subscription id"] == subid