# 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 = 'wiley, pstew, quiche'
NAME = 'network_WiFi_BgscanBackoff.wifi_bgscan_backoff'
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 bgscan aborts and/or backs off when
there is consistent outgoing traffic.
"""


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


parallel_simple(run, machines)
