OLD | NEW |
1 # Copyright (C) 2012 Google Inc. All rights reserved. | 1 # Copyright (C) 2012 Google Inc. All rights reserved. |
2 # | 2 # |
3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
5 # met: | 5 # met: |
6 # | 6 # |
7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
(...skipping 17 matching lines...) Expand all Loading... |
28 | 28 |
29 import unittest | 29 import unittest |
30 | 30 |
31 from webkitpy.common.system.platforminfo_mock import MockPlatformInfo | 31 from webkitpy.common.system.platforminfo_mock import MockPlatformInfo |
32 from webkitpy.common.system.systemhost_mock import MockSystemHost | 32 from webkitpy.common.system.systemhost_mock import MockSystemHost |
33 | 33 |
34 from .profiler import ProfilerFactory, GooglePProf | 34 from .profiler import ProfilerFactory, GooglePProf |
35 | 35 |
36 | 36 |
37 class ProfilerFactoryTest(unittest.TestCase): | 37 class ProfilerFactoryTest(unittest.TestCase): |
| 38 |
38 def _assert_default_profiler_name(self, os_name, expected_profiler_name): | 39 def _assert_default_profiler_name(self, os_name, expected_profiler_name): |
39 profiler_name = ProfilerFactory.default_profiler_name(MockPlatformInfo(o
s_name)) | 40 profiler_name = ProfilerFactory.default_profiler_name(MockPlatformInfo(o
s_name)) |
40 self.assertEqual(profiler_name, expected_profiler_name) | 41 self.assertEqual(profiler_name, expected_profiler_name) |
41 | 42 |
42 def test_default_profilers(self): | 43 def test_default_profilers(self): |
43 self._assert_default_profiler_name('mac', 'iprofiler') | 44 self._assert_default_profiler_name('mac', 'iprofiler') |
44 self._assert_default_profiler_name('linux', 'perf') | 45 self._assert_default_profiler_name('linux', 'perf') |
45 self._assert_default_profiler_name('win32', None) | 46 self._assert_default_profiler_name('win32', None) |
46 self._assert_default_profiler_name('freebsd', None) | 47 self._assert_default_profiler_name('freebsd', None) |
47 | 48 |
48 def test_default_profiler_output(self): | 49 def test_default_profiler_output(self): |
49 host = MockSystemHost() | 50 host = MockSystemHost() |
50 self.assertFalse(host.filesystem.exists("/tmp/output")) | 51 self.assertFalse(host.filesystem.exists("/tmp/output")) |
51 | 52 |
52 # Default mocks are Mac, so iprofile should be default. | 53 # Default mocks are Mac, so iprofile should be default. |
53 profiler = ProfilerFactory.create_profiler(host, '/bin/executable', '/tm
p/output') | 54 profiler = ProfilerFactory.create_profiler(host, '/bin/executable', '/tm
p/output') |
54 self.assertTrue(host.filesystem.exists("/tmp/output")) | 55 self.assertTrue(host.filesystem.exists("/tmp/output")) |
55 self.assertEqual(profiler._output_path, "/tmp/output/test.dtps") | 56 self.assertEqual(profiler._output_path, "/tmp/output/test.dtps") |
56 | 57 |
57 # Linux defaults to perf. | 58 # Linux defaults to perf. |
58 host.platform.os_name = 'linux' | 59 host.platform.os_name = 'linux' |
59 profiler = ProfilerFactory.create_profiler(host, '/bin/executable', '/tm
p/output') | 60 profiler = ProfilerFactory.create_profiler(host, '/bin/executable', '/tm
p/output') |
60 self.assertEqual(profiler._output_path, "/tmp/output/test.data") | 61 self.assertEqual(profiler._output_path, "/tmp/output/test.data") |
61 | 62 |
62 | 63 |
63 class GooglePProfTest(unittest.TestCase): | 64 class GooglePProfTest(unittest.TestCase): |
| 65 |
64 def test_pprof_output_regexp(self): | 66 def test_pprof_output_regexp(self): |
65 pprof_output = """ | 67 pprof_output = """ |
66 sometimes | 68 sometimes |
67 there | 69 there |
68 is | 70 is |
69 junk before the total line | 71 junk before the total line |
70 | 72 |
71 | 73 |
72 Total: 3770 samples | 74 Total: 3770 samples |
73 76 2.0% 2.0% 104 2.8% lookup (inline) | 75 76 2.0% 2.0% 104 2.8% lookup (inline) |
(...skipping 20 matching lines...) Expand all Loading... |
94 42 1.1% 7.6% 47 1.2% WTF::Vector::shrinkCapacity | 96 42 1.1% 7.6% 47 1.2% WTF::Vector::shrinkCapacity |
95 35 0.9% 8.5% 35 0.9% WTF::RefPtr::get (inline) | 97 35 0.9% 8.5% 35 0.9% WTF::RefPtr::get (inline) |
96 33 0.9% 9.4% 43 1.1% append (inline) | 98 33 0.9% 9.4% 43 1.1% append (inline) |
97 29 0.8% 10.1% 67 1.8% WTF::StringImpl::deref (inline) | 99 29 0.8% 10.1% 67 1.8% WTF::StringImpl::deref (inline) |
98 29 0.8% 10.9% 100 2.7% add (inline) | 100 29 0.8% 10.9% 100 2.7% add (inline) |
99 28 0.7% 11.6% 28 0.7% WebCore::QualifiedName::localName (inline
) | 101 28 0.7% 11.6% 28 0.7% WebCore::QualifiedName::localName (inline
) |
100 """ | 102 """ |
101 host = MockSystemHost() | 103 host = MockSystemHost() |
102 profiler = GooglePProf(host, '/bin/executable', '/tmp/output') | 104 profiler = GooglePProf(host, '/bin/executable', '/tmp/output') |
103 self.assertEqual(profiler._first_ten_lines_of_profile(pprof_output), exp
ected_first_ten_lines) | 105 self.assertEqual(profiler._first_ten_lines_of_profile(pprof_output), exp
ected_first_ten_lines) |
OLD | NEW |