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

Side by Side Diff: server/site_wifitest.py

Issue 6030011: Rearrange EAP setup so that it is more parameterizable for other EAP types (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/autotest.git@master
Patch Set: No more site_eap Created 9 years, 11 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 | Annotate | Revision Log
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 from autotest_lib.server import site_host_attributes 10 from autotest_lib.server import site_host_attributes
11 from autotest_lib.server import site_eap_tls
12 from autotest_lib.server import test 11 from autotest_lib.server import test
12 from autotest_lib.server.site_eap_certs import *
Paul Stewart 2011/01/13 01:56:06 I'd prefer if you didn't do "import *" here, and r
13 from autotest_lib.client.common_lib import error 13 from autotest_lib.client.common_lib import error
14 14
15 class NotImplemented(Exception): 15 class NotImplemented(Exception):
16 def __init__(self, what): 16 def __init__(self, what):
17 self.what = what 17 self.what = what
18 18
19 19
20 def __str__(self): 20 def __str__(self):
21 return repr("Test method '%s' not implemented" % self.what) 21 return repr("Test method '%s' not implemented" % self.what)
22 22
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 script_client_dir = self.client.get_tmp_dir() 311 script_client_dir = self.client.get_tmp_dir()
312 script_client_file = os.path.join(script_client_dir, script_name) 312 script_client_file = os.path.join(script_client_dir, script_name)
313 for copy_file in [script_name] + list(support_scripts): 313 for copy_file in [script_name] + list(support_scripts):
314 src_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 314 src_file = os.path.join(os.path.dirname(os.path.realpath(__file__)),
315 copy_file) 315 copy_file)
316 dest_file = os.path.join(script_client_dir, 316 dest_file = os.path.join(script_client_dir,
317 os.path.basename(src_file)) 317 os.path.basename(src_file))
318 self.client.send_file(src_file, dest_file, delete_dest=True) 318 self.client.send_file(src_file, dest_file, delete_dest=True)
319 self.client_installed_scripts[script_name] = script_client_file 319 self.client_installed_scripts[script_name] = script_client_file
320 return script_client_file 320 return script_client_file
321 321
Paul Stewart 2011/01/13 01:56:06 It doesn't make sense to copy this function here a
322 def insert_file(self, host, filename, contents):
323 """
324 If config files are too big, the "host.run()" never returns.
325 As a workaround, break the file up into lines and append the
326 file piece by piece
327 """
328 host.run('rm -f %s >/dev/null 2>&1' % filename, ignore_status=True)
329 content_lines = contents.splitlines()
330 while content_lines:
331 buflist = []
332 buflen = 0
333 while content_lines and buflen + len(content_lines[0]) < 200:
334 line = content_lines.pop(0)
335 buflen += len(line) + 1
336 buflist.append(line)
337
338 if not buflist:
339 raise error.TestFail('Cert profile: line too long: %s' %
340 content_lines[0])
341 host.run('cat <<EOF >>%s\n%s\nEOF\n' %
342 (filename, '\n'.join(buflist)))
343
322 344
323 def connect(self, params): 345 def connect(self, params):
324 """ Connect client to AP/router """ 346 """ Connect client to AP/router """
325 347
326 script_client_file = self.install_script('site_wlan_connect.py', 348 script_client_file = self.install_script('site_wlan_connect.py',
327 'site_wlan_wait_state.py') 349 'site_wlan_wait_state.py')
328 if 'eap-tls' in params: 350 if 'files' in params:
Paul Stewart 2011/01/13 01:56:06 Instead of having this as a parameter to "connect"
329 params.update(site_eap_tls.client_config(self.client, 351 for name,contents in params['files'].iteritems():
330 params['eap-tls'], 352 self.insert_file(self.client, name, contents)
331 params.get('server-auth',
332 None)))
333 353
334 flags = [] 354 flags = []
335 if params.get('debug', True): 355 if params.get('debug', True):
336 flags.append('--debug') 356 flags.append('--debug')
337 if params.get('hidden', False): 357 if params.get('hidden', False):
338 flags.append('--hidden') 358 flags.append('--hidden')
339 359
340 result = self.client.run('python "%s" %s "%s" "%s" "%s" "%d" "%d"' % 360 result = self.client.run('python "%s" %s "%s" "%s" "%s" "%d" "%d"' %
341 (script_client_file, 361 (script_client_file,
342 ' '.join(flags), 362 ' '.join(flags),
(...skipping 799 matching lines...) Expand 10 before | Expand all | Expand 10 after
1142 except error.TestFail: 1162 except error.TestFail:
1143 if 'expect_failure' in testcase: 1163 if 'expect_failure' in testcase:
1144 self.expect_failure(name, testcase['expect_failure']) 1164 self.expect_failure(name, testcase['expect_failure'])
1145 else: 1165 else:
1146 raise 1166 raise
1147 except Exception, e: 1167 except Exception, e:
1148 if 'expect_failure' in testcase: 1168 if 'expect_failure' in testcase:
1149 self.expect_failure(name, testcase['expect_failure']) 1169 self.expect_failure(name, testcase['expect_failure'])
1150 else: 1170 else:
1151 raise 1171 raise
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698