Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(626)

Unified Diff: src/scripts/build_autotest.sh

Issue 633001: fixup autoupdate for new build system (Closed)
Patch Set: per review comments Created 10 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/platform/memento_softwareupdate/ping_omaha.sh ('k') | src/scripts/get_latest_image.sh » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/scripts/build_autotest.sh
diff --git a/src/scripts/build_autotest.sh b/src/scripts/build_autotest.sh
index 24c8eca15da23f97a8edae22b0343d6c94f2d4a3..b16fb58e7275fdbf7fd3681c45f4fe026461b638 100755
--- a/src/scripts/build_autotest.sh
+++ b/src/scripts/build_autotest.sh
@@ -4,24 +4,30 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-# This script makes autotest client tests inside a chroot environment. The idea
-# is to compile any platform-dependent autotest client tests in the build
-# environment, since client systems under test lack the proper toolchain.
+# This script makes autotest client tests inside an Ubuntu chroot
+# environment. The idea is to compile any platform-dependent autotest
+# client tests in the build environment, since client systems under
+# test lack the proper toolchain.
#
# The user can later run autotest against an ssh enabled test client system, or
-# install the compiled client tests directly onto the rootfs image.
+# install the compiled client tests directly onto the rootfs image, using
+# mod_image_for_test.sh.
. "$(dirname "$0")/common.sh"
-. "$(dirname $0)/autotest_lib.sh"
+. "$(dirname "$0")/autotest_lib.sh"
# Script must be run inside the chroot
assert_inside_chroot
-DEFAULT_TESTS_LIST="all"
+DEFAULT_CONTROL=client/site_tests/setup/control
-DEFINE_string build "${DEFAULT_TESTS_LIST}" \
- "a comma seperated list of autotest client tests to be prebuilt." b
-DEFINE_boolean prompt $FLAGS_TRUE "Prompt user when building all tests"
+DEFINE_string control "${DEFAULT_CONTROL}" \
+ "Setup control file -- path relative to the destination autotest directory" c
+DEFINE_string board "" \
+ "Board name for the target you are building if using portage build system"
+
+DEFINE_string board "" \
+ "The board for which you are building autotest"
# More useful help
FLAGS_HELP="usage: $0 [flags]"
@@ -31,38 +37,43 @@ FLAGS "$@" || exit 1
eval set -- "${FLAGS_ARGV}"
set -e
-check_board
-
-# build default pre-compile client tests list.
-ALL_TESTS="compilebench,dbench,disktest,ltp,unixbench"
-for SITE_TEST in ../third_party/autotest/files/client/site_tests/*
-do
- if [ -d ${SITE_TEST} ]
- then
- ALL_TESTS="${ALL_TESTS},${SITE_TEST:48}"
- fi
-done
-
-if [ ${FLAGS_build} == ${DEFAULT_TESTS_LIST} ]
-then
- if [ ${FLAGS_prompt} -eq ${FLAGS_TRUE} ]
- then
- echo -n "You want to pre-build all client tests and it may take a long time"
- echo " to finish. "
- read -p "Are you sure you want to continue?(N/y)" answer
- answer=${answer:0:1}
- if [ "${answer}" != "Y" ] && [ "${answer}" != "y" ]
- then
- echo "Use --build to specify tests you like to pre-compile."
- echo -n "E.g.: ./enter_chroot.sh \"./build_autotest.sh "
- echo "--build=system_SAT\""
- exit 0
- fi
- fi
- TEST_LIST=${ALL_TESTS}
-else
- TEST_LIST=${FLAGS_build}
+AUTOTEST_SRC="${GCLIENT_ROOT}/src/third_party/autotest/files"
+# Destination in chroot to install autotest.
+AUTOTEST_DEST="/usr/local/autotest/${FLAGS_board}"
+
+# If new build system flag passed, use ebuild and exit
+if [ -n "${FLAGS_board}" ]; then
+ sudo GCLIENT_ROOT="${GCLIENT_ROOT}" FLAGS_control=${FLAGS_control} \
+ "emerge-${FLAGS_board}" -a chromeos-base/autotest
+ exit 0
fi
-GCLIENT_ROOT="${GCLIENT_ROOT}" TEST_LIST=${TEST_LIST} \
-"emerge-${FLAGS_board}" chromeos-base/autotest
+# Copy a local "installation" of autotest into the chroot, to avoid
+# polluting the src dir with tmp files, results, etc.
+update_chroot_autotest "${CHROOT_TRUNK_DIR}/src/third_party/autotest/files" \
+ "${AUTOTEST_DEST}"
+
+# Create python package init files for top level test case dirs.
+function touchInitPy() {
+ local dirs=${1}
+ for base_dir in $dirs
+ do
+ local sub_dirs="$(find ${base_dir} -maxdepth 1 -type d)"
+ for sub_dir in ${sub_dirs}
+ do
+ touch ${sub_dir}/__init__.py
+ done
+ touch ${base_dir}/__init__.py
+ done
+}
+
+cd ${AUTOTEST_DEST}
+touchInitPy client/tests client/site_tests
+touch __init__.py
+
+# Export GCLIENT_ROOT so that tests have access to the source and build trees
+export GCLIENT_ROOT
+
+# run the magic test setup script.
+echo "Building tests using ${FLAGS_control}..."
+client/bin/autotest ${FLAGS_control}
« no previous file with comments | « src/platform/memento_softwareupdate/ping_omaha.sh ('k') | src/scripts/get_latest_image.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698