# 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_MalformedProbeResp'
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
ATTRIBUTES = ('suite:wifi_correctness_cros_core, suite:wifi_matfunc,'
              'suite:wifi_matfunc_noservo, suite:wifi_matfunc_bcm4371')
DEPENDENCIES = 'wificell'

DOC = """
This test attempts to verify that we can stay connected to a router even
if we receive malformed probe responses.  In this particular case, the
probe response data has a tag with an incorrect length.
"""


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


parallel_simple(run, machines)
