def get_crash(self): crash_info = self.fetch_crash_info() submitted = crash_info['submitted'] pending = crash_info['pending'] processed = set() for pendi in set(pending): # Get pending dump and submit dmp = pendi + ".dmp" extra = pendi + ".extra" AdbWrapper.adb_pull(PENDING_DIR + "/" + dmp, dmp, self.serial) AdbWrapper.adb_pull(PENDING_DIR + "/" + extra, extra, self.serial) ret = cli([dmp]) if ret: processed.add(pendi) submitted.append(ret[0]) AdbWrapper.adb_shell("rm \"" + PENDING_DIR + "/" + dmp + "\"", self.serial) AdbWrapper.adb_shell( "rm \"" + PENDING_DIR + "/" + extra + "\"", self.serial) AdbWrapper.adb_shell("rm -r \"" + SUBMITTED_DIR + "\"", self.serial) os.remove(dmp) os.remove(extra) return { 'crash_info': { 'submitted': submitted, 'pending': list(set(pending) - processed) } }
def test_pull_fail(self): ''' Test pull fail. ''' str_ret = 'remote object \'foo\' does not exist' with self.assertRaises(Exception) as cm: self.mock_obj.returncode = 1 self.mock_obj.communicate.return_value = [str_ret, None] self.mock_popen.return_value = self.mock_obj ret = AdbWrapper.adb_pull('foo', '')
def test_pull_fail(self): """ Test pull fail. """ str_ret = 'remote object \'foo\' does not exist' with self.assertRaises(Exception) as cm: self.mock_obj.returncode = 1 self.mock_obj.communicate.return_value = [str_ret, None] self.mock_popen.return_value = self.mock_obj ret = AdbWrapper.adb_pull('foo', '')
def test_pull(self): ''' Test pull. ''' str_ret = '2 KB/s (104 bytes in 0.040s)' expected_ret = '2 KB/s (104 bytes in 0.040s)' self.mock_obj.communicate.return_value = [str_ret, None] self.mock_popen.return_value = self.mock_obj ret = AdbWrapper.adb_pull('/b2g/mozilla.test', '') self.assertEqual(ret, expected_ret, 'The result should be {}, not {}.'.format(expected_ret, ret))
def test_pull(self): """ Test pull. """ str_ret = '2 KB/s (104 bytes in 0.040s)' expected_ret = '2 KB/s (104 bytes in 0.040s)' self.mock_obj.communicate.return_value = [str_ret, None] self.mock_popen.return_value = self.mock_obj ret = AdbWrapper.adb_pull('/b2g/mozilla.test', '') self.assertEqual( ret, expected_ret, 'The result should be {}, not {}.'.format(expected_ret, ret))
def get_crash(self): crash_info = self.fetch_crash_info() submitted = crash_info['submitted'] pending = crash_info['pending'] processed = set() for pendi in set(pending): # Get pending dump and submit dmp = pendi + ".dmp" extra = pendi + ".extra" AdbWrapper.adb_pull(PENDING_DIR + "/" + dmp, dmp, self.serial) AdbWrapper.adb_pull(PENDING_DIR + "/" + extra, extra, self.serial) ret = cli([dmp]) if ret: processed.add(pendi) submitted.append(ret[0]) AdbWrapper.adb_shell("rm \"" + PENDING_DIR + "/" + dmp + "\"", self.serial) AdbWrapper.adb_shell("rm \"" + PENDING_DIR + "/" + extra + "\"", self.serial) AdbWrapper.adb_shell("rm -r \"" + SUBMITTED_DIR + "\"", self.serial) os.remove(dmp) os.remove(extra) return {'crash_info': { 'submitted': submitted, 'pending': list(set(pending) - processed)}}