# Copyright 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.

AUTHOR = 'silberst, pstew, quiche'
NAME = 'network_WiFi_DisconnectReason.ap_gone'
TIME = 'SHORT'
TEST_TYPE = 'Server'
ATTRIBUTES = ('suite:wifi_matfunc')
DEPENDENCIES = 'wificell'

DOC = """
This test reads (but does not verify) the reported DiconnectReason property
reported by supplicant when the AP is abruptly disabled.
"""


def run(machine):
    host = hosts.create_host(machine)
    job.run_test('network_WiFi_DisconnectReason',
                 host=host,
                 tag=NAME.split('.')[1],
                 disconnect_trigger='AP gone',
                 raw_cmdline_args=args)


parallel_simple(run, machines)
