diff options
author | Jacob Keeler <jacob.keeler@livioradio.com> | 2016-09-20 11:44:51 -0400 |
---|---|---|
committer | Jacob Keeler <jacob.keeler@livioradio.com> | 2016-09-20 14:37:25 -0400 |
commit | 039581419749dbdd32590804e8b14a77fcaf9636 (patch) | |
tree | ced927fc4bef4686f7373a5f45dd692bd9fc9de0 /src/components/protocol_handler/test/protocol_header_validator_test.cc | |
parent | 1b96b7c02d2e338b846a7314c6fa0bdaa31f7c5e (diff) | |
parent | aff7f09a4ec07becfb64dc78992580061d3342ff (diff) | |
download | sdl_core-039581419749dbdd32590804e8b14a77fcaf9636.tar.gz |
Merge branch 'master'
Diffstat (limited to 'src/components/protocol_handler/test/protocol_header_validator_test.cc')
-rw-r--r-- | src/components/protocol_handler/test/protocol_header_validator_test.cc | 249 |
1 files changed, 187 insertions, 62 deletions
diff --git a/src/components/protocol_handler/test/protocol_header_validator_test.cc b/src/components/protocol_handler/test/protocol_header_validator_test.cc index 0f38ae98ab..40b0f34846 100644 --- a/src/components/protocol_handler/test/protocol_header_validator_test.cc +++ b/src/components/protocol_handler/test/protocol_header_validator_test.cc @@ -38,7 +38,7 @@ #include "protocol_handler/protocol_packet.h" namespace { - const size_t MAXIMUM_FRAME_DATA_V3_SIZE = 131072; +const size_t MAXIMUM_FRAME_DATA_V3_SIZE = 131072; } namespace test { @@ -67,28 +67,37 @@ TEST_F(ProtocolHeaderValidatorTest, MaxPayloadSizeSetGet) { } } -// Protocol version shall be from 1 to 3 +// Protocol version shall be from 1 to 4 TEST_F(ProtocolHeaderValidatorTest, Malformed_Version) { std::vector<uint8_t> malformed_versions; malformed_versions.push_back(0); - for (uint8_t version = PROTOCOL_VERSION_4 + 1; version <= PROTOCOL_VERSION_MAX; ++version) { + for (uint8_t version = PROTOCOL_VERSION_4 + 1; + version <= PROTOCOL_VERSION_MAX; + ++version) { malformed_versions.push_back(version); } for (size_t i = 0; i < malformed_versions.size(); ++i) { const ProtocolPacket::ProtocolHeader malformed_message_header( - malformed_versions[i], PROTECTION_OFF, FRAME_TYPE_CONTROL, kControl, - FRAME_DATA_HEART_BEAT, some_session_id, 0u, some_message_id); + malformed_versions[i], + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, + some_message_id); EXPECT_EQ(RESULT_FAIL, header_validator.validate(malformed_message_header)) << "Malformed version " << malformed_message_header.version; - } } -// ServiceType shall be equal 0x0 (Control), 0x07 (RPC), 0x0A (PCM), 0x0B (Video), 0x0F (Bulk) +// ServiceType shall be equal 0x0 (Control), 0x07 (RPC), 0x0A (PCM), 0x0B +// (Video), 0x0F (Bulk) TEST_F(ProtocolHeaderValidatorTest, Malformed_ServiceType) { std::vector<uint8_t> malformed_serv_types; - for (uint8_t service_type = kControl + 1; service_type < kRpc; ++service_type) { + for (uint8_t service_type = kControl + 1; service_type < kRpc; + ++service_type) { malformed_serv_types.push_back(service_type); } malformed_serv_types.push_back(0x08); @@ -99,58 +108,89 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_ServiceType) { for (size_t i = 0; i < malformed_serv_types.size(); ++i) { const ProtocolPacket::ProtocolHeader malformed_message_header( - PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, malformed_serv_types[i], - FRAME_DATA_HEART_BEAT, some_session_id, 0u, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + malformed_serv_types[i], + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, + some_message_id); EXPECT_EQ(RESULT_FAIL, header_validator.validate(malformed_message_header)) << "Malformed service type " << malformed_message_header.serviceType; } } -// Frame type shall be 0x00 (Control), 0x01 (Single), 0x02 (First), 0x03 (Consecutive) +// Frame type shall be 0x00 (Control), 0x01 (Single), 0x02 (First), 0x03 +// (Consecutive) TEST_F(ProtocolHeaderValidatorTest, Malformed_FrameType) { std::vector<uint8_t> malformed_frame_types; for (uint8_t frame_type = FRAME_TYPE_CONSECUTIVE + 1; - frame_type <= FRAME_TYPE_MAX_VALUE; ++frame_type) { + frame_type <= FRAME_TYPE_MAX_VALUE; + ++frame_type) { malformed_frame_types.push_back(frame_type); } for (size_t i = 0; i < malformed_frame_types.size(); ++i) { const ProtocolPacket::ProtocolHeader malformed_message_header( - PROTOCOL_VERSION_3, PROTECTION_OFF, malformed_frame_types[i], - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_OFF, + malformed_frame_types[i], + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, + some_message_id); EXPECT_EQ(RESULT_FAIL, header_validator.validate(malformed_message_header)) << "Malformed frame type " << malformed_message_header.frameType; } } -// For Control frames Frame info value shall be from 0x00 to 0x06 or 0xFE(Data Ack), 0xFF(HB Ack) +// For Control frames Frame info value shall be from 0x00 to 0x06 or 0xFE(Data +// Ack), 0xFF(HB Ack) TEST_F(ProtocolHeaderValidatorTest, Malformed_ControlFrame) { std::vector<uint8_t> malformed_frame_data; for (uint8_t frame_type = FRAME_DATA_END_SERVICE_NACK + 1; - frame_type < FRAME_DATA_SERVICE_DATA_ACK; ++frame_type) { + frame_type < FRAME_DATA_SERVICE_DATA_ACK; + ++frame_type) { malformed_frame_data.push_back(frame_type); } for (size_t i = 0; i < malformed_frame_data.size(); ++i) { const ProtocolPacket::ProtocolHeader malformed_message_header( - PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, kControl, - malformed_frame_data[i], some_session_id, 0u, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + malformed_frame_data[i], + some_session_id, + 0u, + some_message_id); EXPECT_EQ(RESULT_FAIL, header_validator.validate(malformed_message_header)) - << "Malformed Control frame with data " << malformed_message_header.frameData; + << "Malformed Control frame with data " + << malformed_message_header.frameData; } } // For Single and First frames Frame info value shall be equal 0x00 TEST_F(ProtocolHeaderValidatorTest, Malformed_SingleFrame) { std::vector<uint8_t> malformed_frame_data; for (uint8_t frame_type = FRAME_DATA_SINGLE + 1; - frame_type < FRAME_DATA_MAX_VALUE; ++frame_type) { + frame_type < FRAME_DATA_MAX_VALUE; + ++frame_type) { malformed_frame_data.push_back(frame_type); } malformed_frame_data.push_back(FRAME_DATA_MAX_VALUE); for (size_t i = 0; i < malformed_frame_data.size(); ++i) { const ProtocolPacket::ProtocolHeader malformed_message_header( - PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_SINGLE, kControl, - malformed_frame_data[i], some_session_id, 0u, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_SINGLE, + kControl, + malformed_frame_data[i], + some_session_id, + 0u, + some_message_id); EXPECT_EQ(RESULT_FAIL, header_validator.validate(malformed_message_header)) - << "Malformed Single frame with data " << malformed_message_header.frameData; + << "Malformed Single frame with data " + << malformed_message_header.frameData; // All malformed messages shall be ignored } } @@ -159,40 +199,68 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_SingleFrame) { TEST_F(ProtocolHeaderValidatorTest, Malformed_FirstFrame) { std::vector<uint8_t> malformed_frame_data; for (uint8_t frame_type = FRAME_DATA_FIRST + 1; - frame_type < FRAME_DATA_MAX_VALUE; ++frame_type) { + frame_type < FRAME_DATA_MAX_VALUE; + ++frame_type) { malformed_frame_data.push_back(frame_type); } malformed_frame_data.push_back(FRAME_DATA_MAX_VALUE); for (size_t i = 0; i < malformed_frame_data.size(); ++i) { const ProtocolPacket::ProtocolHeader malformed_message_header( - PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_SINGLE, kControl, - malformed_frame_data[i], some_session_id, 0u, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_SINGLE, + kControl, + malformed_frame_data[i], + some_session_id, + 0u, + some_message_id); EXPECT_EQ(RESULT_FAIL, header_validator.validate(malformed_message_header)) - << "Malformed First frame with data " << malformed_message_header.frameData; + << "Malformed First frame with data " + << malformed_message_header.frameData; } } TEST_F(ProtocolHeaderValidatorTest, Malformed_ControlFrame_EmptyPayload) { const size_t payload_size = 0u; const ProtocolPacket::ProtocolHeader control_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONTROL, kControl, - FRAME_DATA_HEART_BEAT, some_session_id, payload_size, some_message_id); - const ProtocolPacket::ProtocolHeader single_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_SINGLE, kControl, - FRAME_DATA_SINGLE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + payload_size, + some_message_id); + const ProtocolPacket::ProtocolHeader single_message_header(PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_SINGLE, + kControl, + FRAME_DATA_SINGLE, + some_session_id, + payload_size, + some_message_id); const ProtocolPacket::ProtocolHeader consecutive_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, kControl, - FRAME_DATA_LAST_CONSECUTIVE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kControl, + FRAME_DATA_LAST_CONSECUTIVE, + some_session_id, + payload_size, + some_message_id); - for (size_t max_payload_size = 0; max_payload_size < MAXIMUM_FRAME_DATA_V3_SIZE * 2; + for (size_t max_payload_size = 0; + max_payload_size < MAXIMUM_FRAME_DATA_V3_SIZE * 2; ++max_payload_size) { - header_validator.set_max_payload_size(MAXIMUM_FRAME_DATA_V3_SIZE + max_payload_size); + header_validator.set_max_payload_size(MAXIMUM_FRAME_DATA_V3_SIZE + + max_payload_size); // For Control frames Data Size value could be zero EXPECT_EQ(RESULT_OK, header_validator.validate(control_message_header)); // For Control frames Data Size value could be zero EXPECT_EQ(RESULT_FAIL, header_validator.validate(single_message_header)); - EXPECT_EQ(RESULT_FAIL, header_validator.validate(consecutive_message_header)); + EXPECT_EQ(RESULT_FAIL, + header_validator.validate(consecutive_message_header)); } } @@ -200,14 +268,31 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_ControlFrame_EmptyPayload) { TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V2) { const size_t payload_size = MAXIMUM_FRAME_DATA_V2_SIZE; const ProtocolPacket::ProtocolHeader control_message_header( - PROTOCOL_VERSION_2, PROTECTION_ON, FRAME_TYPE_CONTROL, kControl, - FRAME_DATA_HEART_BEAT, some_session_id, payload_size, some_message_id); - const ProtocolPacket::ProtocolHeader single_message_header( - PROTOCOL_VERSION_2, PROTECTION_ON, FRAME_TYPE_SINGLE, kControl, - FRAME_DATA_SINGLE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_2, + PROTECTION_ON, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + payload_size, + some_message_id); + const ProtocolPacket::ProtocolHeader single_message_header(PROTOCOL_VERSION_2, + PROTECTION_ON, + FRAME_TYPE_SINGLE, + kControl, + FRAME_DATA_SINGLE, + some_session_id, + payload_size, + some_message_id); const ProtocolPacket::ProtocolHeader consecutive_message_header( - PROTOCOL_VERSION_2, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, kControl, - FRAME_DATA_LAST_CONSECUTIVE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_2, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kControl, + FRAME_DATA_LAST_CONSECUTIVE, + some_session_id, + payload_size, + some_message_id); for (size_t max_payload_size = 0; max_payload_size < MAXIMUM_FRAME_DATA_V3_SIZE * 2; @@ -222,14 +307,31 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V2) { TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V3) { const size_t payload_size = MAXIMUM_FRAME_DATA_V3_SIZE; const ProtocolPacket::ProtocolHeader control_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONTROL, kControl, - FRAME_DATA_HEART_BEAT, some_session_id, payload_size, some_message_id); - const ProtocolPacket::ProtocolHeader single_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_SINGLE, kControl, - FRAME_DATA_SINGLE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + payload_size, + some_message_id); + const ProtocolPacket::ProtocolHeader single_message_header(PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_SINGLE, + kControl, + FRAME_DATA_SINGLE, + some_session_id, + payload_size, + some_message_id); const ProtocolPacket::ProtocolHeader consecutive_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, kControl, - FRAME_DATA_LAST_CONSECUTIVE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kControl, + FRAME_DATA_LAST_CONSECUTIVE, + some_session_id, + payload_size, + some_message_id); for (size_t max_payload_size = 0; max_payload_size < MAXIMUM_FRAME_DATA_V3_SIZE; @@ -237,7 +339,8 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V3) { header_validator.set_max_payload_size(max_payload_size); EXPECT_EQ(RESULT_FAIL, header_validator.validate(control_message_header)); EXPECT_EQ(RESULT_FAIL, header_validator.validate(single_message_header)); - EXPECT_EQ(RESULT_FAIL, header_validator.validate(consecutive_message_header)); + EXPECT_EQ(RESULT_FAIL, + header_validator.validate(consecutive_message_header)); } for (size_t max_payload_size = MAXIMUM_FRAME_DATA_V3_SIZE; @@ -253,14 +356,31 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V3) { TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V3_with_V2_size) { const size_t payload_size = MAXIMUM_FRAME_DATA_V2_SIZE; const ProtocolPacket::ProtocolHeader control_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONTROL, kControl, - FRAME_DATA_HEART_BEAT, some_session_id, payload_size, some_message_id); - const ProtocolPacket::ProtocolHeader single_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_SINGLE, kControl, - FRAME_DATA_SINGLE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + payload_size, + some_message_id); + const ProtocolPacket::ProtocolHeader single_message_header(PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_SINGLE, + kControl, + FRAME_DATA_SINGLE, + some_session_id, + payload_size, + some_message_id); const ProtocolPacket::ProtocolHeader consecutive_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, kControl, - FRAME_DATA_LAST_CONSECUTIVE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kControl, + FRAME_DATA_LAST_CONSECUTIVE, + some_session_id, + payload_size, + some_message_id); for (size_t max_payload_size = 0; max_payload_size < MAXIMUM_FRAME_DATA_V3_SIZE * 2; @@ -275,9 +395,14 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V3_with_V2_size) { // Message ID be equal or greater than 0x01 TEST_F(ProtocolHeaderValidatorTest, Malformed_MessageID) { const uint32_t malformed_message_id = 0x0u; - ProtocolPacket::ProtocolHeader message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_FIRST, kControl, - FRAME_DATA_HEART_BEAT, some_session_id, 0u, malformed_message_id); + ProtocolPacket::ProtocolHeader message_header(PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_FIRST, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, + malformed_message_id); message_header.frameType = FRAME_TYPE_FIRST; message_header.version = PROTOCOL_VERSION_1; |