Index: sync/engine/sync_scheduler_unittest.cc |
diff --git a/sync/engine/sync_scheduler_unittest.cc b/sync/engine/sync_scheduler_unittest.cc |
index 13c5441aac51949b48b066d9e575800ee6c19a32..268fae2c768b550241e9e3b389be868c8fa8b29f 100644 |
--- a/sync/engine/sync_scheduler_unittest.cc |
+++ b/sync/engine/sync_scheduler_unittest.cc |
@@ -94,8 +94,18 @@ ModelSafeRoutingInfo TypesToRoutingInfo(ModelTypeSet types) { |
return routes; |
} |
-// Convenient to use in tests wishing to analyze SyncShare calls over time. |
+ |
static const size_t kMinNumSamples = 5; |
+ |
+// Test harness for the SyncScheduler. Test the delays and backoff timers used |
+// in response to various events. |
+// |
+// These tests execute in real time with real timers. We try to keep the |
+// delays short, but there is a limit to how short we can make them. The |
+// timers on some platforms (ie. Windows) have a timer resolution greater than |
+// 1ms. Using 1ms delays may result in test flakiness. |
+// |
+// See crbug.com/402212 for more info. |
class SyncSchedulerTest : public testing::Test { |
public: |
SyncSchedulerTest() : syncer_(NULL), delay_(NULL), weak_ptr_factory_(this) {} |
@@ -343,7 +353,7 @@ TEST_F(SyncSchedulerTest, Config) { |
TEST_F(SyncSchedulerTest, ConfigWithBackingOff) { |
UseMockDelayProvider(); |
EXPECT_CALL(*delay(), GetDelay(_)) |
- .WillRepeatedly(Return(TimeDelta::FromMilliseconds(1))); |
+ .WillRepeatedly(Return(TimeDelta::FromMilliseconds(20))); |
SyncShareTimes times; |
const ModelTypeSet model_types(BOOKMARKS); |
@@ -389,7 +399,7 @@ TEST_F(SyncSchedulerTest, ConfigWithBackingOff) { |
TEST_F(SyncSchedulerTest, ConfigWithStop) { |
UseMockDelayProvider(); |
EXPECT_CALL(*delay(), GetDelay(_)) |
- .WillRepeatedly(Return(TimeDelta::FromMilliseconds(1))); |
+ .WillRepeatedly(Return(TimeDelta::FromMilliseconds(20))); |
SyncShareTimes times; |
const ModelTypeSet model_types(BOOKMARKS); |
@@ -652,7 +662,7 @@ TEST_F(SyncSchedulerTest, SessionsCommitDelay) { |
// Test that no syncing occurs when throttled. |
TEST_F(SyncSchedulerTest, ThrottlingDoesThrottle) { |
const ModelTypeSet types(BOOKMARKS); |
- TimeDelta poll(TimeDelta::FromMilliseconds(5)); |
+ TimeDelta poll(TimeDelta::FromMilliseconds(20)); |
TimeDelta throttle(TimeDelta::FromMinutes(10)); |
scheduler()->OnReceivedLongPollIntervalUpdate(poll); |
@@ -916,7 +926,7 @@ class BackoffTriggersSyncSchedulerTest : public SyncSchedulerTest { |
SyncSchedulerTest::SetUp(); |
UseMockDelayProvider(); |
EXPECT_CALL(*delay(), GetDelay(_)) |
- .WillRepeatedly(Return(TimeDelta::FromMilliseconds(1))); |
+ .WillRepeatedly(Return(TimeDelta::FromMilliseconds(10))); |
} |
virtual void TearDown() { |
@@ -1001,7 +1011,7 @@ TEST_F(BackoffTriggersSyncSchedulerTest, FailGetEncryptionKey) { |
// Test that no polls or extraneous nudges occur when in backoff. |
TEST_F(SyncSchedulerTest, BackoffDropsJobs) { |
SyncShareTimes times; |
- TimeDelta poll(TimeDelta::FromMilliseconds(5)); |
+ TimeDelta poll(TimeDelta::FromMilliseconds(10)); |
const ModelTypeSet types(BOOKMARKS); |
scheduler()->OnReceivedLongPollIntervalUpdate(poll); |
UseMockDelayProvider(); |
@@ -1027,7 +1037,7 @@ TEST_F(SyncSchedulerTest, BackoffDropsJobs) { |
// Try (and fail) to schedule a nudge. |
scheduler()->ScheduleLocalNudge( |
- base::TimeDelta::FromMilliseconds(1), |
+ base::TimeDelta::FromMilliseconds(10), |
types, |
FROM_HERE); |
@@ -1063,10 +1073,10 @@ TEST_F(SyncSchedulerTest, BackoffElevation) { |
RecordSyncShareMultiple(×, kMinNumSamples))); |
const TimeDelta first = TimeDelta::FromSeconds(kInitialBackoffRetrySeconds); |
- const TimeDelta second = TimeDelta::FromMilliseconds(2); |
- const TimeDelta third = TimeDelta::FromMilliseconds(3); |
- const TimeDelta fourth = TimeDelta::FromMilliseconds(4); |
- const TimeDelta fifth = TimeDelta::FromMilliseconds(5); |
+ const TimeDelta second = TimeDelta::FromMilliseconds(20); |
+ const TimeDelta third = TimeDelta::FromMilliseconds(30); |
+ const TimeDelta fourth = TimeDelta::FromMilliseconds(40); |
+ const TimeDelta fifth = TimeDelta::FromMilliseconds(50); |
const TimeDelta sixth = TimeDelta::FromDays(1); |
EXPECT_CALL(*delay(), GetDelay(first)).WillOnce(Return(second)) |
@@ -1099,7 +1109,7 @@ TEST_F(SyncSchedulerTest, BackoffRelief) { |
scheduler()->OnReceivedLongPollIntervalUpdate(poll); |
UseMockDelayProvider(); |
- const TimeDelta backoff = TimeDelta::FromMilliseconds(5); |
+ const TimeDelta backoff = TimeDelta::FromMilliseconds(10); |
EXPECT_CALL(*delay(), GetDelay(_)).WillOnce(Return(backoff)); |
// Optimal start for the post-backoff poll party. |
@@ -1149,7 +1159,7 @@ TEST_F(SyncSchedulerTest, BackoffRelief) { |
// subsequent poll attempts, nor should they trigger a backoff/retry. |
TEST_F(SyncSchedulerTest, TransientPollFailure) { |
SyncShareTimes times; |
- const TimeDelta poll_interval(TimeDelta::FromMilliseconds(1)); |
+ const TimeDelta poll_interval(TimeDelta::FromMilliseconds(10)); |
scheduler()->OnReceivedLongPollIntervalUpdate(poll_interval); |
UseMockDelayProvider(); // Will cause test failure if backoff is initiated. |
@@ -1311,17 +1321,11 @@ TEST_F(SyncSchedulerTest, PollFromCanaryAfterAuthError) { |
StopSyncScheduler(); |
} |
-#if defined(OS_WIN) |
-// Times out: http://crbug.com/402212 |
-#define MAYBE_SuccessfulRetry DISABLED_SuccessfulRetry |
-#else |
-#define MAYBE_SuccessfulRetry SuccessfulRetry |
-#endif |
-TEST_F(SyncSchedulerTest, MAYBE_SuccessfulRetry) { |
+TEST_F(SyncSchedulerTest, SuccessfulRetry) { |
StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
SyncShareTimes times; |
- base::TimeDelta delay = base::TimeDelta::FromMilliseconds(1); |
+ base::TimeDelta delay = base::TimeDelta::FromMilliseconds(10); |
scheduler()->OnReceivedGuRetryDelay(delay); |
EXPECT_EQ(delay, GetRetryTimerDelay()); |
@@ -1336,20 +1340,14 @@ TEST_F(SyncSchedulerTest, MAYBE_SuccessfulRetry) { |
StopSyncScheduler(); |
} |
-#if defined(OS_WIN) |
-// Times out: http://crbug.com/402212 |
-#define MAYBE_FailedRetry DISABLED_FailedRetry |
-#else |
-#define MAYBE_FailedRetry FailedRetry |
-#endif |
-TEST_F(SyncSchedulerTest, MAYBE_FailedRetry) { |
+TEST_F(SyncSchedulerTest, FailedRetry) { |
UseMockDelayProvider(); |
EXPECT_CALL(*delay(), GetDelay(_)) |
- .WillRepeatedly(Return(TimeDelta::FromMilliseconds(1))); |
+ .WillRepeatedly(Return(TimeDelta::FromMilliseconds(10))); |
StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
- base::TimeDelta delay = base::TimeDelta::FromMilliseconds(1); |
+ base::TimeDelta delay = base::TimeDelta::FromMilliseconds(10); |
scheduler()->OnReceivedGuRetryDelay(delay); |
EXPECT_CALL(*syncer(), NormalSyncShare(_,_,_)) |
@@ -1376,13 +1374,7 @@ ACTION_P2(VerifyRetryTimerDelay, scheduler_test, expected_delay) { |
EXPECT_EQ(expected_delay, scheduler_test->GetRetryTimerDelay()); |
} |
-#if defined(OS_WIN) |
-// Times out: http://crbug.com/402212 |
-#define MAYBE_ReceiveNewRetryDelay DISABLED_ReceiveNewRetryDelay |
-#else |
-#define MAYBE_ReceiveNewRetryDelay ReceiveNewRetryDelay |
-#endif |
-TEST_F(SyncSchedulerTest, MAYBE_ReceiveNewRetryDelay) { |
+TEST_F(SyncSchedulerTest, ReceiveNewRetryDelay) { |
StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
SyncShareTimes times; |