mirror of
https://github.com/flatcar/scripts.git
synced 2025-11-28 14:01:43 +01:00
remove build_autotest.sh and change run_remote_tests.sh to use new autotest script.
This change should go with http://codereview.chromium.org/1545014 together. Review URL: http://codereview.chromium.org/1603004
This commit is contained in:
parent
8b3bd10b91
commit
7a4c081107
2
autotest
2
autotest
@ -99,7 +99,7 @@ def parse_args_and_help():
|
|||||||
print
|
print
|
||||||
print 'Options inherited from autoserv:'
|
print 'Options inherited from autoserv:'
|
||||||
run([AUTOSERV, '--help'])
|
run([AUTOSERV, '--help'])
|
||||||
sys.exit(-1)
|
sys.exit(0)
|
||||||
return options, args
|
return options, args
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -12,89 +12,5 @@
|
|||||||
# install the compiled client tests directly onto the rootfs image.
|
# install the compiled client tests directly onto the rootfs image.
|
||||||
|
|
||||||
# Includes common already
|
# Includes common already
|
||||||
. "$(dirname $0)/autotest_lib.sh"
|
./autotest --build=all $@
|
||||||
|
|
||||||
# Script must be run inside the chroot
|
|
||||||
assert_inside_chroot
|
|
||||||
|
|
||||||
DEFAULT_TESTS_LIST="all"
|
|
||||||
|
|
||||||
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_boolean autox $FLAGS_TRUE "Build autox along with autotest"
|
|
||||||
DEFINE_boolean buildcheck $FLAGS_TRUE "Fail if tests fail to build"
|
|
||||||
DEFINE_integer jobs -1 "How many packages to build in parallel at maximum."
|
|
||||||
|
|
||||||
# More useful help
|
|
||||||
FLAGS_HELP="usage: $0 [flags]"
|
|
||||||
|
|
||||||
# parse the command-line
|
|
||||||
FLAGS "$@" || exit 1
|
|
||||||
eval set -- "${FLAGS_ARGV}"
|
|
||||||
set -e
|
|
||||||
|
|
||||||
check_board
|
|
||||||
|
|
||||||
if [[ "${FLAGS_jobs}" -ne -1 ]]; then
|
|
||||||
EMERGE_JOBS="--jobs=${FLAGS_jobs}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# build default pre-compile client tests list.
|
|
||||||
ALL_TESTS="compilebench,dbench,disktest,ltp,netperf2,unixbench"
|
|
||||||
CLIENT_TEST_PATH="../third_party/autotest/files/client/site_tests"
|
|
||||||
for SITE_TEST in ${CLIENT_TEST_PATH}/*
|
|
||||||
do
|
|
||||||
if [ -d ${SITE_TEST} ]
|
|
||||||
then
|
|
||||||
ALL_TESTS="${ALL_TESTS},${SITE_TEST##${CLIENT_TEST_PATH}/}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Load the overlay specific blacklist and remove any matching tests.
|
|
||||||
BOARD_BASENAME=$(echo "${FLAGS_board}" |cut -d '_' -f 1)
|
|
||||||
PRIMARY_BOARD_OVERLAY="${SRC_ROOT}/overlays/overlay-${BOARD_BASENAME}"
|
|
||||||
BLACKLIST_FILE="${PRIMARY_BOARD_OVERLAY}/autotest-blacklist"
|
|
||||||
if [ -r "${BLACKLIST_FILE}" ]
|
|
||||||
then
|
|
||||||
BLACKLISTED_TESTS=$(cat ${BLACKLIST_FILE})
|
|
||||||
|
|
||||||
for TEST in ${BLACKLISTED_TESTS}
|
|
||||||
do
|
|
||||||
ALL_TESTS=${ALL_TESTS/#${TEST},/} # match first test (test,...)
|
|
||||||
ALL_TESTS=${ALL_TESTS/,${TEST},/,} # match middle tests (...,test,...)
|
|
||||||
ALL_TESTS=${ALL_TESTS/%,${TEST}/} # match last test (...,test)
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
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}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Decide on USE flags based on options
|
|
||||||
USE=
|
|
||||||
[ $FLAGS_autox -eq "$FLAGS_FALSE" ] && USE="${USE} -autox"
|
|
||||||
[ $FLAGS_buildcheck -eq "$FLAGS_TRUE" ] && USE="${USE} buildcheck"
|
|
||||||
|
|
||||||
GCLIENT_ROOT="${GCLIENT_ROOT}" TEST_LIST=${TEST_LIST} \
|
|
||||||
FEATURES="${FEATURES} -buildpkg -collision-protect" \
|
|
||||||
USE="$USE" "emerge-${FLAGS_board}" \
|
|
||||||
chromeos-base/autotest ${EMERGE_JOBS} \
|
|
||||||
|| die "build_autotest failed."
|
|
||||||
|
|||||||
@ -10,10 +10,12 @@
|
|||||||
# The path to common.sh should be relative to your script's location.
|
# The path to common.sh should be relative to your script's location.
|
||||||
|
|
||||||
. "$(dirname $0)/common.sh"
|
. "$(dirname $0)/common.sh"
|
||||||
. "$(dirname $0)/autotest_lib.sh"
|
|
||||||
. "$(dirname $0)/remote_access.sh"
|
. "$(dirname $0)/remote_access.sh"
|
||||||
|
|
||||||
DEFINE_boolean build ${FLAGS_FALSE} "Build tests as well as running them" b
|
get_default_board
|
||||||
|
|
||||||
|
DEFINE_string board "$DEFAULT_BOARD" \
|
||||||
|
"The board for which you are building autotest"
|
||||||
DEFINE_string chroot "${DEFAULT_CHROOT_DIR}" "alternate chroot location" c
|
DEFINE_string chroot "${DEFAULT_CHROOT_DIR}" "alternate chroot location" c
|
||||||
DEFINE_boolean cleanup ${FLAGS_FALSE} "Clean up temp directory"
|
DEFINE_boolean cleanup ${FLAGS_FALSE} "Clean up temp directory"
|
||||||
DEFINE_integer iterations 1 "Iterations to run every top level test" i
|
DEFINE_integer iterations 1 "Iterations to run every top level test" i
|
||||||
@ -149,7 +151,14 @@ function main() {
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Set global TMP for remote_access.sh's sake
|
# Set global TMP for remote_access.sh's sake
|
||||||
TMP=$(mktemp -d /tmp/run_remote_tests.XXXX)
|
if [[ ${INSIDE_CHROOT} -eq 0 ]]
|
||||||
|
then
|
||||||
|
TMP=$(mktemp -d ${FLAGS_chroot}/tmp/run_remote_tests.XXXX)
|
||||||
|
TMP_INSIDE_CHROOT=$(echo ${TMP#${FLAGS_chroot}})
|
||||||
|
else
|
||||||
|
TMP=$(mktemp -d /tmp/run_remote_tests.XXXX)
|
||||||
|
TMP_INSIDE_CHROOT=${TMP}
|
||||||
|
fi
|
||||||
|
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
|
|
||||||
@ -158,25 +167,16 @@ function main() {
|
|||||||
local autotest_dir=""
|
local autotest_dir=""
|
||||||
if [[ -z "${FLAGS_prepackaged_autotest}" ]]; then
|
if [[ -z "${FLAGS_prepackaged_autotest}" ]]; then
|
||||||
learn_board
|
learn_board
|
||||||
# Always copy into installed autotest directory. This way if a user
|
autotest_dir="${GCLIENT_ROOT}/src/third_party/autotest/files"
|
||||||
# is just modifying scripts, they take effect without having to wait
|
|
||||||
# for the laborious build_autotest.sh command.
|
|
||||||
local original="${GCLIENT_ROOT}/src/third_party/autotest/files"
|
|
||||||
autotest_dir="/build/${FLAGS_board}/usr/local/autotest"
|
|
||||||
if [[ ${INSIDE_CHROOT} -eq 0 ]]; then
|
|
||||||
autotest_dir="${FLAGS_chroot}/${autotest_dir}"
|
|
||||||
fi
|
|
||||||
update_chroot_autotest "${original}" "${autotest_dir}"
|
|
||||||
else
|
else
|
||||||
autotest_dir="${FLAGS_prepackaged_autotest}"
|
autotest_dir="${FLAGS_prepackaged_autotest}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local autoserv="${autotest_dir}/server/autoserv"
|
|
||||||
|
|
||||||
local control_files_to_run=""
|
local control_files_to_run=""
|
||||||
|
|
||||||
# Now search for tests which unambiguously include the given identifier
|
# Now search for tests which unambiguously include the given identifier
|
||||||
local search_path=$(echo ${autotest_dir}/{client,server}/{tests,site_tests})
|
local search_path=$(echo {client,server}/{tests,site_tests})
|
||||||
|
pushd ${autotest_dir} > /dev/null
|
||||||
for test_request in $FLAGS_ARGV; do
|
for test_request in $FLAGS_ARGV; do
|
||||||
test_request=$(remove_quotes "${test_request}")
|
test_request=$(remove_quotes "${test_request}")
|
||||||
! finds=$(find ${search_path} -maxdepth 2 -type f \( -name control.\* -or \
|
! finds=$(find ${search_path} -maxdepth 2 -type f \( -name control.\* -or \
|
||||||
@ -202,6 +202,7 @@ function main() {
|
|||||||
control_files_to_run="${control_files_to_run} '${finds}'"
|
control_files_to_run="${control_files_to_run} '${finds}'"
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
popd > /dev/null
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
@ -216,48 +217,15 @@ function main() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
if [[ -z "${FLAGS_results_dir_root}" ]]; then
|
if [[ -z "${FLAGS_results_dir_root}" ]]; then
|
||||||
FLAGS_results_dir_root="${TMP}"
|
FLAGS_results_dir_root="${TMP_INSIDE_CHROOT}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p "${FLAGS_results_dir_root}"
|
mkdir -p "${FLAGS_results_dir_root}"
|
||||||
|
|
||||||
if [[ ${FLAGS_build} -eq ${FLAGS_TRUE} ]]; then
|
|
||||||
# Create a list of files to build based on all the client tests
|
|
||||||
# the user has specified. If they have specified at least one
|
|
||||||
# that is a server test, offer to build all client tests since
|
|
||||||
# it's quite hard to know what client tests a server test might
|
|
||||||
# use.
|
|
||||||
local build_param=""
|
|
||||||
for control_file in ${control_files_to_run}; do
|
|
||||||
control_file=$(remove_quotes "${control_file}")
|
|
||||||
local type=$(read_test_type "${control_file}")
|
|
||||||
if [[ "${type}" == "server" ]]; then
|
|
||||||
build_param=""
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
if [[ -n "${build_param}" ]]; then
|
|
||||||
build_param="${build_param},"
|
|
||||||
fi
|
|
||||||
local simple_path=$(basename $(dirname $control_file))
|
|
||||||
build_param="${build_param}${simple_path}"
|
|
||||||
done
|
|
||||||
local enter_chroot=""
|
|
||||||
if [[ ${INSIDE_CHROOT} -eq 0 ]]; then
|
|
||||||
enter_chroot="./enter_chroot.sh --"
|
|
||||||
fi
|
|
||||||
if [[ -n "${build_param}" ]]; then
|
|
||||||
build_param="--build=${build_param}"
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
echo_color "yellow" ">>> Building " \
|
|
||||||
"./build_autotest.sh --board=${FLAGS_board} ${build_param}"
|
|
||||||
${enter_chroot} ./build_autotest.sh --board=${FLAGS_board} ${build_param}
|
|
||||||
fi
|
|
||||||
|
|
||||||
for control_file in ${control_files_to_run}; do
|
for control_file in ${control_files_to_run}; do
|
||||||
# Assume a line starts with TEST_TYPE =
|
# Assume a line starts with TEST_TYPE =
|
||||||
control_file=$(remove_quotes "${control_file}")
|
control_file=$(remove_quotes "${control_file}")
|
||||||
local type=$(read_test_type "${control_file}")
|
local type=$(read_test_type "${autotest_dir}/${control_file}")
|
||||||
local option
|
local option
|
||||||
if [[ "${type}" == "client" ]]; then
|
if [[ "${type}" == "client" ]]; then
|
||||||
option="-c"
|
option="-c"
|
||||||
@ -268,7 +236,7 @@ function main() {
|
|||||||
echo_color "yellow" ">>> Running ${type} test " ${control_file}
|
echo_color "yellow" ">>> Running ${type} test " ${control_file}
|
||||||
local short_name=$(basename $(dirname "${control_file}"))
|
local short_name=$(basename $(dirname "${control_file}"))
|
||||||
local results_dir_name="${short_name}"
|
local results_dir_name="${short_name}"
|
||||||
local results_dir="${FLAGS_results_dir_root}/${results_dir_name}"
|
local results_dir="${TMP_INSIDE_CHROOT}/${results_dir_name}"
|
||||||
rm -rf "${results_dir}"
|
rm -rf "${results_dir}"
|
||||||
local verbose=""
|
local verbose=""
|
||||||
if [[ ${FLAGS_verbose} -eq $FLAGS_TRUE ]]; then
|
if [[ ${FLAGS_verbose} -eq $FLAGS_TRUE ]]; then
|
||||||
@ -276,8 +244,18 @@ function main() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
RAN_ANY_TESTS=${FLAGS_TRUE}
|
RAN_ANY_TESTS=${FLAGS_TRUE}
|
||||||
${autoserv} -m "${FLAGS_remote}" "${option}" "${control_file}" \
|
|
||||||
-r "${results_dir}" ${verbose}
|
local enter_chroot=""
|
||||||
|
local autotest="${GCLIENT_ROOT}/src/scripts/autotest"
|
||||||
|
if [[ ${INSIDE_CHROOT} -eq 0 ]]; then
|
||||||
|
enter_chroot="./enter_chroot.sh --"
|
||||||
|
autotest="./autotest"
|
||||||
|
fi
|
||||||
|
|
||||||
|
${enter_chroot} ${autotest} --board "${FLAGS_board}" -m "${FLAGS_remote}" \
|
||||||
|
"${option}" "${control_file}" -r "${results_dir}" ${verbose}
|
||||||
|
|
||||||
|
results_dir="${TMP}/${results_dir_name}"
|
||||||
local test_status="${results_dir}/status.log"
|
local test_status="${results_dir}/status.log"
|
||||||
local test_result_dir="${results_dir}/${short_name}"
|
local test_result_dir="${results_dir}/${short_name}"
|
||||||
local keyval_file="${test_result_dir}/results/keyval"
|
local keyval_file="${test_result_dir}/results/keyval"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user