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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 ] | 55 ] |
56 | 56 |
57 def test_check_generate_breakpad_symbols_actually_exists(self): | 57 def test_check_generate_breakpad_symbols_actually_exists(self): |
58 host = Host() | 58 host = Host() |
59 dump_reader = DumpReaderMultipart(host, build_dir=None) | 59 dump_reader = DumpReaderMultipart(host, build_dir=None) |
60 self.assertTrue(host.filesystem.exists(dump_reader._path_to_generate_bre
akpad_symbols())) | 60 self.assertTrue(host.filesystem.exists(dump_reader._path_to_generate_bre
akpad_symbols())) |
61 | 61 |
62 def test_check_is_functional_breakpad_tools_not_found(self): | 62 def test_check_is_functional_breakpad_tools_not_found(self): |
63 host = MockHost() | 63 host = MockHost() |
64 | 64 |
65 build_dir = "/mock-checkout/out/Debug" | 65 build_dir = '/mock-checkout/out/Debug' |
66 host.filesystem.maybe_make_directory(build_dir) | 66 host.filesystem.maybe_make_directory(build_dir) |
67 dump_reader = DumpReaderMultipart(host, build_dir) | 67 dump_reader = DumpReaderMultipart(host, build_dir) |
68 dump_reader._file_extension = lambda: 'dmp' | 68 dump_reader._file_extension = lambda: 'dmp' |
69 dump_reader._binaries_to_symbolize = lambda: ['content_shell'] | 69 dump_reader._binaries_to_symbolize = lambda: ['content_shell'] |
70 | 70 |
71 self.assertFalse(dump_reader.check_is_functional()) | 71 self.assertFalse(dump_reader.check_is_functional()) |
72 | 72 |
73 def test_get_pid_from_dump(self): | 73 def test_get_pid_from_dump(self): |
74 host = MockHost() | 74 host = MockHost() |
75 | 75 |
76 dump_file = '/crash-dumps/dump.dmp' | 76 dump_file = '/crash-dumps/dump.dmp' |
77 expected_pid = '4711' | 77 expected_pid = '4711' |
78 host.filesystem.write_text_file(dump_file, "\r\n".join(TestDumpReaderMul
tipart._MULTIPART_DUMP)) | 78 host.filesystem.write_text_file(dump_file, '\r\n'.join(TestDumpReaderMul
tipart._MULTIPART_DUMP)) |
79 build_dir = "/mock-checkout/out/Debug" | 79 build_dir = '/mock-checkout/out/Debug' |
80 host.filesystem.maybe_make_directory(build_dir) | 80 host.filesystem.maybe_make_directory(build_dir) |
81 host.filesystem.exists = lambda x: True | 81 host.filesystem.exists = lambda x: True |
82 | 82 |
83 # The mock file object returned by open_binary_file_for_reading doesn't | 83 # The mock file object returned by open_binary_file_for_reading doesn't |
84 # have readline(), however, the real File object does. | 84 # have readline(), however, the real File object does. |
85 host.filesystem.open_binary_file_for_reading = host.filesystem.open_text
_file_for_reading | 85 host.filesystem.open_binary_file_for_reading = host.filesystem.open_text
_file_for_reading |
86 dump_reader = DumpReaderMultipart(host, build_dir) | 86 dump_reader = DumpReaderMultipart(host, build_dir) |
87 dump_reader._file_extension = lambda: 'dmp' | 87 dump_reader._file_extension = lambda: 'dmp' |
88 dump_reader._binaries_to_symbolize = lambda: ['content_shell'] | 88 dump_reader._binaries_to_symbolize = lambda: ['content_shell'] |
89 | 89 |
90 self.assertTrue(dump_reader.check_is_functional()) | 90 self.assertTrue(dump_reader.check_is_functional()) |
91 self.assertEqual(expected_pid, dump_reader._get_pid_from_dump(dump_file)
) | 91 self.assertEqual(expected_pid, dump_reader._get_pid_from_dump(dump_file)
) |
92 | 92 |
93 def test_get_stack_from_dump(self): | 93 def test_get_stack_from_dump(self): |
94 host = MockHost() | 94 host = MockHost() |
95 | 95 |
96 dump_file = '/crash-dumps/dump.dmp' | 96 dump_file = '/crash-dumps/dump.dmp' |
97 host.filesystem.write_text_file(dump_file, "\r\n".join(TestDumpReaderMul
tipart._MULTIPART_DUMP)) | 97 host.filesystem.write_text_file(dump_file, '\r\n'.join(TestDumpReaderMul
tipart._MULTIPART_DUMP)) |
98 build_dir = "/mock-checkout/out/Debug" | 98 build_dir = '/mock-checkout/out/Debug' |
99 host.filesystem.maybe_make_directory(build_dir) | 99 host.filesystem.maybe_make_directory(build_dir) |
100 host.filesystem.exists = lambda x: True | 100 host.filesystem.exists = lambda x: True |
101 | 101 |
102 # The mock file object returned by open_binary_file_for_reading doesn't | 102 # The mock file object returned by open_binary_file_for_reading doesn't |
103 # have readline(), however, the real File object does. | 103 # have readline(), however, the real File object does. |
104 host.filesystem.open_binary_file_for_reading = host.filesystem.open_text
_file_for_reading | 104 host.filesystem.open_binary_file_for_reading = host.filesystem.open_text
_file_for_reading |
105 dump_reader = DumpReaderMultipart(host, build_dir) | 105 dump_reader = DumpReaderMultipart(host, build_dir) |
106 dump_reader._file_extension = lambda: 'dmp' | 106 dump_reader._file_extension = lambda: 'dmp' |
107 dump_reader._binaries_to_symbolize = lambda: ['content_shell'] | 107 dump_reader._binaries_to_symbolize = lambda: ['content_shell'] |
108 | 108 |
109 self.assertTrue(dump_reader.check_is_functional()) | 109 self.assertTrue(dump_reader.check_is_functional()) |
110 self.assertEqual("MOCK output of child process", dump_reader._get_stack_
from_dump(dump_file)) | 110 self.assertEqual('MOCK output of child process', dump_reader._get_stack_
from_dump(dump_file)) |
111 self.assertEqual(2, len(host.executive.calls)) | 111 self.assertEqual(2, len(host.executive.calls)) |
112 cmd_line = " ".join(host.executive.calls[0]) | 112 cmd_line = ' '.join(host.executive.calls[0]) |
113 self.assertIn('generate_breakpad_symbols.py', cmd_line) | 113 self.assertIn('generate_breakpad_symbols.py', cmd_line) |
114 cmd_line = " ".join(host.executive.calls[1]) | 114 cmd_line = ' '.join(host.executive.calls[1]) |
115 self.assertIn('minidump_stackwalk', cmd_line) | 115 self.assertIn('minidump_stackwalk', cmd_line) |
OLD | NEW |