# 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'
ATTRIBUTES = ('suite:wifi_matfunc, suite:wifi_matfunc_noservo')
DEPENDENCIES = 'wificell'

DOC = """
This test case verifies that bgscan aborts and/or backs off when
there is consistent outgoing traffic.
"""

from autotest_lib.server.cros.network import hostap_config

def run(machine):
    host = hosts.create_host(machine)
    config_first_ap = (hostap_config.HostapConfig(channel=1))
    config_second_ap = (hostap_config.HostapConfig(channel=11,
                min_streams=1))
    configs=[config_first_ap, config_second_ap]
    job.run_test('network_WiFi_BgscanBackoff',
                 host=host,
                 raw_cmdline_args=args,
                 additional_params=configs)

parallel_simple(run, machines)
