# Copyright 2017 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. """Test utilities for cygprofile scripts.""" import collections import process_profiles # Used by ProfileFile to generate unique file names. _FILE_COUNTER = 0 SimpleTestSymbol = collections.namedtuple( 'SimpleTestSymbol', ['name', 'offset', 'size']) class TestSymbolOffsetProcessor(process_profiles.SymbolOffsetProcessor): def __init__(self, symbol_infos): super(TestSymbolOffsetProcessor, self).__init__(None) self._symbol_infos = symbol_infos class TestProfileManager(process_profiles.ProfileManager): def __init__(self, filecontents_mapping): super(TestProfileManager, self).__init__(filecontents_mapping.keys()) self._filecontents_mapping = filecontents_mapping def _ReadOffsets(self, filename): return self._filecontents_mapping[filename] def _ReadJSON(self, filename): return self._filecontents_mapping[filename] def ProfileFile(timestamp_sec, phase, process_name=None): global _FILE_COUNTER _FILE_COUNTER += 1 if process_name: name_str = process_name + '-' else: name_str = '' return 'test-directory/profile-hitmap-{}{}-{}.txt_{}'.format( name_str, _FILE_COUNTER, timestamp_sec * 1000 * 1000 * 1000, phase)