Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 257 raise error.TestFail("No inet address found") | 257 raise error.TestFail("No inet address found") |
| 258 return m.group(1) | 258 return m.group(1) |
| 259 | 259 |
| 260 | 260 |
| 261 def connect(self, params): | 261 def connect(self, params): |
| 262 """ Connect client to AP/router """ | 262 """ Connect client to AP/router """ |
| 263 if 'ssid' not in params: | 263 if 'ssid' not in params: |
| 264 params['ssid'] = self.defssid | 264 params['ssid'] = self.defssid |
| 265 script = self.__get_connect_script(params) | 265 script = self.__get_connect_script(params) |
| 266 result = self.client.run("python<<'EOF'\n%s\nEOF\n" % script) | 266 result = self.client.run("python<<'EOF'\n%s\nEOF\n" % script) |
| 267 print "%s: %s" % (self.name, result.stdout[0:-1]) | 267 print "%s: %s" % (self.name, result.stdout.rstrip()) |
| 268 | 268 |
| 269 # fetch IP address of wireless device | 269 # fetch IP address of wireless device |
| 270 self.client_wifi_ip = self.__get_ipaddr(self.client, self.client_wlanif) | 270 self.client_wifi_ip = self.__get_ipaddr(self.client, self.client_wlanif) |
| 271 logging.info("%s: client WiFi-IP is %s", self.name, self.client_wifi_ip) | 271 logging.info("%s: client WiFi-IP is %s", self.name, self.client_wifi_ip) |
| 272 # TODO(sleffler) not right for non-mac80211 devices | 272 # TODO(sleffler) not right for non-mac80211 devices |
| 273 # TODO(sleffler) verify debugfs is mounted @ /sys/kernel/debug | 273 # TODO(sleffler) verify debugfs is mounted @ /sys/kernel/debug |
| 274 self.client_debugfs_path = "/sys/kernel/debug/ieee80211/%s/netdev:%s" \ | 274 self.client_debugfs_path = "/sys/kernel/debug/ieee80211/%s/netdev:%s" \ |
| 275 % ("phy0", self.client_wlanif) | 275 % ("phy0", self.client_wlanif) |
| 276 | 276 |
| 277 | 277 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 312 sys.exit(0)''' | 312 sys.exit(0)''' |
| 313 | 313 |
| 314 | 314 |
| 315 def disconnect(self, params): | 315 def disconnect(self, params): |
| 316 """ Disconnect previously connected client """ | 316 """ Disconnect previously connected client """ |
| 317 if 'ssid' not in params: | 317 if 'ssid' not in params: |
| 318 params['ssid'] = self.defssid | 318 params['ssid'] = self.defssid |
| 319 self.client_ping_bg_stop({}) | 319 self.client_ping_bg_stop({}) |
| 320 script = self.__get_disconnect_script(params) | 320 script = self.__get_disconnect_script(params) |
| 321 result = self.client.run("python<<'EOF'\n%s\nEOF\n" % script) | 321 result = self.client.run("python<<'EOF'\n%s\nEOF\n" % script) |
| 322 print "%s: %s" % (self.name, result.stdout[0:-1]) | 322 print "%s: %s" % (self.name, result.stdout.rstrip()) |
| 323 | 323 |
| 324 | 324 |
| 325 def client_powersave_on(self, params): | 325 def client_powersave_on(self, params): |
| 326 """ Enable power save operation """ | 326 """ Enable power save operation """ |
| 327 self.client.run("iwconfig %s power on" % self.client_wlanif) | 327 self.client.run("iwconfig %s power on" % self.client_wlanif) |
| 328 | 328 |
| 329 | 329 |
| 330 def client_powersave_off(self, params): | 330 def client_powersave_off(self, params): |
| 331 """ Disable power save operation """ | 331 """ Disable power save operation """ |
| 332 self.client.run("iwconfig %s power off" % self.client_wlanif) | 332 self.client.run("iwconfig %s power off" % self.client_wlanif) |
| 333 | 333 |
| 334 | 334 |
| 335 def __client_check(self, param, want): | 335 def __client_check(self, param, want): |
| 336 """ Verify negotiated station mode parameter """ | 336 """ Verify negotiated station mode parameter """ |
| 337 result = self.router.run("cat %s/%s" % | 337 result = self.client.run("cat '%s/%s'" % |
| 338 (self.client_debugfs_path, param_)) | 338 (self.client_debugfs_path, param)) |
| 339 if result != want: | 339 got = result.stdout.rstrip() # NB: chop \n |
|
seano
2010/04/28 19:05:53
unnecessary comment..
| |
| 340 if got != want: | |
| 340 logging.error("client_check_%s: wanted %s got %s", | 341 logging.error("client_check_%s: wanted %s got %s", |
| 341 param, want, result) | 342 param, want, got) |
| 342 raise AssertionError | 343 raise AssertionError |
| 343 | 344 |
| 344 | 345 |
| 345 def client_check_bintval(self, params): | 346 def client_check_bintval(self, params): |
| 346 """ Verify negotiated beacon interval """ | 347 """ Verify negotiated beacon interval """ |
| 347 _self._client_check("beacon_int", params[0]) | 348 self.__client_check("beacon_int", params[0]) |
| 348 | 349 |
| 349 | 350 |
| 350 def client_check_dtimperiod(self, params): | 351 def client_check_dtimperiod(self, params): |
| 351 """ Verify negotiated DTIM period """ | 352 """ Verify negotiated DTIM period """ |
| 352 _self._client_check("dtim_period", params[0]) | 353 self.__client_check("dtim_period", params[0]) |
| 353 | 354 |
| 354 | 355 |
| 355 def client_check_rifs(self, params): | 356 def client_check_rifs(self, params): |
| 356 """ Verify negotiated RIFS setting """ | 357 """ Verify negotiated RIFS setting """ |
| 357 _self._client_check("rifs", params[0]) | 358 self.__client_check("rifs", params[0]) |
| 358 | 359 |
| 359 | 360 |
| 360 def client_check_shortgi20(self, params): | 361 def client_check_shortgi20(self, params): |
| 361 """ Verify negotiated Short GI setting """ | 362 """ Verify negotiated Short GI setting """ |
| 362 _self._client_check("sgi20", params[0]) | 363 self.__client_check("sgi20", params[0]) |
| 363 | 364 |
| 364 | 365 |
| 365 def client_check_shortgi40(self, params): | 366 def client_check_shortgi40(self, params): |
| 366 """ Verify negotiated Short GI setting """ | 367 """ Verify negotiated Short GI setting """ |
| 367 _self._client_check("sgi40", params[0]) | 368 self.__client_check("sgi40", params[0]) |
| 368 | 369 |
| 369 | 370 |
| 370 def client_check_shortslot(self, params): | 371 def client_check_shortslot(self, params): |
| 371 """ Verify negotiated Short Slot setting """ | 372 """ Verify negotiated Short Slot setting """ |
| 372 _self._client_check("short_slot", params[0]) | 373 self.__client_check("short_slot", params[0]) |
| 373 | 374 |
| 374 | 375 |
| 375 def client_check_protection(self, params): | 376 def client_check_protection(self, params): |
| 376 """ Verify negotiated CTS protection setting """ | 377 """ Verify negotiated CTS protection setting """ |
| 377 _self._client_check("cts_prot", params[0]) | 378 self.__client_check("cts_prot", params[0]) |
| 378 | 379 |
| 379 | 380 |
| 380 def client_monitor_start(self, params): | 381 def client_monitor_start(self, params): |
| 381 """ Start monitoring system events """ | 382 """ Start monitoring system events """ |
| 382 raise NotImplemented("client_monitor_start") | 383 raise NotImplemented("client_monitor_start") |
| 383 | 384 |
| 384 | 385 |
| 385 def client_monitor_stop(self, params): | 386 def client_monitor_stop(self, params): |
| 386 """ Stop monitoring system events """ | 387 """ Stop monitoring system events """ |
| 387 raise NotImplemented("client_monitor_stop") | 388 raise NotImplemented("client_monitor_stop") |
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 687 | 688 |
| 688 server = config['server'] | 689 server = config['server'] |
| 689 if server_addr is not None: | 690 if server_addr is not None: |
| 690 server['addr'] = server_addr; | 691 server['addr'] = server_addr; |
| 691 # TODO(sleffler) check for wifi_addr when no control address | 692 # TODO(sleffler) check for wifi_addr when no control address |
| 692 | 693 |
| 693 # tag jobs w/ the router's address on the control network | 694 # tag jobs w/ the router's address on the control network |
| 694 config['tagname'] = router['addr'] | 695 config['tagname'] = router['addr'] |
| 695 | 696 |
| 696 return config | 697 return config |
| OLD | NEW |