• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "chrome/browser/sync/test/integration/performance/sync_timing_helper.h"
6 
7 #include "base/strings/string_number_conversions.h"
8 #include "base/time/time.h"
9 #include "chrome/browser/sync/test/integration/profile_sync_service_harness.h"
10 #include "chrome/browser/sync/test/integration/sync_integration_test_util.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12 
13 using sync_integration_test_util::AwaitCommitActivityCompletion;
14 
SyncTimingHelper()15 SyncTimingHelper::SyncTimingHelper() {}
16 
~SyncTimingHelper()17 SyncTimingHelper::~SyncTimingHelper() {}
18 
19 // static
TimeSyncCycle(ProfileSyncServiceHarness * client)20 base::TimeDelta SyncTimingHelper::TimeSyncCycle(
21     ProfileSyncServiceHarness* client) {
22   base::Time start = base::Time::Now();
23   EXPECT_TRUE(AwaitCommitActivityCompletion(client->service()));
24   return base::Time::Now() - start;
25 }
26 
27 // static
TimeMutualSyncCycle(ProfileSyncServiceHarness * client,ProfileSyncServiceHarness * partner)28 base::TimeDelta SyncTimingHelper::TimeMutualSyncCycle(
29     ProfileSyncServiceHarness* client, ProfileSyncServiceHarness* partner) {
30   base::Time start = base::Time::Now();
31   EXPECT_TRUE(client->AwaitMutualSyncCycleCompletion(partner));
32   return base::Time::Now() - start;
33 }
34 
35 // static
TimeUntilQuiescence(std::vector<ProfileSyncServiceHarness * > & clients)36 base::TimeDelta SyncTimingHelper::TimeUntilQuiescence(
37     std::vector<ProfileSyncServiceHarness*>& clients) {
38   base::Time start = base::Time::Now();
39   EXPECT_TRUE(ProfileSyncServiceHarness::AwaitQuiescence(clients));
40   return base::Time::Now() - start;
41 }
42 
43 // static
PrintResult(const std::string & measurement,const std::string & trace,const base::TimeDelta & dt)44 void SyncTimingHelper::PrintResult(const std::string& measurement,
45                                    const std::string& trace,
46                                    const base::TimeDelta& dt) {
47   printf("*RESULT %s: %s= %s ms\n", measurement.c_str(), trace.c_str(),
48          base::IntToString(dt.InMillisecondsF()).c_str());
49 }
50