test_uma.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/tests/test_uma.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/cpp/instance.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/cpp/module.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/tests/testing_instance.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)REGISTER_TEST_CASE(UMA);
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestUMA::Init() {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_ = static_cast<const PPB_UMA_Private*>(
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      pp::Module::Get()->GetBrowserInterface(PPB_UMA_PRIVATE_INTERFACE));
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return !!uma_interface_;
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestUMA::RunTests(const std::string& filter) {
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RUN_TEST(Count, filter);
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RUN_TEST(Time, filter);
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RUN_TEST(Enum, filter);
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string TestUMA::TestCount() {
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  pp::Var name_var = pp::Var("Test.CountHistogram");
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_Var name = name_var.pp_var();
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_->HistogramCustomCounts(name, 10, 1, 100, 50);
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_->HistogramCustomCounts(name, 30, 1, 100, 50);
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_->HistogramCustomCounts(name, 20, 1, 100, 50);
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_->HistogramCustomCounts(name, 40, 1, 100, 50);
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PASS();
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string TestUMA::TestTime() {
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  pp::Var name_var = pp::Var("Test.TimeHistogram");
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_Var name = name_var.pp_var();
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_->HistogramCustomTimes(name, 100, 1, 10000, 50);
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_->HistogramCustomTimes(name, 1000, 1, 10000, 50);
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_->HistogramCustomTimes(name, 5000, 1, 10000, 50);
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_->HistogramCustomTimes(name, 10, 1, 10000, 50);
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PASS();
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string TestUMA::TestEnum() {
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  pp::Var name_var = pp::Var("Test.EnumHistogram");
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_Var name = name_var.pp_var();
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_->HistogramEnumeration(name, 0, 5);
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_->HistogramEnumeration(name, 3, 5);
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_->HistogramEnumeration(name, 3, 5);
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_->HistogramEnumeration(name, 1, 5);
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uma_interface_->HistogramEnumeration(name, 2, 5);
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PASS();
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
56