def test_check_is_functional_cdb_not_found(self): host = MockHost() host.executive = MockExecutive(should_throw=True) build_dir = "/mock-checkout/out/Debug" host.filesystem.maybe_make_directory(build_dir) dump_reader = DumpReaderWin(host, build_dir) self.assertFalse(dump_reader.check_is_functional())
def test_get_pid_from_dump(self): host = MockHost() dump_file = '/crash-dumps/dump.txt' expected_pid = '4711' host.filesystem.write_text_file(dump_file, 'channel:\npid:%s\nplat:Win32\nprod:content_shell\n' % expected_pid) build_dir = "/mock-checkout/out/Debug" host.filesystem.maybe_make_directory(build_dir) dump_reader = DumpReaderWin(host, build_dir) self.assertTrue(dump_reader.check_is_functional()) self.assertEqual(expected_pid, dump_reader._get_pid_from_dump(dump_file))
def test_get_stack_from_dump(self): host = MockHost() dump_file = '/crash-dumps/dump.dmp' real_dump_file = '/crash-dumps/dump.dmp' host.filesystem.write_text_file(dump_file, 'product:content_shell\n') host.filesystem.write_binary_file(real_dump_file, 'MDMP') build_dir = "/mock-checkout/out/Debug" host.filesystem.maybe_make_directory(build_dir) dump_reader = DumpReaderWin(host, build_dir) self.assertTrue(dump_reader.check_is_functional()) host.executive.calls = [] self.assertEqual("MOCK output of child process", dump_reader._get_stack_from_dump(dump_file)) self.assertEqual(1, len(host.executive.calls)) cmd_line = " ".join(host.executive.calls[0]) self.assertIn('cdb.exe', cmd_line) self.assertIn(real_dump_file, cmd_line)