# Copyright (c) 2015 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.

from autotest_lib.server import utils

AUTHOR = 'harpreet'
TIME = 'SHORT'
NAME = 'cellular_ChromeEndToEnd.ethernetPreferred'
TEST_TYPE = 'Server'
DEPENDENCIES = 'servo_state:WORKING'

DOC = """
Tests that the device prefers ethernet over cellular network.
"""

args_dict = utils.args_to_dict(args)
servo_args = hosts.CrosHost.get_servo_arguments(args_dict)

def run(machine):
    host = hosts.create_host(machine, servo_args=servo_args)
    job.run_test('cellular_ChromeEndToEnd',
                 host=host,
                 raw_cmdline_args=args,
                 test='ethernetPreferred')

parallel_simple(run, machines)
