# Copyright 2015 The Chromium 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, zqiu, pstew, quiche'
NAME = 'network_WiFi_UpdateRouter'
TIME = 'SHORT'
TEST_TYPE = 'Server'
DEPENDENCIES = 'wificell'
ATTRIBUTES = 'suite:wifi_update_router'
SUITE = 'wifi_update_router'

DOC = """
This test updates the router in a WiFi cell to the latest stable version.
"""


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


parallel_simple(run, machines)
