| Index: webrtc/modules/rtp_rtcp/source/time_util_unittest.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/time_util_unittest.cc b/webrtc/modules/rtp_rtcp/source/time_util_unittest.cc
|
| index 7efb83ccadc50e24cea84b40a87e450b51e3ac37..8333a64e70aa2dcac51d504608b8bc42961d9e80 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/time_util_unittest.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/time_util_unittest.cc
|
| @@ -21,21 +21,21 @@ TEST(TimeUtilTest, CompactNtp) {
|
| EXPECT_EQ(kNtpMid, CompactNtp(kNtp));
|
| }
|
|
|
| -TEST(TimeUtilTest, CompactNtpToMs) {
|
| +TEST(TimeUtilTest, CompactNtpRttToMs) {
|
| const NtpTime ntp1(0x12345, 0x23456);
|
| const NtpTime ntp2(0x12654, 0x64335);
|
| - uint32_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
|
| + int64_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
|
| uint32_t ntp_diff = CompactNtp(ntp2) - CompactNtp(ntp1);
|
|
|
| - uint32_t ntp_to_ms_diff = CompactNtpIntervalToMs(ntp_diff);
|
| + int64_t ntp_to_ms_diff = CompactNtpRttToMs(ntp_diff);
|
|
|
| EXPECT_NEAR(ms_diff, ntp_to_ms_diff, 1);
|
| }
|
|
|
| -TEST(TimeUtilTest, CompactNtpToMsWithWrap) {
|
| +TEST(TimeUtilTest, CompactNtpRttToMsWithWrap) {
|
| const NtpTime ntp1(0x1ffff, 0x23456);
|
| const NtpTime ntp2(0x20000, 0x64335);
|
| - uint32_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
|
| + int64_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
|
|
|
| // While ntp2 > ntp1, there compact ntp presentation happen to be opposite.
|
| // That shouldn't be a problem as long as unsigned arithmetic is used.
|
| @@ -43,20 +43,31 @@ TEST(TimeUtilTest, CompactNtpToMsWithWrap) {
|
| ASSERT_LT(CompactNtp(ntp2), CompactNtp(ntp1));
|
|
|
| uint32_t ntp_diff = CompactNtp(ntp2) - CompactNtp(ntp1);
|
| - uint32_t ntp_to_ms_diff = CompactNtpIntervalToMs(ntp_diff);
|
| + int64_t ntp_to_ms_diff = CompactNtpRttToMs(ntp_diff);
|
|
|
| EXPECT_NEAR(ms_diff, ntp_to_ms_diff, 1);
|
| }
|
|
|
| -TEST(TimeUtilTest, CompactNtpToMsLarge) {
|
| - const NtpTime ntp1(0x10000, 0x23456);
|
| - const NtpTime ntp2(0x1ffff, 0x64335);
|
| - uint32_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
|
| - // Ntp difference close to maximum of ~18 hours should convert correctly too.
|
| - ASSERT_GT(ms_diff, 18u * 3600 * 1000);
|
| +TEST(TimeUtilTest, CompactNtpRttToMsLarge) {
|
| + const NtpTime ntp1(0x10000, 0x00006);
|
| + const NtpTime ntp2(0x17fff, 0xffff5);
|
| + int64_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
|
| + // Ntp difference close to 2^15 seconds should convert correctly too.
|
| + ASSERT_NEAR(ms_diff, ((1 << 15) - 1) * 1000, 1);
|
| uint32_t ntp_diff = CompactNtp(ntp2) - CompactNtp(ntp1);
|
| - uint32_t ntp_to_ms_diff = CompactNtpIntervalToMs(ntp_diff);
|
| + int64_t ntp_to_ms_diff = CompactNtpRttToMs(ntp_diff);
|
|
|
| EXPECT_NEAR(ms_diff, ntp_to_ms_diff, 1);
|
| }
|
| +
|
| +TEST(TimeUtilTest, CompactNtpRttToMsNegative) {
|
| + const NtpTime ntp1(0x20000, 0x23456);
|
| + const NtpTime ntp2(0x1ffff, 0x64335);
|
| + int64_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
|
| + ASSERT_GT(0, ms_diff);
|
| + // Ntp difference close to 2^16 seconds should be treated as negative.
|
| + uint32_t ntp_diff = CompactNtp(ntp2) - CompactNtp(ntp1);
|
| + int64_t ntp_to_ms_diff = CompactNtpRttToMs(ntp_diff);
|
| + EXPECT_EQ(1, ntp_to_ms_diff);
|
| +}
|
| } // namespace webrtc
|
|
|