blob: 2bdb5a8f19a19f51a6cab7259c1694da4ef8a742 [file] [log] [blame]
# Copyright 2015 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
from tracing.mre import function_handle
from tracing.mre import map_single_trace
from tracing.mre import failure as failure_module
from tracing.mre import job as job_module
from tracing.mre import mre_result
class MreResultTests(unittest.TestCase):
def testAsDict(self):
result = mre_result.MreResult()
with map_single_trace.TemporaryMapScript("""
tr.mre.FunctionRegistry.register(
function MyMapFunction(result, model) {
var canonicalUrl = model.canonicalUrl;
result.addPair('result', {
numProcesses: model.getAllProcesses().length
});
});
""") as map_script:
module = function_handle.ModuleToLoad(filename=map_script.filename)
map_handle = function_handle.FunctionHandle(
modules_to_load=[module], function_name='MyMapFunction')
job = job_module.Job(map_handle, None)
failure = failure_module.Failure(job, '2', '3', 'err', 'desc', 'stack')
result.AddFailure(failure)
result.AddPair('foo', 'bar')
result_dict = result.AsDict()
self.assertEquals(result_dict['failures'], [failure.AsDict()])
self.assertEquals(result_dict['pairs'], {'foo': 'bar'})
def testAddingNonFailure(self):
result = mre_result.MreResult()
with self.assertRaises(ValueError):
result.AddFailure('foo')