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

Side by Side 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/bin/bash
2
3 # Copyright (c) 2009 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file.
6
7 # Wrapper script around run_remote_tests.sh that knows how to find
8 # device test cells.
9
10
11 # TODO(pstew): Apparently the script files are in transition from
12 # src/scripts to src/scripts/bin. However this state has existed
13 # for months now, therefore we need to look for the common libs in
14 # both places
15 script_root=$(dirname $0)
16 if [ -f ${script_root}/../common.sh ] ; then
17 script_root=${script_root}/..
18 fi
19
20 . "${script_root}/common.sh"
21
22 # Figure out the default chromelab server name. In order for this to
23 # work correctly, you have to:
24 #
25 # - Put the hostname into "scripts/.default_wifi_test_lab"
26 # - Create an /etc/hosts entry in your chroot for that hostname
27 # (if it isn't findable via DNS)
28 # - Make sure you have created a wifi_testbed_${lab} file in the
29 # ${autotest}/files/client/config/ directory
Sam Leffler 2010/07/15 17:46:13 Is it still necessary to have these config files i
30 if [ -f "$GCLIENT_ROOT/src/scripts/.default_wifi_test_lab" ] ; then
31 DEFAULT_LAB=`cat "$GCLIENT_ROOT/src/scripts/.default_wifi_test_lab"`
32 fi
33
34 # TODO(pstew) Since this is a wrapper script, we need to accept all
35 # arguments run_remote_tests does, plus a few more of our own. This
36 # can lead to version skew issues
37
38 DEFINE_string args "" "Command line arguments for test, separated with comma" a
39 DEFINE_string board "" "The board for which you are building autotest"
40 DEFINE_string chroot "" "alternate chroot location" c
41 DEFINE_boolean cleanup ${FLAGS_FALSE} "Clean up temp directory"
42 DEFINE_string iterations "" "Iterations to run every top level test" i
43 DEFINE_string prepackaged_autotest "" "Use this prepackaged autotest dir"
44 DEFINE_string results_dir_root "" "alternate root results directory"
45 DEFINE_boolean verbose ${FLAGS_FALSE} "Show verbose autoserv output" v
46
47 # These flags are specific to run_wifi_tests
48 DEFINE_string cell "" "Cell number to perform test on"
49 DEFINE_string client "" "Host name or IP of device to perform test"
50 DEFINE_string lab "${DEFAULT_LAB}" "Lab machine to perform test on"
51 DEFINE_string url "" "URL to lab server config server"
52
53 FLAGS "$@" || exit 1
54
55 run_remote_flags=""
56 run_remote_args=${FLAGS_args}
57
58 append_flag () {
59 local delim=''
60 [ -n "${run_remote_flags}" ] && delim=' '
61 run_remote_flags="${run_remote_flags}${delim}$*"
62 }
63
64 append_arg () {
65 local delim=''
66 [ -n "${run_remote_args}" ] && delim=','
67 run_remote_args="${run_remote_args}${delim}$*"
68 }
69
70 if [ -n "${FLAGS_board}" ]; then
71 append_flag --board "'${FLAGS_board}'"
72 fi
73
74 if [ -n "${FLAGS_chroot}" ]; then
75 append_flag --chroot "'${FLAGS_chroot}'"
76 fi
77
78 if [ "${FLAGS_cleanup}" -eq ${FLAGS_TRUE} ]; then
79 append_flag --cleanup
80 fi
81
82 if [ -n "${FLAGS_iterations}" ]; then
83 append_flag --iterations ${FLAGS_iterations}
84 fi
85
86 if [ -n "${FLAGS_prepackaged_autotest}" ]; then
87 append_flag --prepackaged_autotest "'${FLAGS_prepackaged_autotest}'"
88 fi
89
90 if [ -n "${FLAGS_results_dir_root}" ]; then
91 append_flag --results_dir_root "'${FLAGS_results_dir_root}'"
92 fi
93
94 if [ "${FLAGS_verbose}" -eq ${FLAGS_TRUE} ]; then
95 append_flag --verbose
96 fi
97
98 # Parse our local args
99 if [ -n "${FLAGS_lab}" ] ; then
100 # Add a config file for the lab if one isn't already set
101 if ! expr "${run_remote_args}" : '.*config_file=' >/dev/null; then
102 append_arg "config_file=wifi_testbed_${FLAGS_lab}"
103 fi
104 fi
105
106 if [ -n "${FLAGS_url}" ] ; then
107 lab_url=${FLAGS_url}
108 elif [ -n "${FLAGS_lab}" ] ; then
109 lab_url="http://${FLAGS_lab}:8080/cells"
110 else
111 echo ">>> No lab server specified. Please use --lab or --url options"
112 exit 1
113 fi
114
115 cell_no=0
Sam Leffler 2010/07/15 17:46:13 Maybe default FLAG_cell to "0" and set this from i
116
117 # Retrieve the testbed config from the server and match either the client
118 # or the cell number to one of the entries
119 ret=$(curl -s $lab_url | \
120 while read line; do
121 # Each line from the server is made up of:
122 # client_name router_name server_name client_addr router_addr server_addr
123 set $line
124 if [ "${FLAGS_cell}" = "$cell_no" -o "${FLAGS_client}" = "$1" -o \
125 "${FLAGS_client}" = "$4" ] ; then
126 echo "$4"
127 echo "router_addr=$5"
128 if [ "$6" != "0.0.0.0" ] ; then
129 echo "server_addr=$6"
130 fi
131 break
132 fi
133 cell_no=$[cell_no + 1]
134 done)
135
136 if [ -z "$ret" ] ; then
137 echo ">>> Cell or host not found at $lab_url"
138 exit 1
139 fi
140
141 set $ret
142 remote=$1
143 shift
144 for arg in $*; do
145 append_arg $arg
146 done
147
148 eval "exec "${script_root}/run_remote_tests.sh" \
149 -a "${run_remote_args}" --remote=${remote} $run_remote_flags $FLAGS_ARGV"
OLDNEW
« 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