forked from Pissandshittium/pissandshittium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy paththroughput_tracker_unittest.cc
38 lines (29 loc) · 1.13 KB
/
throughput_tracker_unittest.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/test/bind.h"
#include "ui/compositor/compositor.h"
#include "ui/compositor/layer.h"
#include "ui/compositor/layer_animator.h"
#include "ui/compositor/test/animation_throughput_reporter_test_base.h"
#include "ui/compositor/test/throughput_report_checker.h"
namespace ui {
using ThroughputReporterTest = AnimationThroughputReporterTestBase;
TEST_F(ThroughputReporterTest, ThreadCheck) {
Layer layer;
root_layer()->Add(&layer);
LayerAnimator* animator = new LayerAnimator(base::Milliseconds(32));
layer.SetAnimator(animator);
ThroughputReportChecker checker(this);
auto once_callback = checker.once_callback();
ui::Compositor* c = compositor();
auto callback = [&](const cc::FrameSequenceMetrics::CustomReportData& data) {
c->ScheduleDraw();
std::move(once_callback).Run(data);
};
auto tracker = c->RequestNewThroughputTracker();
tracker.Start(base::BindLambdaForTesting(callback));
tracker.Stop();
EXPECT_TRUE(checker.WaitUntilReported());
}
} // namespace ui