dhcp_message_unittest.cc revision 679654b4a871034b59ceadb98d113ac8cab120d6
1679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// 2679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// Copyright (C) 2015 The Android Open Source Project 3679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// 4679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// Licensed under the Apache License, Version 2.0 (the "License"); 5679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// you may not use this file except in compliance with the License. 6679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// You may obtain a copy of the License at 7679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// 8679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// http://www.apache.org/licenses/LICENSE-2.0 9679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// 10679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// Unless required by applicable law or agreed to in writing, software 11679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// distributed under the License is distributed on an "AS IS" BASIS, 12679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// See the License for the specific language governing permissions and 14679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// limitations under the License. 15679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang// 16679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang 17679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang#include <dhcp_client/dhcp_message.h> 18679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang 19679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang#include <gtest/gtest.h> 20679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang 21679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wangnamespace { 22679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wangconst uint8_t kFakeBufferEvenLength[] = {0x08, 0x00, 0x00, 0x00, 23679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang 0x71, 0x50, 0x00, 0x00}; 24679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wangconst size_t kFakeBufferEvenLengthSize = 8; 25679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wangconst uint16_t kFakeBufferEvenLengthChecksum = 0x86af; 26679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang 27679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wangconst uint8_t kFakeBufferOddLength[] = {0x08, 0x00, 0x00, 0x00, 0xac, 0x51, 28679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang 0x00, 0x00, 0x00, 0x00, 0x01}; 29679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wangconst size_t kFakeBufferOddLengthSize = 11; 30679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wangconst uint16_t kFakeBufferOddLengthChecksum = 0x4aae; 31679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang} 32679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang 33679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wangnamespace dhcp_client { 34679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang 35679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wangclass DHCPMessageTest : public testing::Test { 36679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang public: 37679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang DHCPMessageTest() {} 38679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang protected: 39679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang}; 40679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang 41679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan WangTEST_F(DHCPMessageTest, ComputeChecksumEvenLengthTest) { 42679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang uint16_t checksum = DHCPMessage::ComputeChecksum(kFakeBufferEvenLength, 43679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang kFakeBufferEvenLengthSize); 44679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang EXPECT_EQ(kFakeBufferEvenLengthChecksum, checksum); 45679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang} 46679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang 47679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan WangTEST_F(DHCPMessageTest, ComputeChecksumOddLengthTest) { 48679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang uint16_t checksum = DHCPMessage::ComputeChecksum(kFakeBufferOddLength, 49679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang kFakeBufferOddLengthSize); 50679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang EXPECT_EQ(kFakeBufferOddLengthChecksum, checksum); 51679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang} 52679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang 53679654b4a871034b59ceadb98d113ac8cab120d6Ningyuan Wang} // namespace dhcp_client 54