#!/bin/bash # Copyright (c) 2011 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # # "compile and run tests" script for the android build of chromium. # Intended for use by buildbot. # At this time, we only have one bot which is both a builder and # tester. Script assumes it runs in the "build" directory. # # This script uses buildbot "Annotator" style for steps. # This script does not sync the source tree. set -e set -x # Options in this script. BUILD_EXPERIMENTAL_TARGETS=1 RUN_TESTS=1 NEED_CLOBBER=0 JOBS=4 # make -j"${JOBS}" # If we are a trybot, disable experimental targets and tests. We # eventually want tests on a trybot but emulator launch/restart is not # reliable enough yet. # TODO(jrg): when setting up a trybot, make sure to add TRYBOT=1 in # the environment. if [ "${TRYBOT:-0}" = 1 ] ; then echo "Disabling experimental builds and tests since we are a trybot." BUILD_EXPERIMENTAL_TARGETS=0 RUN_TESTS=0 fi echo "@@@BUILD_STEP cd into source root@@@" SRC_ROOT=$(cd "$(dirname $0)/../.."; pwd) cd $SRC_ROOT echo "@@@BUILD_STEP Basic setup@@@" export ANDROID_SDK_ROOT=/usr/local/google/android-sdk-linux_x86 export ANDROID_NDK_ROOT=/usr/local/google/android-ndk-r7 for mandatory_directory in "${ANDROID_SDK_ROOT}" "${ANDROID_NDK_ROOT}" ; do if [[ ! -d "${mandatory_directory}" ]]; then echo "Directory ${mandatory_directory} does not exist." echo "Build cannot continue." exit 1 fi done if [ ! "$BUILDBOT_CLOBBER" = "" ]; then NEED_CLOBBER=1 fi ## Build and test steps echo "@@@BUILD_STEP Configure with envsetup.sh@@@" . build/android/envsetup.sh if [ "$NEED_CLOBBER" -eq 1 ]; then echo "@@@BUILD_STEP Clobber@@@" rm -rf "${SRC_ROOT}"/out fi echo "@@@BUILD_STEP android_gyp@@@" android_gyp echo "@@@BUILD_STEP Compile@@@" make -j${JOBS} if [ "${BUILD_EXPERIMENTAL_TARGETS}" = 1 ] ; then # Linking DumpRenderTree appears to hang forever? # EXPERIMENTAL_TARGETS="DumpRenderTree webkit_unit_tests" EXPERIMENTAL_TARGETS="webkit_unit_tests" for target in ${EXPERIMENTAL_TARGETS} ; do echo "@@@BUILD_STEP Experimental Compile $target @@@" set +e make -j4 "${target}" if [ $? -ne 0 ] ; then echo "@@@STEP_WARNINGS@@@" fi set -e done fi if [ "${RUN_TESTS}" = 1 ] ; then echo "@@@BUILD_STEP Run Tests@@@" build/android/run_tests.py -e --xvfb --verbose fi exit 0