sync_timing_helper.cc revision effb81e5f8246d0db0270817048dc992db66e9fb
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
13using sync_integration_test_util::AwaitCommitActivityCompletion;
14
15SyncTimingHelper::SyncTimingHelper() {}
16
17SyncTimingHelper::~SyncTimingHelper() {}
18
19// static
20base::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
28base::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
36base::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
44void 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