| 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 |