AUTHOR = "Kelly Lucas <kdlucas@google.com>"
TIME = "SHORT"
NAME = "Iperf Multi-machine"
TEST_CATEGORY = "Stress"
TEST_CLASS = "Network"
TEST_TYPE = "Server"
SYNC_COUNT = 2
DOC = """
Iperf is a 2 machine test (server/client) that measures maximum TCP and UDP
bandwidth performance.

Arguments to run_test:

server_ip     - the ip of the server (automatically filled in)
client_ip     - the ip of the client (automatically filled in)
role          - specifies either client or server (automatically filled in)
udp           - [False/True] specifies if a UDP test should be run. Defaults to
                TCP if unspecified.
bidirectional - [False/True] specifies if a bidirectional test should be run.
                Defaults to False
test_time     - Specifies test duration of each iteration in seconds.
stream_list   - A list containing the number of streams to run the test for. If
                the list is [1,10,100] then the test will run 3 times. If
                bidirectional is set then there will be the specified number of
                bidirectional streams.
"""

from autotest_lib.server import utils


def run(pair):
    job.run_test('iperf', pair=pair, udp=True, bidirectional=True, time=10,
                 stream_list=range(1,11,2))

# grab the pairs (and failures)
(pairs, failures) = utils.form_ntuples_from_machines(machines, 2)

# log the failures
for failure in failures:
    job.record("FAIL", failure[0], "iperf", failure[1])

# now run through each pair and run
job.parallel_simple(run, pairs, log=False)
