# Copyright (c) 2012 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 = "ChromeOS Team"
NAME = "cellular_SafetyDance.pseudomodem"
PURPOSE = "Stress-test all connman 3G operations."
CRITERIA = """
This test will fail if any DBus call times out or flimflam crashes.
"""
ATTRIBUTES = "suite:cellular_pseudomodem"
TIME = "SHORT"
TEST_CATEGORY = "Stress"
TEST_CLASS = "network"
TEST_TYPE = "client"

DOC = """
  Stress-tests all connman 3G operations.

  This test runs a long series of 3G operations in pseudorandom order. All of
  these 3G operations must return a convincing result (EINPROGRESS or no error).
"""

from autotest_lib.client.cros.cellular import test_environment

# 3GPP
test_env = test_environment.CellularPseudoMMTestEnvironment(
        pseudomm_args=({'family': '3GPP'},))
job.run_test('cellular_SafetyDance', test_env=test_env, tag='pseudomodem_3GPP')

# CDMA
test_env = test_environment.CellularPseudoMMTestEnvironment(
        pseudomm_args=({'family': 'CDMA'},))
job.run_test('cellular_SafetyDance', test_env=test_env, tag='pseudomodem_CDMA')
