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
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()
|