def _DoBuild(self): logger.SilentLog("Building tests...") tests = self._GetTestsToRun() # turn off dalvik verifier if necessary self._TurnOffVerifier(tests) self._DoFullBuild(tests) target_set = [] extra_args_set = [] for test_suite in tests: self._AddBuildTarget(test_suite, target_set, extra_args_set) if not self._options.preview: self._adb.EnableAdbRoot() else: logger.Log("adb root") rebuild_libcore = False if target_set: if self._options.coverage: coverage.EnableCoverageBuild() # hack to remove core library intermediates # hack is needed because: # 1. EMMA_INSTRUMENT changes what source files to include in libcore # but it does not trigger a rebuild # 2. there's no target (like "clear-intermediates") to remove the files # decently rebuild_libcore = not coverage.TestDeviceCoverageSupport(self._adb) if rebuild_libcore: cmd = "rm -rf %s" % os.path.join( self._root_path, "out/target/common/obj/JAVA_LIBRARIES/core_intermediates/") logger.Log(cmd) run_command.RunCommand(cmd, return_output=False) target_build_string = " ".join(target_set) extra_args_string = " ".join(extra_args_set) # mmm cannot be used from python, so perform a similar operation using # ONE_SHOT_MAKEFILE cmd = 'ONE_SHOT_MAKEFILE="%s" make -j%s -C "%s" all_modules %s' % ( target_build_string, self._options.make_jobs, self._root_path, extra_args_string) logger.Log(cmd) if self._options.preview: # in preview mode, just display to the user what command would have been # run logger.Log("adb sync") else: # set timeout for build to 10 minutes, since libcore may need to # be rebuilt run_command.RunCommand(cmd, return_output=False, timeout_time=600) logger.Log("Syncing to device...") self._adb.Sync(runtime_restart=rebuild_libcore)
def _DoBuild(self): logger.SilentLog("Building tests...") target_set = Set() extra_args_set = Set() tests = self._GetTestsToRun() for test_suite in tests: self._AddBuildTarget(test_suite, target_set, extra_args_set) if target_set: if self._options.coverage: coverage.EnableCoverageBuild() # hack to build cts dependencies # TODO: remove this when build dependency support added to runtest or # cts dependencies are removed if self._IsCtsTests(tests): # need to use make since these fail building with ONE_SHOT_MAKEFILE cmd = ('make -j%s CtsTestStubs android.core.tests.runner' % self._options.make_jobs) logger.Log(cmd) if not self._options.preview: old_dir = os.getcwd() os.chdir(self._root_path) run_command.RunCommand(cmd, return_output=False) os.chdir(old_dir) target_build_string = " ".join(list(target_set)) extra_args_string = " ".join(list(extra_args_set)) # mmm cannot be used from python, so perform a similar operation using # ONE_SHOT_MAKEFILE cmd = 'ONE_SHOT_MAKEFILE="%s" make -j%s -C "%s" files %s' % ( target_build_string, self._options.make_jobs, self._root_path, extra_args_string) logger.Log(cmd) if self._options.preview: # in preview mode, just display to the user what command would have been # run logger.Log("adb sync") else: run_command.RunCommand(cmd, return_output=False) logger.Log("Syncing to device...") self._adb.Sync()