# Copyright (c) 2012 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 = "Tan Gao <tgao@google.com>"
TIME = "LONG"
NAME = "WiFi RateRange"
TEST_CATEGORY = "Stress"
TEST_CLASS = "network"
TEST_TYPE = "Server"
SYNC_COUNT = 1
DOC = """
WiFiRateRange is a suite of 4-machine tests to benchmark WiFi performance
(i.e. throughput) under different operating conditions (e.g. attenuation,
channel, bandwidth, encryption, etc.). One client, one server, one programmable
variable attenuator (special hardware) and one programmable WiFi AP/Router are
required (either off-the-shelf with a network-accesible CLI or a Linux/BSD
system with a WiFi card that supports HostAP functionality).

Configuration information can be specified in
    third_party/autotest/files/client/config/wifi_attenuator_config

server     - the IP address of the server
client     - the IP address of the client
router     - the IP address of the WiFi AP/Router
attenuator - the IP address of the variable attenuator
"""

from autotest_lib.server import site_wifitest


def run_server_tests(machine):
  site_wifitest.run_test_dir("network_WiFiRateRange", job, args, machine)


parallel_simple(run_server_tests, machines)
