blob: 2831bafd4576c4107a0b6de37d921b9e8ae45cc5 [file] [log] [blame]
// 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