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 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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.client.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 got = result.stdout.rstrip() # NB: chop \n | 339 got = result.stdout.rstrip() # NB: chop \n |
340 if got != want: | 340 if got != want: |
341 logging.error("client_check_%s: wanted %s got %s", | 341 raise error.TestFail("client_check_%s: wanted %s got %s", |
342 param, want, got) | 342 param, want, got) |
343 raise AssertionError | |
344 | 343 |
345 | 344 |
346 def client_check_bintval(self, params): | 345 def client_check_bintval(self, params): |
347 """ Verify negotiated beacon interval """ | 346 """ Verify negotiated beacon interval """ |
348 self.__client_check("beacon_int", params[0]) | 347 self.__client_check("beacon_int", params[0]) |
349 | 348 |
350 | 349 |
351 def client_check_dtimperiod(self, params): | 350 def client_check_dtimperiod(self, params): |
352 """ Verify negotiated DTIM period """ | 351 """ Verify negotiated DTIM period """ |
353 self.__client_check("dtim_period", params[0]) | 352 self.__client_check("dtim_period", params[0]) |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
641 | 640 |
642 | 641 |
643 def __byfile(a, b): | 642 def __byfile(a, b): |
644 if a['file'] < b['file']: | 643 if a['file'] < b['file']: |
645 return -1 | 644 return -1 |
646 elif a['file'] > b['file']: | 645 elif a['file'] > b['file']: |
647 return 1 | 646 return 1 |
648 else: | 647 else: |
649 return 0 | 648 return 0 |
650 | 649 |
651 def read_tests(dir, pat): | 650 def read_tests(dir, *args): |
652 """ | 651 """ |
653 Collect WiFi test tuples from files. File names are used to | 652 Collect WiFi test tuples from files. File names are used to |
654 sort the test objects so the convention is to name them NNN<test> | 653 sort the test objects so the convention is to name them NNN<test> |
655 where NNN is a decimal number used to sort and <test> is an | 654 where NNN is a decimal number used to sort and <test> is an |
656 identifying name for the test; e.g. 000Check11b | 655 identifying name for the test; e.g. 000Check11b |
657 """ | 656 """ |
658 tests = [] | 657 tests = [] |
659 for file in os.listdir(dir): | 658 for file in os.listdir(dir): |
660 if fnmatch.fnmatch(file, pat): | 659 if any(fnmatch.fnmatch(file, pat) for pat in args): |
661 fd = open(os.path.join(dir, file)); | 660 fd = open(os.path.join(dir, file)); |
662 try: | 661 try: |
663 test = eval(fd.read()) | 662 test = eval(fd.read()) |
664 except Exception, e: | 663 except Exception, e: |
665 logging.error("%s: %s", os.path.join(dir, file), str(e)) | 664 logging.error("%s: %s", os.path.join(dir, file), str(e)) |
666 raise e | 665 raise e |
667 test['file'] = file | 666 test['file'] = file |
668 tests.append(test) | 667 tests.append(test) |
669 # use filenames to sort | 668 # use filenames to sort |
670 return sorted(tests, cmp=__byfile) | 669 return sorted(tests, cmp=__byfile) |
(...skipping 17 matching lines...) Expand all Loading... |
688 | 687 |
689 server = config['server'] | 688 server = config['server'] |
690 if server_addr is not None: | 689 if server_addr is not None: |
691 server['addr'] = server_addr; | 690 server['addr'] = server_addr; |
692 # TODO(sleffler) check for wifi_addr when no control address | 691 # TODO(sleffler) check for wifi_addr when no control address |
693 | 692 |
694 # tag jobs w/ the router's address on the control network | 693 # tag jobs w/ the router's address on the control network |
695 config['tagname'] = router['addr'] | 694 config['tagname'] = router['addr'] |
696 | 695 |
697 return config | 696 return config |
OLD | NEW |