| Index: webrtc/modules/module_common_types_unittest.cc
|
| diff --git a/webrtc/modules/module_common_types_unittest.cc b/webrtc/modules/module_common_types_unittest.cc
|
| index 159e26babe92a59ee5245829c9ea1e24e29f9600..e4d5033b888f56a876e037f98aa369afcc7ee15d 100644
|
| --- a/webrtc/modules/module_common_types_unittest.cc
|
| +++ b/webrtc/modules/module_common_types_unittest.cc
|
| @@ -119,11 +119,11 @@ TEST(SequenceNumberUnwrapper, Limits) {
|
| EXPECT_EQ(0, unwrapper.Unwrap(0));
|
| EXPECT_EQ(0x8000, unwrapper.Unwrap(0x8000));
|
| // Delta is exactly 0x8000 but current is lower than input, wrap backwards.
|
| - EXPECT_EQ(0x0, unwrapper.Unwrap(0x0000));
|
| + EXPECT_EQ(0, unwrapper.Unwrap(0));
|
|
|
| EXPECT_EQ(0x8000, unwrapper.Unwrap(0x8000));
|
| EXPECT_EQ(0xFFFF, unwrapper.Unwrap(0xFFFF));
|
| - EXPECT_EQ(0x10000, unwrapper.Unwrap(0x0000));
|
| + EXPECT_EQ(0x10000, unwrapper.Unwrap(0));
|
| EXPECT_EQ(0xFFFF, unwrapper.Unwrap(0xFFFF));
|
| EXPECT_EQ(0x8000, unwrapper.Unwrap(0x8000));
|
| EXPECT_EQ(0, unwrapper.Unwrap(0));
|
| @@ -172,4 +172,53 @@ TEST(SequenceNumberUnwrapper, BackwardWraps) {
|
| }
|
| }
|
|
|
| +TEST(TimestampUnwrapper, Limits) {
|
| + TimestampUnwrapper unwrapper;
|
| +
|
| + EXPECT_EQ(0, unwrapper.Unwrap(0));
|
| + EXPECT_EQ(0x80000000, unwrapper.Unwrap(0x80000000));
|
| + // Delta is exactly 0x80000000 but current is lower than input, wrap
|
| + // backwards.
|
| + EXPECT_EQ(0, unwrapper.Unwrap(0));
|
| +
|
| + EXPECT_EQ(0x80000000, unwrapper.Unwrap(0x80000000));
|
| + EXPECT_EQ(0xFFFFFFFF, unwrapper.Unwrap(0xFFFFFFFF));
|
| + EXPECT_EQ(0x100000000, unwrapper.Unwrap(0x00000000));
|
| + EXPECT_EQ(0xFFFFFFFF, unwrapper.Unwrap(0xFFFFFFFF));
|
| + EXPECT_EQ(0x80000000, unwrapper.Unwrap(0x80000000));
|
| + EXPECT_EQ(0, unwrapper.Unwrap(0));
|
| +
|
| + // Don't allow negative values.
|
| + EXPECT_EQ(0xFFFFFFFF, unwrapper.Unwrap(0xFFFFFFFF));
|
| +}
|
| +
|
| +TEST(TimestampUnwrapper, ForwardWraps) {
|
| + int64_t ts = 0;
|
| + TimestampUnwrapper unwrapper;
|
| +
|
| + const int64_t kMaxIncrease = 0x80000000 - 1;
|
| + const int kNumWraps = 4;
|
| + for (int i = 0; i < kNumWraps * 2; ++i) {
|
| + int64_t unwrapped =
|
| + unwrapper.Unwrap(static_cast<uint32_t>(ts & 0xFFFFFFFF));
|
| + EXPECT_EQ(ts, unwrapped);
|
| + ts += kMaxIncrease;
|
| + }
|
| +}
|
| +
|
| +TEST(TimestampUnwrapper, BackwardWraps) {
|
| + TimestampUnwrapper unwrapper;
|
| +
|
| + const int64_t kMaxDecrease = 0x80000000 - 1;
|
| + const int kNumWraps = 4;
|
| + int64_t ts = kNumWraps * 2 * kMaxDecrease;
|
| + unwrapper.UpdateLast(ts);
|
| + for (int i = 0; i <= kNumWraps * 2; ++i) {
|
| + int64_t unwrapped =
|
| + unwrapper.Unwrap(static_cast<uint32_t>(ts & 0xFFFFFFFF));
|
| + EXPECT_EQ(ts, unwrapped);
|
| + ts -= kMaxDecrease;
|
| + }
|
| +}
|
| +
|
| } // namespace webrtc
|
|
|