diff --git a/infra/bots/recipe_modules/flavor/gn_android_flavor.py b/infra/bots/recipe_modules/flavor/gn_android_flavor.py index 9cb5b546d4..80952e8c8e 100644 --- a/infra/bots/recipe_modules/flavor/gn_android_flavor.py +++ b/infra/bots/recipe_modules/flavor/gn_android_flavor.py @@ -37,7 +37,7 @@ class GNAndroidFlavorUtils(default_flavor.DefaultFlavorUtils): def _adb(self, title, *cmd, **kwargs): self._ever_ran_adb = True - # The only non-infra adb call (check rc) happens to not use _adb(). + # The only non-infra adb steps (dm / nanobench) happen to not use _adb(). if 'infra_step' not in kwargs: kwargs['infra_step'] = True return self._run(title, 'adb', *cmd, **kwargs) @@ -78,6 +78,7 @@ class GNAndroidFlavorUtils(default_flavor.DefaultFlavorUtils): def cleanup_steps(self): if self._ever_ran_adb: + self._adb('dump log', 'logcat', '-d') self._adb('reboot', 'reboot') self._adb('kill adb server', 'kill-server') @@ -94,15 +95,19 @@ class GNAndroidFlavorUtils(default_flavor.DefaultFlavorUtils): 'push', self.m.vars.tmp_dir.join(sh), _bin_dir) self._adb('clear log', 'logcat', '-c') - self._adb(cmd[0], 'shell', 'sh', _bin_dir + sh) - self._adb('dump log ', 'logcat', '-d') - - self.m.python.inline('check %s rc' % cmd[0], """ + self.m.python.inline('%s' % cmd[0], """ import subprocess import sys - sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat', - '%src']))) - """ % _bin_dir) + bin_dir = sys.argv[1] + sh = sys.argv[2] + subprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh]) + try: + sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat', + bin_dir + 'rc']))) + except ValueError: + print "Couldn't read the return code. Probably killed for OOM." + sys.exit(1) + """, args=[_bin_dir, sh]) def copy_file_to_device(self, host, device): self._adb('push %s %s' % (host, device), 'push', host, device) diff --git a/infra/bots/recipes/swarm_test.expected/Test-Android-Clang-AndroidOne-CPU-MT6582-arm-Release-GN_Android.json b/infra/bots/recipes/swarm_test.expected/Test-Android-Clang-AndroidOne-CPU-MT6582-arm-Release-GN_Android.json index 3ff96d153c..aef93b567e 100644 --- a/infra/bots/recipes/swarm_test.expected/Test-Android-Clang-AndroidOne-CPU-MT6582-arm-Release-GN_Android.json +++ b/infra/bots/recipes/swarm_test.expected/Test-Android-Clang-AndroidOne-CPU-MT6582-arm-Release-GN_Android.json @@ -528,38 +528,28 @@ "cwd": "[SLAVE_BUILD]/skia", "name": "clear log" }, - { - "cmd": [ - "adb", - "shell", - "sh", - "/data/local/tmp/dm.sh" - ], - "cwd": "[SLAVE_BUILD]/skia", - "name": "dm" - }, - { - "cmd": [ - "adb", - "logcat", - "-d" - ], - "cwd": "[SLAVE_BUILD]/skia", - "name": "dump log " - }, { "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nsys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',\n '/data/local/tmp/rc'])))\n" + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print \"Couldn't read the return code. Probably killed for OOM.\"\n sys.exit(1)\n", + "/data/local/tmp/", + "dm.sh" ], - "name": "check dm rc", + "name": "dm", "~followup_annotations": [ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", - "@@@STEP_LOG_LINE@python.inline@sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ '/data/local/tmp/rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])@@@", + "@@@STEP_LOG_LINE@python.inline@try:@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',@@@", + "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", + "@@@STEP_LOG_LINE@python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", "@@@STEP_LOG_END@python.inline@@@" ] }, @@ -573,6 +563,15 @@ "cwd": "[SLAVE_BUILD]/skia", "name": "pull /sdcard/revenge_of_the_skiabot/dm_out [CUSTOM_[SWARM_OUT_DIR]]/dm" }, + { + "cmd": [ + "adb", + "logcat", + "-d" + ], + "cwd": "[SLAVE_BUILD]/skia", + "name": "dump log" + }, { "cmd": [ "adb",