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

Side by Side Diff: server/site_wifitest.py

Issue 1736001: Rolled up change to wireless test suite for OpenWRT. (Closed)
Patch Set: Consistent state 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_linux_router.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 router = config['router']
69 70
70 router = config['router']
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 if 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 Exception('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:
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 self.cleanup(params) 163 self.cleanup(params)
164 break 164 break
165 else: 165 else:
166 logging.error("%s: Step '%s' unknown; abort test", 166 logging.error("%s: Step '%s' unknown; abort test",
167 self.name, method) 167 self.name, method)
168 self.cleanup(params) 168 self.cleanup(params)
169 break 169 break
170 170
171 171
172 def __get_connect_script(self, params): 172 def __get_connect_script(self, params):
173 # Something is off in our current setup so we'll set the assoc_timeout
174 # to 60. When all is fixed, it should go back to 15.
173 return ''' 175 return '''
174 import dbus, dbus.mainloop.glib, gobject, logging, re, sys, time 176 import dbus, dbus.mainloop.glib, gobject, logging, re, sys, time
175 177
176 ssid = "''' + params['ssid'] + '''" 178 ssid = "''' + params['ssid'] + '''"
177 security = "''' + params['security'] + '''" 179 security = "''' + params['security'] + '''"
178 psk = "''' + params.get('psk', "") + '''" 180 psk = "''' + params.get('psk', "") + '''"
179 assoc_timeout = ''' + params.get('assoc_timeout', "15") + ''' 181 assoc_timeout = ''' + params.get('assoc_timeout', "60") + '''
180 config_timeout = ''' + params.get('config_timeout', "15") + ''' 182 config_timeout = ''' + params.get('config_timeout', "15") + '''
181 183
182 bus_loop = dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) 184 bus_loop = dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
183 bus = dbus.SystemBus(mainloop=bus_loop) 185 bus = dbus.SystemBus(mainloop=bus_loop)
184 manager = dbus.Interface(bus.get_object("org.moblin.connman", "/"), 186 manager = dbus.Interface(bus.get_object("org.moblin.connman", "/"),
185 "org.moblin.connman.Manager") 187 "org.moblin.connman.Manager")
186 188
187 try: 189 try:
188 path = manager.GetService(({ 190 path = manager.GetService(({
189 "Type": "wifi", 191 "Type": "wifi",
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 def __print_pingstats(self, label, stats): 434 def __print_pingstats(self, label, stats):
433 logging.info("%s: %s%s/%s, %s%% loss, rtt %s/%s/%s", 435 logging.info("%s: %s%s/%s, %s%% loss, rtt %s/%s/%s",
434 self.name, label, stats['xmit'], stats['recv'], stats['loss'], 436 self.name, label, stats['xmit'], stats['recv'], stats['loss'],
435 stats['min'], stats['avg'], stats['max']) 437 stats['min'], stats['avg'], stats['max'])
436 438
437 439
438 def client_ping(self, params): 440 def client_ping(self, params):
439 """ Ping the server from the client """ 441 """ Ping the server from the client """
440 ping_ip = params.get('ping_ip', self.server_wifi_ip) 442 ping_ip = params.get('ping_ip', self.server_wifi_ip)
441 count = params.get('count', 10) 443 count = params.get('count', 10)
442 # set timeout for 3s / ping packet 444 # set timeout for 5s / ping packet
443 result = self.client.run("ping %s %s" % \ 445 result = self.client.run("ping %s %s" % \
444 (self.__ping_args(params), ping_ip), timeout=3*int(count)) 446 (self.__ping_args(params), ping_ip), timeout=5*int(count))
445 447
446 self.__print_pingstats("client_ping ", 448 self.__print_pingstats("client_ping ",
447 self.__get_pingstats(result.stdout)) 449 self.__get_pingstats(result.stdout))
448 450
449 451
450 def client_ping_bg(self, params): 452 def client_ping_bg(self, params):
451 """ Ping the server from the client """ 453 """ Ping the server from the client """
452 ping_ip = params.get('ping_ip', self.server_wifi_ip) 454 ping_ip = params.get('ping_ip', self.server_wifi_ip)
453 cmd = "ping %s %s" % (self.__ping_args(params), ping_ip) 455 cmd = "ping %s %s" % (self.__ping_args(params), ping_ip)
454 self.ping_thread = HelperThread(self.client, cmd) 456 self.ping_thread = HelperThread(self.client, cmd)
455 self.ping_thread.start() 457 self.ping_thread.start()
456 458
457 459
458 def client_ping_bg_stop(self, params): 460 def client_ping_bg_stop(self, params):
459 if self.ping_thread is not None: 461 if self.ping_thread is not None:
460 self.client.run("pkill ping") 462 self.client.run("pkill ping")
461 self.ping_thread.join() 463 self.ping_thread.join()
462 self.ping_thread = None 464 self.ping_thread = None
463 465
464 466
465 def server_ping(self, params): 467 def server_ping(self, params):
466 """ Ping the client from the server """ 468 """ Ping the client from the server """
467 if self.server is None: 469 if self.server is None:
468 self.__unreachable("server_ping") 470 self.__unreachable("server_ping")
469 return 471 return
470 ping_ip = params.get('ping_ip', self.client_wifi_ip) 472 ping_ip = params.get('ping_ip', self.client_wifi_ip)
471 count = params.get('count', 10) 473 count = params.get('count', 10)
472 # set timeout for 3s / ping packet 474 # set timeout for 5s / ping packet
473 result = self.server.run("ping %s %s" % \ 475 result = self.server.run("ping %s %s" % \
474 (self.__ping_args(params), ping_ip), timeout=3*int(count)) 476 (self.__ping_args(params), ping_ip), timeout=5*int(count))
475 477
476 self.__print_pingstats("server_ping ", 478 self.__print_pingstats("server_ping ",
477 self.__get_pingstats(result.stdout)) 479 self.__get_pingstats(result.stdout))
478 480
479 481
480 def server_ping_bg(self, params): 482 def server_ping_bg(self, params):
481 """ Ping the client from the server """ 483 """ Ping the client from the server """
482 if self.server is None: 484 if self.server is None:
483 self.__unreachable("server_ping_bg") 485 self.__unreachable("server_ping_bg")
484 return 486 return
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 669
668 server = config['server'] 670 server = config['server']
669 if server_addr is not None: 671 if server_addr is not None:
670 server['addr'] = server_addr; 672 server['addr'] = server_addr;
671 # TODO(sleffler) check for wifi_addr when no control address 673 # TODO(sleffler) check for wifi_addr when no control address
672 674
673 # tag jobs w/ the router's address on the control network 675 # tag jobs w/ the router's address on the control network
674 config['tagname'] = router['addr'] 676 config['tagname'] = router['addr']
675 677
676 return config 678 return config
OLDNEW
« no previous file with comments | « server/site_linux_router.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698