| 49 | } |
| 50 | |
| 51 | void run_test(const Encoding& encoding) |
| 52 | { |
| 53 | { |
| 54 | Messenger1::Message message; // no key |
| 55 | message.from = "from"; |
| 56 | message.subject = "subject"; |
| 57 | message.subject_id = 1234; |
| 58 | message.text = "text"; |
| 59 | message.count = 4321; |
| 60 | |
| 61 | // Use Key-Only marshalling (no keys means it should be empty) |
| 62 | KeyOnly<const Messenger1::Message> ko_message(message); |
| 63 | const size_t size = serialized_size(encoding, ko_message); |
| 64 | ACE_Message_Block mb(size); |
| 65 | Serializer out_serializer(&mb, encoding); |
| 66 | TEST_CHECK(out_serializer << ko_message); |
| 67 | size_t key_length = mb.length(); |
| 68 | TEST_CHECK(key_length == 0); |
| 69 | Serializer in_serializer(&mb, encoding); |
| 70 | Messenger1::Message dm_message; |
| 71 | dm_message.subject_id = 0; // avoid unitialized data |
| 72 | dm_message.count = 0; |
| 73 | TEST_CHECK(in_serializer >> KeyOnly<Messenger1::Message>(dm_message)); |
| 74 | TEST_CHECK(strcmp(message.from, dm_message.from) != 0); |
| 75 | TEST_CHECK(strcmp(message.subject, dm_message.subject) != 0); |
| 76 | TEST_CHECK(message.subject_id != dm_message.subject_id); |
| 77 | TEST_CHECK(strcmp(message.text, dm_message.text) != 0); |
| 78 | TEST_CHECK(message.count != dm_message.count); |
| 79 | } |
| 80 | |
| 81 | { |
| 82 | Messenger2::Message message; |
| 83 | message.from = "from"; |
| 84 | message.subject = "subject"; |
| 85 | message.subject_id = 1234; // key |
| 86 | message.text = "text"; |
| 87 | message.count = 4321; |
| 88 | |
| 89 | size_t full_length = 0; |
| 90 | size_t key_length = 0; |
| 91 | { |
| 92 | // Use normal messaging (all fields should be equal). |
| 93 | const size_t size = serialized_size(encoding, message); |
| 94 | ACE_Message_Block mb(size); |
| 95 | Serializer out_serializer(&mb, encoding); |
| 96 | TEST_CHECK(out_serializer << message); |
| 97 | full_length = mb.length(); |
| 98 | Serializer in_serializer(&mb, encoding); |
| 99 | Messenger2::Message dm_message; |
| 100 | TEST_CHECK(in_serializer >> dm_message); |
| 101 | TEST_CHECK(strcmp(message.from, dm_message.from) == 0); |
| 102 | TEST_CHECK(strcmp(message.subject, dm_message.subject) == 0); |
| 103 | TEST_CHECK(message.subject_id == dm_message.subject_id); |
| 104 | TEST_CHECK(strcmp(message.text, dm_message.text) == 0); |
| 105 | TEST_CHECK(message.count == dm_message.count); |
| 106 | } |
| 107 | |
| 108 | { |
no test coverage detected