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