| 28 | namespace vsomeip_v3::testing { |
| 29 | |
| 30 | [[nodiscard]] size_t parse(std::vector<unsigned char>& _message, someip_message& _out_message) { |
| 31 | if (_message.size() < VSOMEIP_FULL_HEADER_SIZE) { |
| 32 | TEST_LOG << "[Warning] Message not long enough to contain someip header"; |
| 33 | return 0; |
| 34 | } |
| 35 | |
| 36 | vsomeip_v3::deserializer des{&_message[0], _message.size(), VSOMEIP_DEFAULT_BUFFER_SHRINK_THRESHOLD}; |
| 37 | auto msg = des.deserialize_message(); |
| 38 | |
| 39 | if (!msg) { |
| 40 | TEST_LOG << "Failure during message deserialization"; |
| 41 | return 0; |
| 42 | } |
| 43 | if (msg->get_service() == VSOMEIP_SD_SERVICE && msg->get_method() == VSOMEIP_SD_METHOD) { |
| 44 | auto sd_msg = parse_sd(_message); |
| 45 | if (sd_msg) { |
| 46 | _out_message.sd_ = sd_msg; |
| 47 | return _message.size(); |
| 48 | } |
| 49 | } |
| 50 | _out_message.msg_ = msg; |
| 51 | |
| 52 | return _message.size(); |
| 53 | } |
| 54 | |
| 55 | [[nodiscard]] size_t parse_sequential_someip(unsigned char* _message, size_t _message_size, someip_message& _out_message) { |
| 56 | if (_message_size < VSOMEIP_FULL_HEADER_SIZE) { |
no test coverage detected