# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

AUTHOR = 'pstew, wiley, quiche'
NAME = 'network_WiFi_MaskedBSSID.wifi_masked_bssid'
TIME = 'SHORT'
TEST_TYPE = 'Server'
ATTRIBUTES = "suite:wifi_matfunc, suite:wifi_matfunc_bcm4356, suite:wifi_matfunc_intel7265, suite:wifi_matfunc_marvell8897"
SUITE = ('wifi_matfunc, wifi_matfunc_bcm4356, wifi_matfunc_marvell8897,'
         'wifi_matfunc_intel7265')
DEPENDENCIES = 'wificell'

DOC = """
This test is designed to check that we can successfully scan for two
different SSIDs which respond with the same BSSID.  Some client
firmwares may hold only one scan entry per BSSID and will foil attempts
to connect to certain types of APs.
"""


def run(machine):
    host = hosts.create_host(machine)
    job.run_test('network_WiFi_MaskedBSSID',
                 host=host,
                 raw_cmdline_args=args)


parallel_simple(run, machines)
