Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(35)

Unified Diff: webrtc/modules/module_common_types_unittest.cc

Issue 2813593003: Add TimestampUnwrapper and generalize the code (Closed)
Patch Set: Remove ctor Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/include/module_common_types.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « webrtc/modules/include/module_common_types.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698