You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

115 lines
3.0 KiB

#!/usr/bin/python2
# 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.
import json
import unittest
import common
from autotest_lib.server.cros import telemetry_runner
histograms_sample = [
{
'values': [
'story1'
],
'guid': '00000001-...',
'type': 'GenericSet'
},
{
'values': [
'story2'
],
'guid': '00000002-...',
'type': 'GenericSet'
},
{
'values': [
'benchmark1'
],
'guid': 'a0000001-...',
'type': 'GenericSet'
},
{
'values': [
'benchmark_desc1'
],
'guid': 'b0000001-...',
'type': 'GenericSet'
},
{
'sampleValues': [1.0, 2.0],
'name': 'metric1',
'diagnostics': {
'stories': '00000001-...',
'benchmarks': 'a0000001-...',
'benchmarkDescriptions': 'b0000001-...'
},
'unit': 'ms_smallerIsBetter'
},
{
'sampleValues': [1.0, 2.0],
'name': 'metric1',
'diagnostics': {
'stories': '00000002-...',
'benchmarks': 'a0000001-...',
'benchmarkDescriptions': 'b0000001-...'
},
'unit': 'ms_smallerIsBetter'
}
]
chartjson_sample = {
'format_version': 1.0,
'benchmark_name': 'benchmark1',
'benchmark_description': 'benchmark_desc1',
'benchmark_metadata': {
'type': 'telemetry_benchmark',
'name': 'benchmark1',
'description': 'benchmark_desc1'
},
'charts': {
'metric1': {
'story1': {
'std': 0.5,
'name': 'metric1',
'type': 'list_of_scalar_values',
'values': [1.0, 2.0],
'units': 'ms',
'improvement_direction': 'down'
},
'story2': {
'std': 0.5,
'name': 'metric1',
'type': 'list_of_scalar_values',
'values': [1.0, 2.0],
'units': 'ms',
'improvement_direction': 'down'
},
'summary': {
'std': 0.5,
'name': 'metric1',
'type': 'list_of_scalar_values',
'values': [1.0, 1.0, 2.0, 2.0],
'units': 'ms',
'improvement_direction': 'down'
}
},
}
}
class TelemetryRunnerTestCase(unittest.TestCase):
"""Test telemetry runner module."""
def test_convert_chart_json(self):
# Deep comparison of 2 objects with json dumps.
converted = telemetry_runner.TelemetryRunner.convert_chart_json(
histograms_sample)
chartjson_dumps = json.dumps(chartjson_sample, sort_keys=True)
chartjson_dumps2 = json.dumps(converted, sort_keys=True)
self.assertEqual(chartjson_dumps, chartjson_dumps2)
if __name__ == '__main__':
unittest.main()