blob: 100aca076a2497e3aede863e4adfaee994fa1457 [file] [log] [blame]
# Copyright 2016 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.
import unittest
import os
from tracing.mre import function_handle
from tracing.mre import failure
from tracing.mre import job as job_module
from telemetry import page
from telemetry import story
from telemetry.value import improvement_direction
from telemetry.value import scalar
from telemetry.value import common_value_helpers
def _SingleFileFunctionHandle(filename, function_name, guid):
return function_handle.FunctionHandle(
modules_to_load=[function_handle.ModuleToLoad(filename=filename)],
function_name=function_name, guid=guid)
class TranslateCommonValuesTest(unittest.TestCase):
def testTranslateMreFailure(self):
map_function_handle = _SingleFileFunctionHandle('foo.html', 'Foo', '2')
job = job_module.Job(map_function_handle, '1')
story_set = story.StorySet(base_dir=os.path.dirname(__file__))
p = page.Page('http://www.foo.com/', story_set, story_set.base_dir)
f = failure.Failure(job, 'foo', '/a.json', 'MyFailure', 'failure', 'stack')
fv = common_value_helpers.TranslateMreFailure(f, p)
self.assertIn('stack', str(fv))
def testTranslateScalarValue(self):
story_set = story.StorySet(base_dir=os.path.dirname(__file__))
p = page.Page('http://www.foo.com/', story_set, story_set.base_dir)
scalar_value = {
'type': 'numeric',
'numeric': {
'type': 'scalar',
'unit': 'timeInMs_smallerIsBetter',
'value': 42
},
'name': 'foo',
'description': 'desc'
}
v = common_value_helpers.TranslateScalarValue(scalar_value, p)
self.assertIsInstance(v, scalar.ScalarValue)
self.assertEquals('foo', v.name)
self.assertEquals(p, v.page)
self.assertEquals('timeInMs', v.units)
self.assertEquals(42, v.value)
self.assertEquals(improvement_direction.DOWN, v.improvement_direction)
self.assertEquals('desc', v.description)
def testTranslateScalarNoneValue(self):
story_set = story.StorySet(base_dir=os.path.dirname(__file__))
p = page.Page('http://www.foo.com/', story_set, story_set.base_dir)
scalar_value = {
'type': 'numeric',
'numeric': {
'type': 'scalar',
'unit': 'timeInMs_smallerIsBetter',
'value': None
},
'name': 'foo'
}
v = common_value_helpers.TranslateScalarValue(scalar_value, p)
self.assertIsNone(v.value)
self.assertEquals('Common scalar contained None', v.none_value_reason)