# Copyright 2017 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 = 'bettyzhou, jaineelm, krisr'
NAME = 'android_ACTS.Telephony_MTV_TMO_Conf_CEP_Security_Build'
TIME = 'LONG'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:android_telephony_nightly_security'
DEPENDENCIES = 'carrier:tmobile,telephony:conf,location:mtv'

DOC = """
This test runs telephony sanity against an phones with T-Mobile SIMs.
"""

def run(machine):
    job.run_test('android_ACTS',
                 testbed=hosts.create_testbed(machine),
                 config_file='android1758-telephony-test-station.config',
                 test_file='telephony_tmo_conf_cep',
                 additional_configs=['simcard_list.json', 'tel_data'],
                 override_build_url='git_master-release/sailfish-userdebug/latest',
                 testtracker_project_id=11435,
                 testtracker_owner='android-comms-tvc@google.com',
                 testtracker_extra_env="tmobile",
                 acts_timeout=36000)

parallel_simple(run, machines)
