| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <gtest/gtest.h> | 5 #include <gtest/gtest.h> |
| 6 #include "media/cast/cast_defines.h" |
| 6 #include "media/cast/net/cast_transport_defines.h" | 7 #include "media/cast/net/cast_transport_defines.h" |
| 7 | 8 |
| 8 namespace media { | 9 namespace media { |
| 9 namespace cast { | 10 namespace cast { |
| 10 | 11 |
| 11 class FrameIdWrapHelperTest : public ::testing::Test { | 12 class FrameIdWrapHelperTest : public ::testing::Test { |
| 12 protected: | 13 protected: |
| 13 FrameIdWrapHelperTest() {} | 14 FrameIdWrapHelperTest() {} |
| 14 virtual ~FrameIdWrapHelperTest() {} | 15 virtual ~FrameIdWrapHelperTest() {} |
| 15 | 16 |
| 17 void RunOneTest(uint32 starting_point, int iterations) { |
| 18 const int window_size = 127; |
| 19 uint32 window_base = starting_point; |
| 20 frame_id_wrap_helper_.largest_frame_id_seen_ = starting_point; |
| 21 for (int i = 0; i < iterations; i++) { |
| 22 uint32 largest_frame_id_seen = |
| 23 frame_id_wrap_helper_.largest_frame_id_seen_; |
| 24 int offset = rand() % window_size; |
| 25 uint32 frame_id = window_base + offset; |
| 26 uint32 mapped_frame_id = |
| 27 frame_id_wrap_helper_.MapTo32bitsFrameId(frame_id & 0xff); |
| 28 EXPECT_EQ(frame_id, mapped_frame_id) |
| 29 << " Largest ID seen: " << largest_frame_id_seen |
| 30 << " Window base: " << window_base |
| 31 << " Offset: " << offset; |
| 32 window_base = frame_id; |
| 33 } |
| 34 } |
| 35 |
| 16 FrameIdWrapHelper frame_id_wrap_helper_; | 36 FrameIdWrapHelper frame_id_wrap_helper_; |
| 17 | 37 |
| 18 DISALLOW_COPY_AND_ASSIGN(FrameIdWrapHelperTest); | 38 DISALLOW_COPY_AND_ASSIGN(FrameIdWrapHelperTest); |
| 19 }; | 39 }; |
| 20 | 40 |
| 21 TEST_F(FrameIdWrapHelperTest, FirstFrame) { | 41 TEST_F(FrameIdWrapHelperTest, FirstFrame) { |
| 22 EXPECT_EQ(kStartFrameId, frame_id_wrap_helper_.MapTo32bitsFrameId(255u)); | 42 EXPECT_EQ(kStartFrameId, frame_id_wrap_helper_.MapTo32bitsFrameId(255u)); |
| 23 } | 43 } |
| 24 | 44 |
| 25 TEST_F(FrameIdWrapHelperTest, Rollover) { | 45 TEST_F(FrameIdWrapHelperTest, Rollover) { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 39 } | 59 } |
| 40 EXPECT_EQ(254u, new_frame_id); | 60 EXPECT_EQ(254u, new_frame_id); |
| 41 new_frame_id = frame_id_wrap_helper_.MapTo32bitsFrameId(0u); | 61 new_frame_id = frame_id_wrap_helper_.MapTo32bitsFrameId(0u); |
| 42 EXPECT_EQ(256u, new_frame_id); | 62 EXPECT_EQ(256u, new_frame_id); |
| 43 new_frame_id = frame_id_wrap_helper_.MapTo32bitsFrameId(255u); | 63 new_frame_id = frame_id_wrap_helper_.MapTo32bitsFrameId(255u); |
| 44 EXPECT_EQ(255u, new_frame_id); | 64 EXPECT_EQ(255u, new_frame_id); |
| 45 new_frame_id = frame_id_wrap_helper_.MapTo32bitsFrameId(1u); | 65 new_frame_id = frame_id_wrap_helper_.MapTo32bitsFrameId(1u); |
| 46 EXPECT_EQ(257u, new_frame_id); | 66 EXPECT_EQ(257u, new_frame_id); |
| 47 } | 67 } |
| 48 | 68 |
| 69 TEST_F(FrameIdWrapHelperTest, Windowed) { |
| 70 srand(0); |
| 71 for (int i = 0; i < 50000 && !HasFailure(); i++) { |
| 72 RunOneTest(i * 4711, 20); |
| 73 // Test wrap-around scenarios. |
| 74 RunOneTest(0x7fffff00ul, 20); |
| 75 RunOneTest(0xffffff00ul, 20); |
| 76 } |
| 77 } |
| 78 |
| 49 } // namespace cast | 79 } // namespace cast |
| 50 } // namespace media | 80 } // namespace media |
| OLD | NEW |