# Copyright (c) 2021 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_ValidateTestEnvironment.sprint"
PURPOSE = "Verify that the test setup common to all other tests has no failures."
CRITERIA = """
    Check that no errors occur when the setup and tear down of the
    base class CellularTestEnvironment is executed multiple times.
"""
ATTRIBUTES = "suite:cellular_ota_flaky"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "network"
TEST_TYPE = "client"
DEPENDENCIES = "carrier:sprint"

DOC = """
    Verify that the test setup common to all other tests has no failures..
"""

from autotest_lib.client.cros.cellular import test_environment

ITERATIONS_PER_TEST=3

test_env = test_environment.CellularTestEnvironment(enable_temp_containments=False)
job.run_test('cellular_ValidateTestEnvironment',
             tag='Base',
             test_env=test_env,
             iterations=ITERATIONS_PER_TEST)

test_env = test_environment.CellularOTATestEnvironment(enable_temp_containments=False)
job.run_test('cellular_ValidateTestEnvironment',
             tag='OTA',
             test_env=test_env,
             iterations=ITERATIONS_PER_TEST)
