- add sources.
[platform/framework/web/crosswalk.git] / src / tools / find_runtime_symbols / tests / reduce_debugline_test.py
1 #!/usr/bin/env python
2 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 import cStringIO
7 import logging
8 import os
9 import sys
10 import textwrap
11 import unittest
12
13 ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
14 sys.path.insert(0, ROOT_DIR)
15
16 import reduce_debugline
17
18
19 class ReduceDebuglineTest(unittest.TestCase):
20   _DECODED_DEBUGLINE = textwrap.dedent("""\
21       Decoded dump of debug contents of section .debug_line:
22
23       CU: ../../chrome/service/service_main.cc:
24       File name                            Line number    Starting address
25       service_main.cc                               21            0xa41210
26
27       service_main.cc                               24            0xa4141f
28       service_main.cc                               30            0xa4142b
29       service_main.cc                               31            0xa4143e
30
31       ../../base/message_loop.h:
32       message_loop.h                               550            0xa41300
33
34       message_loop.h                               551            0xa41310
35
36       ../../base/logging.h:
37       logging.h                                    246            0xa41710
38
39       logging.h                                    247            0xa41726
40
41       ../../base/logging.h:
42       logging.h                                    846            0xa3fd90
43
44       logging.h                                    846            0xa3fda0
45
46       """)
47
48   _EXPECTED_REDUCED_DEBUGLINE = [
49       (0xa3fd90, '../../base/logging.h'),
50       (0xa41210, '../../chrome/service/service_main.cc'),
51       (0xa41300, '../../base/message_loop.h'),
52       (0xa4141f, '../../chrome/service/service_main.cc'),
53       (0xa41710, '../../base/logging.h'),
54       ]
55
56   def test(self):
57     ranges_dict = reduce_debugline.reduce_decoded_debugline(
58         cStringIO.StringIO(self._DECODED_DEBUGLINE))
59     self.assertEqual(self._EXPECTED_REDUCED_DEBUGLINE, ranges_dict)
60
61
62 if __name__ == '__main__':
63   logging.basicConfig(
64       level=logging.DEBUG if '-v' in sys.argv else logging.ERROR,
65       format='%(levelname)5s %(filename)15s(%(lineno)3d): %(message)s')
66   unittest.main()