1 # Copyright (c) 2013 The Chromium OS Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 AUTHOR = 'wiley, pstew, quiche' 6 NAME = 'network_WiFi_SimpleConnect.wifi_checkOddWPAPassphrases' 7 TIME = 'SHORT' 8 TEST_TYPE = 'Server' 9 ATTRIBUTES = ('suite:wifi_matfunc, suite:wifi_matfunc_bcm4371, ' 10 'suite:wifi_release, subsystem:wifi, suite:android_wifi_connect') 11 DEPENDENCIES = 'wificell' 12 13 DOC = """ 14 This tests verifies that we can connect to an AP broadcasting a WPA network 15 with a variety of unusual passphrases. 16 """ 17 18 from autotest_lib.client.common_lib.cros.network import xmlrpc_datatypes 19 from autotest_lib.client.common_lib.cros.network import xmlrpc_security_types 20 from autotest_lib.server.cros.network import hostap_config 21 22 23 def get_configurations(): 24 wpa_configs = [] 25 psks = ['\xe4\xb8\x80\xe4\xba\x8c\xe4\xb8\x89', # Pure unicode. 26 'abcdef\xc2\xa2', # Mixed unicode and ASCII. 27 ' !"#$%&\'()>*+,-./:;<=>?@[\\]^_{|}~'] # All punctuation. 28 for psk in psks: 29 wpa_configs.append(xmlrpc_security_types.WPAConfig( 30 psk=psk, 31 wpa_mode=xmlrpc_security_types.WPAConfig.MODE_PURE_WPA2, 32 wpa2_ciphers=[xmlrpc_security_types.WPAConfig.CIPHER_CCMP])) 33 wpa_configs.append(xmlrpc_security_types.WPAConfig( 34 psk=psk, 35 wpa_mode=xmlrpc_security_types.WPAConfig.MODE_PURE_WPA, 36 wpa_ciphers=[xmlrpc_security_types.WPAConfig.CIPHER_TKIP])) 37 return [(hostap_config.HostapConfig( 38 frequency=2412, 39 mode=hostap_config.HostapConfig.MODE_11G, 40 security_config=wpa_config), 41 xmlrpc_datatypes.AssociationParameters(security_config=wpa_config)) 42 for wpa_config in wpa_configs] 43 44 45 def run(machine): 46 host = hosts.create_host(machine) 47 job.run_test('network_WiFi_SimpleConnect', 48 tag=NAME.split('.')[1], 49 host=host, 50 raw_cmdline_args=args, 51 additional_params=get_configurations()) 52 53 54 parallel_simple(run, machines) 55