sync_timing_helper.cc revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
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/profile_sync_service_harness.h"
10#include "testing/gtest/include/gtest/gtest.h"
11
12SyncTimingHelper::SyncTimingHelper() {}
13
14SyncTimingHelper::~SyncTimingHelper() {}
15
16// static
17base::TimeDelta SyncTimingHelper::TimeSyncCycle(
18    ProfileSyncServiceHarness* client) {
19  base::Time start = base::Time::Now();
20  EXPECT_TRUE(client->AwaitFullSyncCompletion("Timing sync cycle."));
21  return base::Time::Now() - start;
22}
23
24// static
25base::TimeDelta SyncTimingHelper::TimeMutualSyncCycle(
26    ProfileSyncServiceHarness* client, ProfileSyncServiceHarness* partner) {
27  base::Time start = base::Time::Now();
28  EXPECT_TRUE(client->AwaitMutualSyncCycleCompletion(partner));
29  return base::Time::Now() - start;
30}
31
32// static
33base::TimeDelta SyncTimingHelper::TimeUntilQuiescence(
34    std::vector<ProfileSyncServiceHarness*>& clients) {
35  base::Time start = base::Time::Now();
36  EXPECT_TRUE(ProfileSyncServiceHarness::AwaitQuiescence(clients));
37  return base::Time::Now() - start;
38}
39
40// static
41void SyncTimingHelper::PrintResult(const std::string& measurement,
42                                   const std::string& trace,
43                                   const base::TimeDelta& dt) {
44  printf("*RESULT %s: %s= %s ms\n", measurement.c_str(), trace.c_str(),
45         base::IntToString(dt.InMillisecondsF()).c_str());
46}
47