/chromium-webcl/src/tools/find_runtime_symbols/tests/reduce_debugline_test.py
Python | 66 lines | 53 code | 9 blank | 4 comment | 3 complexity | bde81a4c9e7800ffe0c7c31a950286d0 MD5 | raw file
- #!/usr/bin/env python
- # Copyright (c) 2013 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 cStringIO
- import logging
- import os
- import sys
- import textwrap
- import unittest
- ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
- sys.path.insert(0, ROOT_DIR)
- import reduce_debugline
- class ReduceDebuglineTest(unittest.TestCase):
- _DECODED_DEBUGLINE = textwrap.dedent("""\
- Decoded dump of debug contents of section .debug_line:
- CU: ../../chrome/service/service_main.cc:
- File name Line number Starting address
- service_main.cc 21 0xa41210
- service_main.cc 24 0xa4141f
- service_main.cc 30 0xa4142b
- service_main.cc 31 0xa4143e
- ../../base/message_loop.h:
- message_loop.h 550 0xa41300
- message_loop.h 551 0xa41310
- ../../base/logging.h:
- logging.h 246 0xa41710
- logging.h 247 0xa41726
- ../../base/logging.h:
- logging.h 846 0xa3fd90
- logging.h 846 0xa3fda0
- """)
- _EXPECTED_REDUCED_DEBUGLINE = [
- (0xa3fd90, '../../base/logging.h'),
- (0xa41210, '../../chrome/service/service_main.cc'),
- (0xa41300, '../../base/message_loop.h'),
- (0xa4141f, '../../chrome/service/service_main.cc'),
- (0xa41710, '../../base/logging.h'),
- ]
- def test(self):
- ranges_dict = reduce_debugline.reduce_decoded_debugline(
- cStringIO.StringIO(self._DECODED_DEBUGLINE))
- self.assertEqual(self._EXPECTED_REDUCED_DEBUGLINE, ranges_dict)
- if __name__ == '__main__':
- logging.basicConfig(
- level=logging.DEBUG if '-v' in sys.argv else logging.ERROR,
- format='%(levelname)5s %(filename)15s(%(lineno)3d): %(message)s')
- unittest.main()