1c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant/* 2c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant * 4c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant * Use of this source code is governed by a BSD-style license 5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant * that can be found in the LICENSE file in the root of the source 6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant * tree. An additional intellectual property rights grant can be found 7c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant * in the file PATENTS. All contributing project authors may 8c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant * be found in the AUTHORS file in the root of the source tree. 9c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant */ 10c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant 11c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant#ifndef WEBRTC_TEST_TESTSUPPORT_UNITTEST_UTILS_H_ 12c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant#define WEBRTC_TEST_TESTSUPPORT_UNITTEST_UTILS_H_ 13c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant 14c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnantnamespace webrtc { 15c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnantnamespace test { 16c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant 17c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnantconst int kPacketSizeInBytes = 1500; 18c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnantconst int kPacketDataLength = kPacketSizeInBytes * 2 + 1; 19c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnantconst int kPacketDataNumberOfPackets = 3; 20c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant 21c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant// A base test fixture for packet related tests. Contains 22c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant// two full prepared packets with 1s, 2s in their data and a third packet with 23c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant// a single 3 in it (size=1). 24ff46409221ea91df3c5413ba06eed2f6ba963444Marshall Clow// A packet data structure is also available, that contains these three packets 25ff46409221ea91df3c5413ba06eed2f6ba963444Marshall Clow// in order. 26ff46409221ea91df3c5413ba06eed2f6ba963444Marshall Clowclass PacketRelatedTest: public testing::Test { 27ff46409221ea91df3c5413ba06eed2f6ba963444Marshall Clow protected: 28ff46409221ea91df3c5413ba06eed2f6ba963444Marshall Clow // Tree packet byte arrays with data used for verification: 29ff46409221ea91df3c5413ba06eed2f6ba963444Marshall Clow uint8_t packet1_[kPacketSizeInBytes]; 309738cafa4f5c5ce19cd674e7e8c38376eaac8abeMarshall Clow uint8_t packet2_[kPacketSizeInBytes]; 319738cafa4f5c5ce19cd674e7e8c38376eaac8abeMarshall Clow uint8_t packet3_[1]; 329738cafa4f5c5ce19cd674e7e8c38376eaac8abeMarshall Clow // Construct a data structure containing these packets 339738cafa4f5c5ce19cd674e7e8c38376eaac8abeMarshall Clow uint8_t packet_data_[kPacketDataLength]; 349738cafa4f5c5ce19cd674e7e8c38376eaac8abeMarshall Clow uint8_t* packet_data_pointer_; 359738cafa4f5c5ce19cd674e7e8c38376eaac8abeMarshall Clow 36ff46409221ea91df3c5413ba06eed2f6ba963444Marshall Clow PacketRelatedTest() { 37c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant packet_data_pointer_ = packet_data_; 38 39 memset(packet1_, 1, kPacketSizeInBytes); 40 memset(packet2_, 2, kPacketSizeInBytes); 41 memset(packet3_, 3, 1); 42 // Fill the packet_data: 43 memcpy(packet_data_pointer_, packet1_, kPacketSizeInBytes); 44 memcpy(packet_data_pointer_ + kPacketSizeInBytes, packet2_, 45 kPacketSizeInBytes); 46 memcpy(packet_data_pointer_ + kPacketSizeInBytes * 2, packet3_, 1); 47 } 48 virtual ~PacketRelatedTest() {} 49 void SetUp() {} 50 void TearDown() {} 51}; 52 53} // namespace test 54} // namespace webrtc 55 56#endif // WEBRTC_TEST_TESTSUPPORT_UNITTEST_UTILS_H_ 57