blob: 50083591542ac71e4aae062da35e1d47b47d797f [file] [log] [blame]
# -*- coding: utf-8 -*-
# Copyright 2019 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Test catapult_util module."""
from __future__ import print_function
import unittest
from bisect_kit import catapult_util
from bisect_kit import testing
class TestCatapultUtil(unittest.TestCase):
"""Test functions in catapult_util module."""
def test_extract_values_from_trace(self):
self.assertEqual(
catapult_util.extract_values_from_trace('foo', {
'type': 'scalar',
'value': 0,
}), [0])
self.assertEqual(
catapult_util.extract_values_from_trace('foo', {
'type': 'list_of_scalar_values',
'values': [0, 3, 2],
}), [0, 3, 2])
def test_extract_values_from_trace_nan(self):
self.assertEqual(
catapult_util.extract_values_from_trace(
'foo', {
'type': 'scalar',
'value': float('nan'),
'none_value_reason': 'unknown',
}), [])
self.assertEqual(
catapult_util.extract_values_from_trace('foo', {
'type': 'list_of_scalar_values',
'values': [float('nan')],
}), [])
def test_parse_results_chart_json(self):
pass
def test_match_trace_name(self):
# chromeperf uses / as separator.
self.assertTrue(
catapult_util.match_trace_name('Total/Score', 'Total/Score'))
# crosbolt uses . as separator.
self.assertTrue(
catapult_util.match_trace_name('Total.Score', 'Total/Score'))
# v8 test
self.assertTrue(
catapult_util.match_trace_name('Emscripten/Box2d/ref',
'Emscripten/Box2d'))
# jetstream test
self.assertTrue(
catapult_util.match_trace_name(
'box2d/http___browserbench.org_JetStream__ref',
'box2d/http___browserbench.org_JetStream_'))
def test_get_benchmark_values(self):
json_path = testing.get_testdata_path('results-chart.telemetry.json')
self.assertTrue(
catapult_util.get_benchmark_values(json_path, 'frame_time_discrepancy'))
def test_get_benchmark_values_list(self):
json_path = testing.get_testdata_path(
'results-chart.autotest-without-graph.json')
self.assertEqual(
len(
catapult_util.get_benchmark_values(json_path,
'boot_progress_start')), 10)
def test_get_benchmark_values_regressions(self):
json_path = testing.get_testdata_path('results-chart.octane.json')
self.assertTrue(
catapult_util.get_benchmark_values(json_path, 'Total.Score'))
json_path = testing.get_testdata_path(
'results-chart.cros_ui_smoothness.json')
self.assertTrue(
catapult_util.get_benchmark_values(
json_path, 'frame_times_count/overview_js_poster_circle'))
def test_get_benchmark_values_tir(self):
json_path = testing.get_testdata_path('results-chart.page_cycler_v2.json')
self.assertTrue(
catapult_util.get_benchmark_values(json_path,
'timeToFirstContentfulPaint_min'))
self.assertTrue(
catapult_util.get_benchmark_values(
json_path, 'timeToFirstContentfulPaint_min/warm'))
if __name__ == '__main__':
unittest.main()