# 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_OverlappingBSSScan.wifi_obss'
TIME = 'SHORT'
TEST_TYPE = 'Server'
SUITE = ('wifi_matfunc, wifi_matfunc_bcm4356, wifi_matfunc_marvell8897,'
         'wifi_matfunc_intel7265')
DEPENDENCIES = 'wificell'

DOC = """
This test case verifies that OBSS scan aborts and/or backs off when
there is consistent outgoing traffic.  This test is similar to the
current BgscanBackoff test, except that scans are triggered by the
802.11n Overlapping BSS detection scans as opposed to wpa_supplicant's
background scan mechanism.  To do so, we add configuration to
wpa_supplicant to request that clients perform these scans, then
test both that the client performs the scan (by monitoring the hostapd
log) and that these scans do not disrupt the latency.

"""


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


parallel_simple(run, machines)
