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

Unified Diff: src/scripts/setup_autotest.sh

Issue 502009: add script to drive setup and execution of autotest suites from dev environment (Closed)
Patch Set: address comments, typos Created 10 years, 12 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/scripts/setup_autotest.sh
diff --git a/src/scripts/setup_autotest.sh b/src/scripts/setup_autotest.sh
new file mode 100755
index 0000000000000000000000000000000000000000..165830957b9485494926d2799bb59e3dbaa9607f
--- /dev/null
+++ b/src/scripts/setup_autotest.sh
@@ -0,0 +1,102 @@
+#!/bin/bash
+
+# Copyright (c) 2009 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Script to install and launch autotest.
+
+. "$(dirname "$0")/common.sh"
+
+# Script must be run inside the chroot
+assert_inside_chroot
+
+DEFINE_string client_control "" "client test case to execute" "c"
+DEFINE_boolean force false "force reinstallation of autotest" "f"
+DEFINE_string machine "" "if present, execute autotest on this host." "m"
+DEFINE_string test_key "${GCLIENT_ROOT}/src/platform/testing/testing_rsa" \
+"rsa key to use for autoserv" "k"
+
+# More useful help
+FLAGS_HELP="usage: $0 [flags]"
+
+# parse the command-line
+FLAGS "$@" || exit 1
+eval set -- "${FLAGS_ARGV}"
+set -e
+
+AUTOTEST_CHROOT_DEST="/usr/local/autotest"
+AUTOTEST_SRC="${GCLIENT_ROOT}/src/third_party/autotest/files"
+echo $AUTOTEST_SRC
+
+CHROOT_AUTHSOCK_PREFIX="/tmp/chromiumos_test_agent"
+
+function cleanup {
+ if [ "${TEST_AUTH_SOCKET:0:26}" == ${CHROOT_AUTHSOCK_PREFIX} ]
+ then
+ echo "cleaning up chrooted ssh-agent."
+ kill ${SSH_AGENT_PID}
+ fi
+}
+
+trap cleanup EXIT
+
+# Copy a local "installation" of autotest into the chroot, to avoid
+# polluting the src dir with tmp files, results, etc.
+# TODO: use rsync to ensure we don't get stuck with an old install.
+if [ 1 != ${FLAGS_force} ] || [ ! -f "${AUTOTEST_CHROOT_DEST}/server/autosrv" ]
+ then
+ echo -n "Installing Autotest... "
+ sudo mkdir -p "${AUTOTEST_CHROOT_DEST}"
+ sudo cp -rp ${AUTOTEST_SRC}/* ${AUTOTEST_CHROOT_DEST}
+ echo "done."
+ else
+ echo "Autotest found in chroot, skipping copy."
+fi
+
+# Add all third_party and system tests to site_tests.
+for type in client server
+do
+ echo -n "Adding ${type}_tests into autotest's ${type}/site_tests... "
+ sudo cp -rp ${GCLIENT_ROOT}/src/platform/testing/${type}_tests/* \
+ ${AUTOTEST_CHROOT_DEST}/${type}/site_tests/
+done
+
+# If ssh-agent isn't already running, start one (possibly inside the chroot)
+if [ ! -n "${SSH_AGENT_PID}" ]
+then
+ echo "Setting up ssh-agent in chroot for testing."
+ TEST_AUTH_SOCKET=$(mktemp -u ${CHROOT_AUTHSOCK_PREFIX}.XXXX)
+ eval $(/usr/bin/ssh-agent -a ${TEST_AUTH_SOCKET})
+fi
+
+# Install authkey for testing
+
+chmod 400 $FLAGS_test_key
+/usr/bin/ssh-add $FLAGS_test_key 2> /dev/null
+
+if [ -n "${FLAGS_machine}" ]
+then
+ CLIENT_CONTROL_FILE=${FLAGS_client_control}
+ # run only a specific test/suite if requested
+ if [ ! -n "${CLIENT_CONTROL_FILE}" ]
+ then
+ # Generate meta-control file to run all existing site tests.
+ CLIENT_CONTROL_FILE=\
+ "${AUTOTEST_CHROOT_DEST}/client/site_tests/AllTests/control"
+ echo "No control file specified. Running all tests."
+ fi
+ # Kick off autosrv for specified test
+ autoserv_cmd="${AUTOTEST_CHROOT_DEST}/server/autoserv \
+ -m ${FLAGS_machine} \
+ -c ${CLIENT_CONTROL_FILE}"
+ echo "running autoserv: " ${autoserv_cmd}
+ ${autoserv_cmd}
+else
+ echo "To execute autotest manually:
+ eval \$(ssh-agent) # start ssh-agent
+ ssh-add $FLAGS_test_key # add test key to agent
+ # Then execute autoserv:
+ $autoserv_cmd"
+fi
+
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698