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

Side by Side Diff: server/site_wifitest.py

Issue 1696006: Integrate with autotest log. (Closed)
Patch Set: Iterate Created 10 years, 8 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 | « server/site_tests/network_WiFiSecMat/network_WiFiSecMat.py ('k') | 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
1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import common, fnmatch, logging, os, re, string, threading, time 5 import common, fnmatch, logging, os, re, string, threading, time
6 6
7 from autotest_lib.server import autotest, hosts, subcommand 7 from autotest_lib.server import autotest, hosts, subcommand
8 from autotest_lib.server import site_bsd_router 8 from autotest_lib.server import site_bsd_router
9 from autotest_lib.server import site_linux_router 9 from autotest_lib.server import site_linux_router
10 10
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 by adding a new class and auto-selecting it in __init__. 59 by adding a new class and auto-selecting it in __init__.
60 60
61 The WiFiTest class could be generalized to handle clients other than 61 The WiFiTest class could be generalized to handle clients other than
62 ChromeOS; this would useful for systems that use Network Manager or 62 ChromeOS; this would useful for systems that use Network Manager or
63 wpa_supplicant directly. 63 wpa_supplicant directly.
64 """ 64 """
65 65
66 def __init__(self, name, steps, config): 66 def __init__(self, name, steps, config):
67 self.name = name 67 self.name = name
68 self.steps = steps 68 self.steps = steps
69
69 router = config['router'] 70 router = config['router']
70
71 self.router = hosts.create_host(router['addr']) 71 self.router = hosts.create_host(router['addr'])
72 # NB: truncate SSID to 32 characters 72 # NB: truncate SSID to 32 characters
73 self.defssid = self.__get_defssid(router['addr'])[0:32] 73 self.defssid = self.__get_defssid(router['addr'])[0:32]
74 74
75 if 'type' not in router: 75 if 'type' not in router:
76 # auto-detect router type 76 # auto-detect router type
77 if site_linux_router.isLinuxRouter(self.router): 77 if site_linux_router.isLinuxRouter(self.router):
78 router['type'] = 'linux' 78 router['type'] = 'linux'
79 elif site_bsd_router.isBSDRouter(self.router): 79 elif site_bsd_router.isBSDRouter(self.router):
80 router['type'] = 'bsd' 80 router['type'] = 'bsd'
81 else: 81 else:
82 raise Exception('Unable to autodetect router type') 82 raise error.TestFail('Unable to autodetect router type')
83 if router['type'] == 'linux': 83 if router['type'] == 'linux':
84 self.wifi = site_linux_router.LinuxRouter(self.router, router, 84 self.wifi = site_linux_router.LinuxRouter(self.router, router,
85 self.defssid) 85 self.defssid)
86 elif router['type'] == 'bsd': 86 elif router['type'] == 'bsd':
87 self.wifi = site_bsd_router.BSDRouter(self.router, router, 87 self.wifi = site_bsd_router.BSDRouter(self.router, router,
88 self.defssid) 88 self.defssid)
89 else: 89 else:
90 raise Exception('Unsupported router') 90 raise error.TestFail('Unsupported router')
91 91
92 # 92 #
93 # The client machine must be reachable from the control machine. 93 # The client machine must be reachable from the control machine.
94 # The address on the wifi network is retrieved each time it 94 # The address on the wifi network is retrieved each time it
95 # associates to the router. 95 # associates to the router.
96 # 96 #
97 client = config['client'] 97 client = config['client']
98 self.client = hosts.create_host(client['addr']) 98 self.client = hosts.create_host(client['addr'])
99 self.client_at = autotest.Autotest(self.client) 99 self.client_at = autotest.Autotest(self.client)
100 self.client_wifi_ip = None # client's IP address on wifi net 100 self.client_wifi_ip = None # client's IP address on wifi net
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 func = getattr(self, method, None) 154 func = getattr(self, method, None)
155 if func is None: 155 if func is None:
156 func = getattr(self.wifi, method, None) 156 func = getattr(self.wifi, method, None)
157 if func is not None: 157 if func is not None:
158 try: 158 try:
159 func(params) 159 func(params)
160 except Exception, e: 160 except Exception, e:
161 logging.error("%s: Step '%s' failed: %s; abort test", 161 logging.error("%s: Step '%s' failed: %s; abort test",
162 self.name, method, str(e)) 162 self.name, method, str(e))
163 self.cleanup(params) 163 self.cleanup(params)
164 raise e
164 break 165 break
165 else: 166 else:
166 logging.error("%s: Step '%s' unknown; abort test", 167 logging.error("%s: Step '%s' unknown; abort test",
167 self.name, method) 168 self.name, method)
168 self.cleanup(params) 169 self.cleanup(params)
169 break 170 break
170 171
171 172
172 def __get_connect_script(self, params): 173 def __get_connect_script(self, params):
173 # Something is off in our current setup so we'll set the assoc_timeout 174 # Something is off in our current setup so we'll set the assoc_timeout
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 sys.exit(6) 247 sys.exit(6)
247 print "assoc %3.1f secs config %3.1f secs" % (assoc_time, config_time) 248 print "assoc %3.1f secs config %3.1f secs" % (assoc_time, config_time)
248 sys.exit(0)''' 249 sys.exit(0)'''
249 250
250 251
251 def __get_ipaddr(self, host, ifnet): 252 def __get_ipaddr(self, host, ifnet):
252 # XXX gotta be a better way to do this 253 # XXX gotta be a better way to do this
253 result = host.run("ifconfig %s" % ifnet) 254 result = host.run("ifconfig %s" % ifnet)
254 m = re.search('inet addr:([^ ]*)', result.stdout) 255 m = re.search('inet addr:([^ ]*)', result.stdout)
255 if m is None: 256 if m is None:
256 raise Except, "No inet address found" 257 raise error.TestFail("No inet address found")
257 return m.group(1) 258 return m.group(1)
258 259
259 260
260 def connect(self, params): 261 def connect(self, params):
261 """ Connect client to AP/router """ 262 """ Connect client to AP/router """
262 if 'ssid' not in params: 263 if 'ssid' not in params:
263 params['ssid'] = self.defssid 264 params['ssid'] = self.defssid
264 script = self.__get_connect_script(params) 265 script = self.__get_connect_script(params)
265 result = self.client.run("python<<'EOF'\n%s\nEOF\n" % script) 266 result = self.client.run("python<<'EOF'\n%s\nEOF\n" % script)
266 print "%s: %s" % (self.name, result.stdout[0:-1]) 267 print "%s: %s" % (self.name, result.stdout[0:-1])
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 670
670 server = config['server'] 671 server = config['server']
671 if server_addr is not None: 672 if server_addr is not None:
672 server['addr'] = server_addr; 673 server['addr'] = server_addr;
673 # TODO(sleffler) check for wifi_addr when no control address 674 # TODO(sleffler) check for wifi_addr when no control address
674 675
675 # tag jobs w/ the router's address on the control network 676 # tag jobs w/ the router's address on the control network
676 config['tagname'] = router['addr'] 677 config['tagname'] = router['addr']
677 678
678 return config 679 return config
OLDNEW
« no previous file with comments | « server/site_tests/network_WiFiSecMat/network_WiFiSecMat.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698