OLD | NEW |
1 # Copyright (C) 2013 Google Inc. All rights reserved. | 1 # Copyright (C) 2013 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 16 matching lines...) Expand all Loading... |
27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
28 | 28 |
29 import unittest | 29 import unittest |
30 | 30 |
31 from webkitpy.common.host_mock import MockHost | 31 from webkitpy.common.host_mock import MockHost |
32 from webkitpy.common.system.executive_mock import MockExecutive | 32 from webkitpy.common.system.executive_mock import MockExecutive |
33 from webkitpy.layout_tests.breakpad.dump_reader_win import DumpReaderWin | 33 from webkitpy.layout_tests.breakpad.dump_reader_win import DumpReaderWin |
34 | 34 |
35 | 35 |
36 class TestDumpReaderWin(unittest.TestCase): | 36 class TestDumpReaderWin(unittest.TestCase): |
| 37 |
37 def test_check_is_functional_cdb_not_found(self): | 38 def test_check_is_functional_cdb_not_found(self): |
38 host = MockHost() | 39 host = MockHost() |
39 host.executive = MockExecutive(should_throw=True) | 40 host.executive = MockExecutive(should_throw=True) |
40 | 41 |
41 build_dir = "/mock-checkout/out/Debug" | 42 build_dir = '/mock-checkout/out/Debug' |
42 host.filesystem.maybe_make_directory(build_dir) | 43 host.filesystem.maybe_make_directory(build_dir) |
43 dump_reader = DumpReaderWin(host, build_dir) | 44 dump_reader = DumpReaderWin(host, build_dir) |
44 | 45 |
45 self.assertFalse(dump_reader.check_is_functional()) | 46 self.assertFalse(dump_reader.check_is_functional()) |
46 | 47 |
47 def test_get_pid_from_dump(self): | 48 def test_get_pid_from_dump(self): |
48 host = MockHost() | 49 host = MockHost() |
49 | 50 |
50 dump_file = '/crash-dumps/dump.txt' | 51 dump_file = '/crash-dumps/dump.txt' |
51 expected_pid = '4711' | 52 expected_pid = '4711' |
52 host.filesystem.write_text_file(dump_file, 'channel:\npid:%s\nplat:Win32
\nprod:content_shell\n' % expected_pid) | 53 host.filesystem.write_text_file(dump_file, 'channel:\npid:%s\nplat:Win32
\nprod:content_shell\n' % expected_pid) |
53 build_dir = "/mock-checkout/out/Debug" | 54 build_dir = '/mock-checkout/out/Debug' |
54 host.filesystem.maybe_make_directory(build_dir) | 55 host.filesystem.maybe_make_directory(build_dir) |
55 dump_reader = DumpReaderWin(host, build_dir) | 56 dump_reader = DumpReaderWin(host, build_dir) |
56 | 57 |
57 self.assertTrue(dump_reader.check_is_functional()) | 58 self.assertTrue(dump_reader.check_is_functional()) |
58 self.assertEqual(expected_pid, dump_reader._get_pid_from_dump(dump_file)
) | 59 self.assertEqual(expected_pid, dump_reader._get_pid_from_dump(dump_file)
) |
59 | 60 |
60 def test_get_stack_from_dump(self): | 61 def test_get_stack_from_dump(self): |
61 host = MockHost() | 62 host = MockHost() |
62 | 63 |
63 dump_file = '/crash-dumps/dump.dmp' | 64 dump_file = '/crash-dumps/dump.dmp' |
64 real_dump_file = '/crash-dumps/dump.dmp' | 65 real_dump_file = '/crash-dumps/dump.dmp' |
65 host.filesystem.write_text_file(dump_file, 'product:content_shell\n') | 66 host.filesystem.write_text_file(dump_file, 'product:content_shell\n') |
66 host.filesystem.write_binary_file(real_dump_file, 'MDMP') | 67 host.filesystem.write_binary_file(real_dump_file, 'MDMP') |
67 build_dir = "/mock-checkout/out/Debug" | 68 build_dir = '/mock-checkout/out/Debug' |
68 host.filesystem.maybe_make_directory(build_dir) | 69 host.filesystem.maybe_make_directory(build_dir) |
69 dump_reader = DumpReaderWin(host, build_dir) | 70 dump_reader = DumpReaderWin(host, build_dir) |
70 | 71 |
71 self.assertTrue(dump_reader.check_is_functional()) | 72 self.assertTrue(dump_reader.check_is_functional()) |
72 host.executive.calls = [] | 73 host.executive.calls = [] |
73 self.assertEqual("MOCK output of child process", dump_reader._get_stack_
from_dump(dump_file)) | 74 self.assertEqual('MOCK output of child process', dump_reader._get_stack_
from_dump(dump_file)) |
74 self.assertEqual(1, len(host.executive.calls)) | 75 self.assertEqual(1, len(host.executive.calls)) |
75 cmd_line = " ".join(host.executive.calls[0]) | 76 cmd_line = ' '.join(host.executive.calls[0]) |
76 self.assertIn('cdb.exe', cmd_line) | 77 self.assertIn('cdb.exe', cmd_line) |
77 self.assertIn(real_dump_file, cmd_line) | 78 self.assertIn(real_dump_file, cmd_line) |
OLD | NEW |