1234567891011121314151617181920212223242526272829303132333435363738 |
- // Copyright 2020 The Chromium Authors. All rights reserved.
- // 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
|