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

Unified Diff: bin/cros_run_wifi_tests.sh

Issue 3007002: Wrapper script around run_remote_tests that knows about test cells (Closed) Base URL: ssh://gitrw.chromium.org/crosutils.git
Patch Set: Created 10 years, 5 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: bin/cros_run_wifi_tests.sh
diff --git a/bin/cros_run_wifi_tests.sh b/bin/cros_run_wifi_tests.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c11f3134ee1e1f447bb11a9748e4984becc6dd42
--- /dev/null
+++ b/bin/cros_run_wifi_tests.sh
@@ -0,0 +1,149 @@
+#!/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.
+
+# Wrapper script around run_remote_tests.sh that knows how to find
+# device test cells.
+
+
+# TODO(pstew): Apparently the script files are in transition from
+# src/scripts to src/scripts/bin. However this state has existed
+# for months now, therefore we need to look for the common libs in
+# both places
+script_root=$(dirname $0)
+if [ -f ${script_root}/../common.sh ] ; then
+ script_root=${script_root}/..
+fi
+
+. "${script_root}/common.sh"
+
+# Figure out the default chromelab server name. In order for this to
+# work correctly, you have to:
+#
+# - Put the hostname into "scripts/.default_wifi_test_lab"
+# - Create an /etc/hosts entry in your chroot for that hostname
+# (if it isn't findable via DNS)
+# - Make sure you have created a wifi_testbed_${lab} file in the
+# ${autotest}/files/client/config/ directory
Sam Leffler 2010/07/15 17:46:13 Is it still necessary to have these config files i
+if [ -f "$GCLIENT_ROOT/src/scripts/.default_wifi_test_lab" ] ; then
+ DEFAULT_LAB=`cat "$GCLIENT_ROOT/src/scripts/.default_wifi_test_lab"`
+fi
+
+# TODO(pstew) Since this is a wrapper script, we need to accept all
+# arguments run_remote_tests does, plus a few more of our own. This
+# can lead to version skew issues
+
+DEFINE_string args "" "Command line arguments for test, separated with comma" a
+DEFINE_string board "" "The board for which you are building autotest"
+DEFINE_string chroot "" "alternate chroot location" c
+DEFINE_boolean cleanup ${FLAGS_FALSE} "Clean up temp directory"
+DEFINE_string iterations "" "Iterations to run every top level test" i
+DEFINE_string prepackaged_autotest "" "Use this prepackaged autotest dir"
+DEFINE_string results_dir_root "" "alternate root results directory"
+DEFINE_boolean verbose ${FLAGS_FALSE} "Show verbose autoserv output" v
+
+# These flags are specific to run_wifi_tests
+DEFINE_string cell "" "Cell number to perform test on"
+DEFINE_string client "" "Host name or IP of device to perform test"
+DEFINE_string lab "${DEFAULT_LAB}" "Lab machine to perform test on"
+DEFINE_string url "" "URL to lab server config server"
+
+FLAGS "$@" || exit 1
+
+run_remote_flags=""
+run_remote_args=${FLAGS_args}
+
+append_flag () {
+ local delim=''
+ [ -n "${run_remote_flags}" ] && delim=' '
+ run_remote_flags="${run_remote_flags}${delim}$*"
+}
+
+append_arg () {
+ local delim=''
+ [ -n "${run_remote_args}" ] && delim=','
+ run_remote_args="${run_remote_args}${delim}$*"
+}
+
+if [ -n "${FLAGS_board}" ]; then
+ append_flag --board "'${FLAGS_board}'"
+fi
+
+if [ -n "${FLAGS_chroot}" ]; then
+ append_flag --chroot "'${FLAGS_chroot}'"
+fi
+
+if [ "${FLAGS_cleanup}" -eq ${FLAGS_TRUE} ]; then
+ append_flag --cleanup
+fi
+
+if [ -n "${FLAGS_iterations}" ]; then
+ append_flag --iterations ${FLAGS_iterations}
+fi
+
+if [ -n "${FLAGS_prepackaged_autotest}" ]; then
+ append_flag --prepackaged_autotest "'${FLAGS_prepackaged_autotest}'"
+fi
+
+if [ -n "${FLAGS_results_dir_root}" ]; then
+ append_flag --results_dir_root "'${FLAGS_results_dir_root}'"
+fi
+
+if [ "${FLAGS_verbose}" -eq ${FLAGS_TRUE} ]; then
+ append_flag --verbose
+fi
+
+# Parse our local args
+if [ -n "${FLAGS_lab}" ] ; then
+ # Add a config file for the lab if one isn't already set
+ if ! expr "${run_remote_args}" : '.*config_file=' >/dev/null; then
+ append_arg "config_file=wifi_testbed_${FLAGS_lab}"
+ fi
+fi
+
+if [ -n "${FLAGS_url}" ] ; then
+ lab_url=${FLAGS_url}
+elif [ -n "${FLAGS_lab}" ] ; then
+ lab_url="http://${FLAGS_lab}:8080/cells"
+else
+ echo ">>> No lab server specified. Please use --lab or --url options"
+ exit 1
+fi
+
+cell_no=0
Sam Leffler 2010/07/15 17:46:13 Maybe default FLAG_cell to "0" and set this from i
+
+# Retrieve the testbed config from the server and match either the client
+# or the cell number to one of the entries
+ret=$(curl -s $lab_url | \
+while read line; do
+ # Each line from the server is made up of:
+ # client_name router_name server_name client_addr router_addr server_addr
+ set $line
+ if [ "${FLAGS_cell}" = "$cell_no" -o "${FLAGS_client}" = "$1" -o \
+ "${FLAGS_client}" = "$4" ] ; then
+ echo "$4"
+ echo "router_addr=$5"
+ if [ "$6" != "0.0.0.0" ] ; then
+ echo "server_addr=$6"
+ fi
+ break
+ fi
+ cell_no=$[cell_no + 1]
+done)
+
+if [ -z "$ret" ] ; then
+ echo ">>> Cell or host not found at $lab_url"
+ exit 1
+fi
+
+set $ret
+remote=$1
+shift
+for arg in $*; do
+ append_arg $arg
+done
+
+eval "exec "${script_root}/run_remote_tests.sh" \
+ -a "${run_remote_args}" --remote=${remote} $run_remote_flags $FLAGS_ARGV"
« 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