#!/usr/bin/env python3 # # Copyright 2020 - Google # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import time from acts import asserts from acts import signals from acts.test_decorators import test_tracker_info from acts_contrib.test_utils.tel.loggers.protos.telephony_metric_pb2 import \ TelephonyVoiceTestResult from acts_contrib.test_utils.tel.loggers.telephony_metric_logger import \ TelephonyMetricLogger from acts_contrib.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest from acts_contrib.test_utils.tel.tel_defines import MAX_WAIT_TIME_SMS_RECEIVE from acts_contrib.test_utils.tel.tel_defines import WAIT_TIME_ANDROID_STATE_SETTLING from acts_contrib.test_utils.tel.tel_defines import INVALID_SUB_ID from acts_contrib.test_utils.tel.tel_subscription_utils import \ get_incoming_voice_sub_id from acts_contrib.test_utils.tel.tel_subscription_utils import get_subid_from_slot_index from acts_contrib.test_utils.tel.tel_subscription_utils import \ get_outgoing_message_sub_id from acts_contrib.test_utils.tel.tel_subscription_utils import get_default_data_sub_id from acts_contrib.test_utils.tel.tel_subscription_utils import set_message_subid from acts_contrib.test_utils.tel.tel_subscription_utils import set_subid_for_data from acts_contrib.test_utils.tel.tel_subscription_utils import set_voice_sub_id from acts_contrib.test_utils.tel.tel_subscription_utils import set_dds_on_slot_0 from acts_contrib.test_utils.tel.tel_subscription_utils import set_dds_on_slot_1 from acts_contrib.test_utils.tel.tel_subscription_utils import \ get_subid_on_same_network_of_host_ad from acts_contrib.test_utils.tel.tel_test_utils import multithread_func from acts_contrib.test_utils.tel.tel_test_utils import \ sms_send_receive_verify_for_subscription from acts_contrib.test_utils.tel.tel_test_utils import \ sms_in_collision_send_receive_verify_for_subscription from acts_contrib.test_utils.tel.tel_test_utils import \ sms_rx_power_off_multiple_send_receive_verify_for_subscription from acts_contrib.test_utils.tel.tel_test_utils import \ voice_call_in_collision_with_mt_sms_msim from acts_contrib.test_utils.tel.tel_test_utils import mms_send_receive_verify from acts_contrib.test_utils.tel.tel_test_utils import verify_http_connection from acts_contrib.test_utils.tel.tel_test_utils import log_messaging_screen_shot from acts_contrib.test_utils.tel.tel_test_utils import ensure_phones_idle from acts_contrib.test_utils.tel.tel_test_utils import get_slot_index_from_subid from acts_contrib.test_utils.tel.tel_voice_utils import \ phone_setup_voice_general_for_subscription from acts_contrib.test_utils.tel.tel_voice_utils import phone_setup_on_rat from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_on_rat from acts.utils import rand_ascii_str CallResult = TelephonyVoiceTestResult.CallResult.Value class TelLiveGFTDSDSMessageTest(TelephonyBaseTest): def setup_class(self): TelephonyBaseTest.setup_class(self) self.message_lengths = (50, 160, 180) self.tel_logger = TelephonyMetricLogger.for_test_case() def teardown_test(self): ensure_phones_idle(self.log, self.android_devices) def _msim_message_test( self, ad_mo, ad_mt, mo_sub_id, mt_sub_id, msg="SMS", max_wait_time=MAX_WAIT_TIME_SMS_RECEIVE, expected_result=True): """Make MO/MT SMS/MMS at specific slot. Args: ad_mo: Android object of the device sending SMS/MMS ad_mt: Android object of the device receiving SMS/MMS mo_sub_id: Sub ID of MO device mt_sub_id: Sub ID of MT device max_wait_time: Max wait time before SMS/MMS is received. expected_result: True for successful sending/receiving and False on the contrary Returns: True if the result matches expected_result and False on the contrary. """ if msg == "SMS": for length in self.message_lengths: message_array = [rand_ascii_str(length)] if not sms_send_receive_verify_for_subscription( self.log, ad_mo, ad_mt, mo_sub_id, mt_sub_id, message_array, max_wait_time): ad_mo.log.warning( "%s of length %s test failed", msg, length) return False else: ad_mo.log.info( "%s of length %s test succeeded", msg, length) self.log.info("%s test of length %s characters succeeded.", msg, self.message_lengths) elif msg == "MMS": for length in self.message_lengths: message_array = [("Test Message", rand_ascii_str(length), None)] if not mms_send_receive_verify( self.log, ad_mo, ad_mt, message_array, max_wait_time, expected_result): self.log.warning("%s of body length %s test failed", msg, length) return False else: self.log.info( "%s of body length %s test succeeded", msg, length) self.log.info("%s test of body lengths %s succeeded", msg, self.message_lengths) return True def _msim_sms_collision_test( self, ad_mo, ad_mo2, ad_mt, ad_mt2, mo1_sub_id, mo2_sub_id, mt_sub_id, mt2_sub_id): """Send 2 SMS' at the same time. SMS collision can be met when both SMS' are sent to the same recipient. Args: ad_mo: Android object of the device sending SMS ad_mo2: Android object of the device sending SMS ad_mt: Android object of the device receiving SMS ad_mt2: Android object of the device receiving SMS mo1_sub_id: Sub ID of ad_mo mo2_sub_id: Sub ID of ad_mo2 mt_sub_id: Sub ID of ad_mt mt2_sub_id: Sub ID of ad_mt2 Returns: True if both SMS' are sent and received successfully and False on the contrary. """ for length in self.message_lengths: message_array = [rand_ascii_str(length)] message_array2 = [rand_ascii_str(length)] if not sms_in_collision_send_receive_verify_for_subscription( self.log, ad_mo, ad_mo2, ad_mt, ad_mt2, mo1_sub_id, mo2_sub_id, mt_sub_id, mt2_sub_id, message_array, message_array2): self.log.warning( "Test of SMS collision with length %s failed", length) return False else: self.log.info( "Test of SMS collision with length %s succeeded", length) self.log.info( "Test of SMS collision with lengths %s characters succeeded.", self.message_lengths) return True def _msim_rx_power_off_multiple_sms_test( self, ad_mo, ad_mo2, ad_mt, mo1_sub_id, mo2_sub_id, mt_sub_id, mt2_sub_id, num_array_message, num_array_message2): """Power off the recipient and then send 2 SMS'. Make sure all SMS' can be received correctly after the recipient is poweron on again. Args: ad_mo: Android object of the device sending SMS ad_mo2: Android object of the device sending SMS ad_mt: Android object of the device receiving SMS mo1_sub_id: Sub ID of ad_mo mo2_sub_id: Sub ID of ad_mo2 mt_sub_id: Sub ID of ad_mt mt2_sub_id: Sub ID of ad_mt2 num_array_message: Number of messages to be sent by ad_mo num_array_message2: Number of messages to be sent by ad_mo2 Returns: True if all SMS' are sent and received successfully and False on the contrary. """ for length in self.message_lengths: if not sms_rx_power_off_multiple_send_receive_verify_for_subscription( self.log, ad_mo, ad_mo2, ad_mt, mo1_sub_id, mo2_sub_id, mt_sub_id, mt2_sub_id, length, length, num_array_message, num_array_message2): self.log.warning( "Test of multiple SMS with length %s during rx power off" " failed.", length) return False else: self.log.info( "Test of multiple SMS with length %s during rx power off" " succeeded.", length) self.log.info( "Test of multiple SMS with lengths %s characters during rx power" "off succeeded.", self.message_lengths) return True def _test_msim_message( self, mo_slot, mt_slot, dds_slot, msg="SMS", mo_rat=["", ""], mt_rat=["", ""], direction="mo", expected_result=True): """Make MO/MT SMS/MMS at specific slot in specific RAT with DDS at specific slot. Test step: 1. Get sub IDs of specific slots of both MO and MT devices. 2. Switch DDS to specific slot. 3. Check HTTP connection after DDS switch. 4. Set up phones in desired RAT. 5. Send SMS/MMS. Args: mo_slot: Slot sending MO SMS (0 or 1) mt_slot: Slot receiving MT SMS (0 or 1) dds_slot: Preferred data slot mo_rat: RAT for both slots of MO device mt_rat: RAT for both slots of MT device direction: "mo" or "mt" expected_result: True of False Returns: TestFailure if failed. """ ads = self.android_devices if direction == "mo": ad_mo = ads[0] ad_mt = ads[1] else: ad_mo = ads[1] ad_mt = ads[0] if mo_slot is not None: mo_sub_id = get_subid_from_slot_index(self.log, ad_mo, mo_slot) if mo_sub_id == INVALID_SUB_ID: ad_mo.log.warning("Failed to get sub ID at slot %s.", mo_slot) return False mo_other_sub_id = get_subid_from_slot_index( self.log, ad_mo, 1-mo_slot) set_message_subid(ad_mo, mo_sub_id) else: _, mo_sub_id, _ = get_subid_on_same_network_of_host_ad( ads, type="sms") if mo_sub_id == INVALID_SUB_ID: ad_mo.log.warning("Failed to get sub ID at slot %s.", mo_slot) return False mo_slot = "auto" set_message_subid(ad_mo, mo_sub_id) if msg == "MMS": set_subid_for_data(ad_mo, mo_sub_id) ad_mo.droid.telephonyToggleDataConnection(True) ad_mo.log.info("Sub ID for outgoing %s at slot %s: %s", msg, mo_slot, get_outgoing_message_sub_id(ad_mo)) if mt_slot is not None: mt_sub_id = get_subid_from_slot_index(self.log, ad_mt, mt_slot) if mt_sub_id == INVALID_SUB_ID: ad_mt.log.warning("Failed to get sub ID at slot %s.", mt_slot) return False mt_other_sub_id = get_subid_from_slot_index( self.log, ad_mt, 1-mt_slot) set_message_subid(ad_mt, mt_sub_id) else: _, mt_sub_id, _ = get_subid_on_same_network_of_host_ad( ads, type="sms") if mt_sub_id == INVALID_SUB_ID: ad_mt.log.warning("Failed to get sub ID at slot %s.", mt_slot) return False mt_slot = "auto" set_message_subid(ad_mt, mt_sub_id) if msg == "MMS": set_subid_for_data(ad_mt, mt_sub_id) ad_mt.droid.telephonyToggleDataConnection(True) ad_mt.log.info("Sub ID for incoming %s at slot %s: %s", msg, mt_slot, get_outgoing_message_sub_id(ad_mt)) self.log.info("Step 1: Switch DDS.") if dds_slot: if not set_dds_on_slot_1(ads[0]): self.log.warning( "Failed to set DDS at eSIM on %s", ads[0].serial) return False else: if not set_dds_on_slot_0(ads[0]): self.log.warning( "Failed to set DDS at pSIM on %s", ads[0].serial) return False self.log.info("Step 2: Check HTTP connection after DDS switch.") if not verify_http_connection(self.log, ads[0], url="https://www.google.com", retry=5, retry_interval=15, expected_state=True): self.log.error("Failed to verify http connection.") return False else: self.log.info("Verify http connection successfully.") if mo_slot == 0 or mo_slot == 1: phone_setup_on_rat(self.log, ad_mo, mo_rat[1-mo_slot], mo_other_sub_id) else: phone_setup_on_rat(self.log, ad_mo, 'general', sub_id_type='sms') if mt_slot == 0 or mt_slot == 1: phone_setup_on_rat(self.log, ad_mt, mt_rat[1-mt_slot], mt_other_sub_id) else: phone_setup_on_rat(self.log, ad_mt, 'general', sub_id_type='sms') if mo_slot == 0 or mo_slot == 1: mo_phone_setup_func = phone_setup_on_rat( self.log, ad_mo, mo_rat[mo_slot], only_return_fn=True) else: mo_phone_setup_func = phone_setup_voice_general_for_subscription if mt_slot == 0 or mt_slot == 1: mt_phone_setup_func = phone_setup_on_rat( self.log, ad_mt, mt_rat[mt_slot], only_return_fn=True) else: mt_phone_setup_func = phone_setup_voice_general_for_subscription self.log.info("Step 3: Set up phones in desired RAT.") tasks = [(mo_phone_setup_func, (self.log, ad_mo, mo_sub_id)), (mt_phone_setup_func, (self.log, ad_mt, mt_sub_id))] if not multithread_func(self.log, tasks): self.log.error("Phone Failed to Set Up Properly.") return False time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING) self.log.info("Step 4: Send %s.", msg) if msg == "MMS": for ad, current_data_sub_id, current_msg_sub_id in [ [ ads[0], get_default_data_sub_id(ads[0]), get_outgoing_message_sub_id(ads[0]) ], [ ads[1], get_default_data_sub_id(ads[1]), get_outgoing_message_sub_id(ads[1]) ]]: if current_data_sub_id != current_msg_sub_id: ad.log.warning( "Current data sub ID (%s) does not match message" " sub ID (%s). MMS should NOT be sent.", current_data_sub_id, current_msg_sub_id) expected_result = False result = self._msim_message_test(ad_mo, ad_mt, mo_sub_id, mt_sub_id, msg=msg, expected_result=expected_result) if not result: log_messaging_screen_shot(ad_mo, test_name="%s_tx" % msg) log_messaging_screen_shot(ad_mt, test_name="%s_rx" % msg) return result def _test_msim_voice_call_in_collision_with_mt_sms( self, mo_voice_slot, mt_sms_slot, dds_slot, rat=["", ""], call_direction="mo"): """Make MO/MT voice call in collision with MT SMS at specific slot in specific RAT with DDS at specific slot. Args: mo_voice_slot: Slot for voice call. 0 for pSIM or 1 for eSIM mt_sms_slot: Slot for MT SMS. 0 for pSIM or 1 for eSIM dds_slot: Preferred data slot rat: RAT for both slots of the primary device call_direction: "mo" or "mt" Returns: True or False """ ads = self.android_devices ad = ads[0] ad_mo_sms = ads[2] ad_mt_voice = ads[1] mo_voice_sub_id = get_subid_from_slot_index(self.log, ad, mo_voice_slot) if mo_voice_sub_id == INVALID_SUB_ID: ad.log.warning("Failed to get sub ID ar slot %s.", mo_voice_slot) return False mo_voice_other_sub_id = get_subid_from_slot_index( self.log, ad, 1-mo_voice_slot) set_voice_sub_id(ad, mo_voice_sub_id) _, mt_voice_sub_id, _ = get_subid_on_same_network_of_host_ad(ads) set_voice_sub_id(ad_mt_voice, mt_voice_sub_id) ad_mt_voice.log.info("Sub ID for incoming call at slot %s: %s", get_slot_index_from_subid(self.log, ad_mt_voice, mt_voice_sub_id), get_incoming_voice_sub_id(ad_mt_voice)) set_message_subid( ad, get_subid_from_slot_index(self.log, ad, mt_sms_slot)) self.log.info("Step 1: Switch DDS.") if dds_slot: if not set_dds_on_slot_1(ads[0]): ads[0].log.warning("Failed to set DDS at eSIM.") return False else: if not set_dds_on_slot_0(ads[0]): ads[0].log.warning("Failed to set DDS at pSIM.") return False self.log.info("Step 2: Check HTTP connection after DDS switch.") if not verify_http_connection(self.log, ads[0], url="https://www.google.com", retry=5, retry_interval=15, expected_state=True): self.log.error("Failed to verify http connection.") return False else: self.log.info("Verify http connection successfully.") phone_setup_on_rat( self.log, ad, rat[1-mo_voice_slot], mo_voice_other_sub_id) phone_setup_on_rat(self.log, ad, 'general') phone_setup_on_rat(self.log, ad_mt_voice, 'general') phone_setup_on_rat(self.log, ad_mo_sms, 'general', sub_id_type='sms') if mo_voice_slot == 0 or mo_voice_slot == 1: mo_phone_setup_func = phone_setup_on_rat( self.log, ad, rat[mo_voice_slot], only_return_fn=True) is_mo_in_call = is_phone_in_call_on_rat( self.log, ad, rat[mo_voice_slot], only_return_fn=True) self.log.info("Step 3: Set up the phone in desired RAT.") tasks = [(mo_phone_setup_func, (self.log, ad, mo_voice_sub_id))] if not multithread_func(self.log, tasks): self.log.error("Phone Failed to Set Up Properly.") self.tel_logger.set_result(CallResult("CALL_SETUP_FAILURE")) raise signals.TestFailure("Failed", extras={"fail_reason": "Phone Failed to Set Up Properly."}) self.log.info("Step 4: Make a MO voice call in collision with MT SMS.") result = voice_call_in_collision_with_mt_sms_msim( self.log, ad, ad_mo_sms, ad_mt_voice, get_subid_from_slot_index(self.log, ad, mt_sms_slot), get_outgoing_message_sub_id(ad_mo_sms), mo_voice_sub_id, mt_voice_sub_id, [rand_ascii_str(50)], ad, is_mo_in_call, None, call_direction) call_result = True sms_result = True try: self.tel_logger.set_result(result.result_value) if not result: call_result = False except: sms_result = False extras = {} if not sms_result: log_messaging_screen_shot(ad_mo_sms, test_name="sms_tx") log_messaging_screen_shot(ad, test_name="sms_rx") extras = {"sms_fail_reason": "SMS failed"} if not call_result: self.log.error( "Failed to make MO call from %s slot %s to %s slot %s", ad.serial, mo_voice_slot, ad_mt_voice.serial, get_slot_index_from_subid( self.log, ad_mt_voice, mt_voice_sub_id)) extras = {"call_fail_reason": str(result.result_value)} if not sms_result or not call_result: raise signals.TestFailure("Failed", extras=extras) return True def multiple_mt_sms( self, slot_0_nw_gen="volte", slot_1_nw_gen="volte", power_off=False): """Receive multiple MT SMS' at the same time at specific slot in specific RAT to make SMS collision. Args: slot_0_nw_gen: Network generation (RAT) at pSIM slot_1_nw_gen: Network generation (RAT) at eSIM power_off: True if MT SMS' have to be sent when target DUT is power-off. Returns: True of False """ ad = self.android_devices[0] slot_0_subid = get_subid_from_slot_index(ad.log, ad, 0) slot_1_subid = get_subid_from_slot_index(ad.log, ad, 1) if slot_0_subid == INVALID_SUB_ID or slot_1_subid == INVALID_SUB_ID: self.log.error("Not all slots have valid sub ID.") raise signals.TestFailure("Failed", extras={"fail_reason": "Not all slots have valid sub ID"}) slot0_phone_setup_func = phone_setup_on_rat( self.log, ad, slot_0_nw_gen, only_return_fn=True) tasks = [(slot0_phone_setup_func, (self.log, ad, slot_0_subid))] if not multithread_func(self.log, tasks): self.log.error("Phone Failed to Set Up Properly.") self.tel_logger.set_result(CallResult("CALL_SETUP_FAILURE")) raise signals.TestFailure("Failed", extras={"fail_reason": "Phone Failed to Set Up Properly."}) slot1_phone_setup_func = phone_setup_on_rat( self.log, ad, slot_1_nw_gen, only_return_fn=True) tasks = [(slot1_phone_setup_func, (self.log, ad, slot_1_subid))] if not multithread_func(self.log, tasks): self.log.error("Phone Failed to Set Up Properly.") self.tel_logger.set_result(CallResult("CALL_SETUP_FAILURE")) raise signals.TestFailure("Failed", extras={"fail_reason": "Phone Failed to Set Up Properly."}) ad_host = self.android_devices[0] ad_mo_1 = self.android_devices[1] ad_mo_2 = self.android_devices[2] for host_sub_id in [ [slot_0_subid, slot_1_subid], [slot_1_subid, slot_0_subid]]: _, mo1_sub_id, _ = get_subid_on_same_network_of_host_ad( self.android_devices, host_sub_id=host_sub_id[0]) set_message_subid(ad_mo_1, mo1_sub_id) _, _, mo2_sub_id = get_subid_on_same_network_of_host_ad( self.android_devices, host_sub_id=host_sub_id[1]) set_message_subid(ad_mo_2, mo2_sub_id) if power_off: res = self._msim_rx_power_off_multiple_sms_test( ad_mo_1, ad_mo_2, ad_host, mo1_sub_id, mo2_sub_id, host_sub_id[0], host_sub_id[1], 5, 5) else: res = self._msim_sms_collision_test( ad_mo_1, ad_mo_2, ad_host, ad_host, mo1_sub_id, mo2_sub_id, host_sub_id[0], host_sub_id[1]) if not res: log_messaging_screen_shot( ad_host, test_name="sms rx subid: %s" % host_sub_id[0]) log_messaging_screen_shot( ad_host, test_name="sms rx subid: %s" % host_sub_id[1]) log_messaging_screen_shot( ad_mo_1, test_name="sms tx subid: %s" % mo1_sub_id) log_messaging_screen_shot( ad_mo_2, test_name="sms tx subid: %s" % mo2_sub_id) return False return True @test_tracker_info(uuid="4ae61fdf-2078-4e50-ae03-cb2e9299ce8d") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_volte_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["volte", "volte"], msg="SMS", direction="mo") @test_tracker_info(uuid="0e8801f8-7203-45ba-aff3-cb667fd538e1") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_volte_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["volte", "volte"], msg="SMS", direction="mo") @test_tracker_info(uuid="d54c2b4e-2e32-49f0-9536-879eb6f6577e") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_volte_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["volte", "volte"], msg="SMS", direction="mt") @test_tracker_info(uuid="feed9119-df31-46f7-afd8-addf4052422a") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_volte_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["volte", "volte"], msg="SMS", direction="mt") @test_tracker_info(uuid="1da9965c-c863-4e6e-9374-a082fa16d6fd") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_volte_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["volte", "volte"], msg="SMS", direction="mo") @test_tracker_info(uuid="64aec600-851f-4bde-b66c-130c69d1d5b6") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_volte_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["volte", "volte"], msg="SMS", direction="mo") @test_tracker_info(uuid="9ce40c2c-3a59-4612-a0cc-4fcba887856c") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_volte_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["volte", "volte"], msg="SMS", direction="mt") @test_tracker_info(uuid="4e46081d-733d-47d9-be4d-9e492de38bcd") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_volte_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["volte", "volte"], msg="SMS", direction="mt") @test_tracker_info(uuid="5ede96ed-78b5-4cfb-94a3-44c34d610bef") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_volte_csfb_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["volte", "csfb"], msg="SMS", direction="mo") @test_tracker_info(uuid="ae681d36-e450-4453-88a8-e9abf4bdf723") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_volte_csfb_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["volte", "csfb"], msg="SMS", direction="mo") @test_tracker_info(uuid="6490abf9-7fc9-4168-ba20-7da0cb18d96e") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_volte_csfb_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["volte", "csfb"], msg="SMS", direction="mt") @test_tracker_info(uuid="71590c9e-add0-4cbb-a530-07f58d26d954") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_volte_csfb_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["volte", "csfb"], msg="SMS", direction="mt") @test_tracker_info(uuid="1b033914-8a26-48e0-829a-c85b5a93ce42") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_volte_csfb_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["volte", "csfb"], msg="SMS", direction="mo") @test_tracker_info(uuid="15ebac40-5dc3-47ee-a787-ae6f9d71aff6") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_volte_csfb_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["volte", "csfb"], msg="SMS", direction="mo") @test_tracker_info(uuid="b38390d2-b5ab-414b-9c61-2324395a56a6") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_volte_csfb_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["volte", "csfb"], msg="SMS", direction="mt") @test_tracker_info(uuid="1c4a3a34-800a-4117-8c32-b6ec7d58a5cb") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_volte_csfb_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["volte", "csfb"], msg="SMS", direction="mt") @test_tracker_info(uuid="c7645032-8006-448e-ae3e-86c9223482cf") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_csfb_volte_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["csfb", "volte"], msg="SMS", direction="mo") @test_tracker_info(uuid="a4455da1-6314-4d2e-a6eb-c7e063a5fd10") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_csfb_volte_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["csfb", "volte"], msg="SMS", direction="mo") @test_tracker_info(uuid="60828bcc-0111-4d97-ac01-b43ff9c33b11") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_csfb_volte_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["csfb", "volte"], msg="SMS", direction="mt") @test_tracker_info(uuid="d0f04ab9-c1fe-41b1-8ffc-7bf7cbb408ea") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_csfb_volte_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["csfb", "volte"], msg="SMS", direction="mt") @test_tracker_info(uuid="97ad2e6f-8b71-49d4-870c-2f4438351880") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_csfb_volte_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["csfb", "volte"], msg="SMS", direction="mo") @test_tracker_info(uuid="8353bce2-a800-440c-9822-a922343d0ff5") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_csfb_volte_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["csfb", "volte"], msg="SMS", direction="mo") @test_tracker_info(uuid="7659d23d-8cf4-4ace-8e53-b26fc2fca38c") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_csfb_volte_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["csfb", "volte"], msg="SMS", direction="mt") @test_tracker_info(uuid="91577f12-4a0e-4743-82bc-1b7581a6940d") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_csfb_volte_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["csfb", "volte"], msg="SMS", direction="mt") @test_tracker_info(uuid="a5f2c1b0-5ae7-4187-ad63-4782dc47f62b") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_volte_3g_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["volte", "3g"], msg="SMS", direction="mo") @test_tracker_info(uuid="0c983462-5372-4aae-a484-53da4d2b9553") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_volte_3g_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["volte", "3g"], msg="SMS", direction="mo") @test_tracker_info(uuid="8266aaac-9d67-42c3-9260-d80c377b1ef9") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_volte_3g_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["volte", "3g"], msg="SMS", direction="mt") @test_tracker_info(uuid="d6ae749b-5e69-489e-8fda-fcb38aaa6cb0") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_volte_3g_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["volte", "3g"], msg="SMS", direction="mt") @test_tracker_info(uuid="f4985e53-d530-491c-94cd-51ba22a34eff") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_volte_3g_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["volte", "3g"], msg="SMS", direction="mo") @test_tracker_info(uuid="b4fc2379-6937-404a-a659-249c1ccf9dd0") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_volte_3g_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["volte", "3g"], msg="SMS", direction="mo") @test_tracker_info(uuid="e1027a25-b19f-4fb7-bfb9-79919e380c25") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_volte_3g_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["volte", "3g"], msg="SMS", direction="mt") @test_tracker_info(uuid="7cf99f83-0542-42c8-8e72-1653e381aa6c") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_volte_3g_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["volte", "3g"], msg="SMS", direction="mt") @test_tracker_info(uuid="c1084606-a63b-41da-a0cb-2db972b6a8ce") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_3g_volte_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["3g", "volte"], msg="SMS", direction="mo") @test_tracker_info(uuid="4806716c-047a-4a33-a317-97d3cce5d2ca") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_3g_volte_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["3g", "volte"], msg="SMS", direction="mo") @test_tracker_info(uuid="2877ff0b-d567-4683-baa3-20e254ed025c") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_3g_volte_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["3g", "volte"], msg="SMS", direction="mt") @test_tracker_info(uuid="6bf3ea1b-e75c-4844-a311-5a18b1b7a1b8") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_3g_volte_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["3g", "volte"], msg="SMS", direction="mt") @test_tracker_info(uuid="fb7bf8b2-fa44-4e05-a0ab-16e7b1907e6b") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_3g_volte_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["3g", "volte"], msg="SMS", direction="mo") @test_tracker_info(uuid="d9090125-61cb-4ef5-97de-06c2ec8529bd") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_3g_volte_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["3g", "volte"], msg="SMS", direction="mo") @test_tracker_info(uuid="d764c5ea-a34a-4b29-ab50-63bd63ebe5c4") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_3g_volte_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["3g", "volte"], msg="SMS", direction="mt") @test_tracker_info(uuid="fe7d2f8c-eeb6-4ae9-a57d-1636d3153d2b") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_3g_volte_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["3g", "volte"], msg="SMS", direction="mt") @test_tracker_info(uuid="b9a5cb40-4986-4811-90e7-628d1729ccb2") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_csfb_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["csfb", "csfb"], msg="SMS", direction="mo") @test_tracker_info(uuid="220665c1-4c63-4450-b8bb-17fc6df24498") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_csfb_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["csfb", "csfb"], msg="SMS", direction="mo") @test_tracker_info(uuid="968217a6-320f-41f0-b401-7c377309d983") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_csfb_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["csfb", "csfb"], msg="SMS", direction="mt") @test_tracker_info(uuid="c6a5bf63-af40-4619-a0eb-0d1835fde36c") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_csfb_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["csfb", "csfb"], msg="SMS", direction="mt") @test_tracker_info(uuid="ea9f4e72-0dea-4f5f-b5ff-4a0bad0d29a0") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_csfb_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["csfb", "csfb"], msg="SMS", direction="mo") @test_tracker_info(uuid="4eb935f0-2b11-4b2d-8faa-9a022e36813a") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_csfb_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["csfb", "csfb"], msg="SMS", direction="mo") @test_tracker_info(uuid="765e31fd-b412-43a8-a6a8-5d3ae66cab18") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_csfb_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["csfb", "csfb"], msg="SMS", direction="mt") @test_tracker_info(uuid="bc6ada03-6a5e-4fe7-80c4-3aebc9fa426f") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_csfb_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["csfb", "csfb"], msg="SMS", direction="mt") @test_tracker_info(uuid="a42994d0-bdb3-487e-98f2-665899d3edba") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_csfb_3g_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["csfb", "3g"], msg="SMS", direction="mo") @test_tracker_info(uuid="d8ef0ac8-9cb1-4f32-8211-84dee563af00") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_csfb_3g_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["csfb", "3g"], msg="SMS", direction="mo") @test_tracker_info(uuid="f4eb2254-5148-4cf9-b53f-56d8665de645") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_csfb_3g_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["csfb", "3g"], msg="SMS", direction="mt") @test_tracker_info(uuid="fd546290-f7e7-47ff-b165-a9bb01e91c64") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_csfb_3g_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["csfb", "3g"], msg="SMS", direction="mt") @test_tracker_info(uuid="d6994024-e845-48e2-9cd6-d72e97480a8a") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_csfb_3g_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["csfb", "3g"], msg="SMS", direction="mo") @test_tracker_info(uuid="c816165e-49d8-4d0a-8bb5-e64ad910a55a") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_csfb_3g_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["csfb", "3g"], msg="SMS", direction="mo") @test_tracker_info(uuid="647d546f-b325-4b91-be84-0bedf5a33210") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_csfb_3g_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["csfb", "3g"], msg="SMS", direction="mt") @test_tracker_info(uuid="98b7e161-4953-4566-a96c-21545bf05e51") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_csfb_3g_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["csfb", "3g"], msg="SMS", direction="mt") @test_tracker_info(uuid="9a3d1330-e70e-4ac0-a8bc-fec5710a8dcd") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_3g_csfb_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["3g", "csfb"], msg="SMS", direction="mo") @test_tracker_info(uuid="51b4edd3-a867-409e-b367-2fd8cf0eb4a6") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_3g_csfb_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["3g", "csfb"], msg="SMS", direction="mo") @test_tracker_info(uuid="dba9cb2b-84bd-47db-a5a6-826e54a1bbeb") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_3g_csfb_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["3g", "csfb"], msg="SMS", direction="mt") @test_tracker_info(uuid="263494aa-f3c4-450e-b5bf-b9331d9c9dd8") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_3g_csfb_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["3g", "csfb"], msg="SMS", direction="mt") @test_tracker_info(uuid="7ba231b8-edc9-4f64-ba7e-5f0360c4eed5") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_3g_csfb_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["3g", "csfb"], msg="SMS", direction="mo") @test_tracker_info(uuid="ca1e9c35-07f2-4e32-8a59-61efc37f11a4") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_3g_csfb_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["3g", "csfb"], msg="SMS", direction="mo") @test_tracker_info(uuid="f19252c0-8ff6-4267-adcd-f676407333e6") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_3g_csfb_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["3g", "csfb"], msg="SMS", direction="mt") @test_tracker_info(uuid="34ef2001-d80d-4818-b458-1e8a9556e5cd") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_3g_csfb_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["3g", "csfb"], msg="SMS", direction="mt") @test_tracker_info(uuid="947ceba7-9aeb-402c-ba36-4856bc4352eb") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_3g_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["3g", "3g"], msg="SMS", direction="mo") @test_tracker_info(uuid="9f9677e1-1215-49ed-a671-22e7779659a9") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_3g_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["3g", "3g"], msg="SMS", direction="mo") @test_tracker_info(uuid="f77112c8-85e8-4584-a0b7-bba11c23be7d") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_3g_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["3g", "3g"], msg="SMS", direction="mt") @test_tracker_info(uuid="facc19fd-7846-488e-9cf1-755f81d0fee2") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_3g_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["3g", "3g"], msg="SMS", direction="mt") @test_tracker_info(uuid="5a26f35e-c038-409e-8941-7e0b475ebda8") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_3g_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["3g", "3g"], msg="SMS", direction="mo") @test_tracker_info(uuid="c303aa26-0fd0-44d7-b2fc-32782deaf5ea") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mo_3g_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["3g", "3g"], msg="SMS", direction="mo") @test_tracker_info(uuid="45cbddd3-889d-46ab-8d7f-9dd971287155") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_3g_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["3g", "3g"], msg="SMS", direction="mt") @test_tracker_info(uuid="7dacd6b2-9d21-4c4d-bec4-fdfe685cdce8") @TelephonyBaseTest.tel_test_wrap def test_msim_sms_mt_3g_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["3g", "3g"], msg="SMS", direction="mt") @test_tracker_info(uuid="24268e9f-b047-4c67-92f9-22e0bd8b3a11") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_volte_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["volte", "volte"], msg="MMS", direction="mo") @test_tracker_info(uuid="1d72b01d-5ca7-4899-ae57-ecbeff09bc39") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_volte_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["volte", "volte"], msg="MMS", direction="mo") @test_tracker_info(uuid="ca2ad510-7f5e-49e4-861e-d433f86c2237") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_volte_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["volte", "volte"], msg="MMS", direction="mt") @test_tracker_info(uuid="63a0480a-18dd-43e5-82e9-45e008346ea9") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_volte_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["volte", "volte"], msg="MMS", direction="mt") @test_tracker_info(uuid="5e51f0d9-f1b6-4bfe-88ab-f28ebaa6ee55") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_volte_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["volte", "volte"], msg="MMS", direction="mo") @test_tracker_info(uuid="fcc7e8aa-41a4-48a1-9586-d6080c77a79b") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_volte_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["volte", "volte"], msg="MMS", direction="mo") @test_tracker_info(uuid="f633bf56-2d15-462b-994d-e9294d87ca23") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_volte_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["volte", "volte"], msg="MMS", direction="mt") @test_tracker_info(uuid="3c336061-32cf-4e9a-bb1e-b54e3357e644") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_volte_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["volte", "volte"], msg="MMS", direction="mt") @test_tracker_info(uuid="50ee8103-0196-4194-b982-9d07c68e57e4") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_volte_csfb_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["volte", "csfb"], msg="MMS", direction="mo") @test_tracker_info(uuid="ec09405d-b12d-405c-9bfd-ba3eb20eb752") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_volte_csfb_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["volte", "csfb"], msg="MMS", direction="mo") @test_tracker_info(uuid="26bea731-b653-4e9f-98d1-1b290b959bfc") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_volte_csfb_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["volte", "csfb"], msg="MMS", direction="mt") @test_tracker_info(uuid="ecc010da-1798-4da3-b041-13e2b2547548") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_volte_csfb_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["volte", "csfb"], msg="MMS", direction="mt") @test_tracker_info(uuid="cf4c5bd0-525a-497a-a0f8-17acd9dbeabd") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_volte_csfb_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["volte", "csfb"], msg="MMS", direction="mo") @test_tracker_info(uuid="603f22db-913b-4ad3-b148-7c6d3624bc09") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_volte_csfb_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["volte", "csfb"], msg="MMS", direction="mo") @test_tracker_info(uuid="561efaf1-7fe4-4196-991e-d03eee28fb4e") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_volte_csfb_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["volte", "csfb"], msg="MMS", direction="mt") @test_tracker_info(uuid="6f383ef0-d99a-4a3d-b137-e24fa03306b9") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_volte_csfb_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["volte", "csfb"], msg="MMS", direction="mt") @test_tracker_info(uuid="eeaa1262-c2a0-4f47-baa5-7435fa9e9315") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_csfb_volte_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["csfb", "volte"], msg="MMS", direction="mo") @test_tracker_info(uuid="478f5497-cc21-4634-8b97-df70dbe286c0") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_csfb_volte_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["csfb", "volte"], msg="MMS", direction="mo") @test_tracker_info(uuid="1c4af9c6-87d6-438c-aba7-70d8bb4b357e") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_csfb_volte_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["csfb", "volte"], msg="MMS", direction="mt") @test_tracker_info(uuid="825daee3-db6c-404a-a454-cea98182bf5a") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_csfb_volte_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["csfb", "volte"], msg="MMS", direction="mt") @test_tracker_info(uuid="50fe9f3e-eae1-4a01-8655-02340f85037a") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_csfb_volte_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["csfb", "volte"], msg="MMS", direction="mo") @test_tracker_info(uuid="bae89139-f73f-4a06-bb65-a0bae385fae9") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_csfb_volte_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["csfb", "volte"], msg="MMS", direction="mo") @test_tracker_info(uuid="42e897e3-4411-45a0-bf62-3ea6f59c2617") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_csfb_volte_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["csfb", "volte"], msg="MMS", direction="mt") @test_tracker_info(uuid="9847b0c8-517e-42ea-9306-8a4a1cd46cd8") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_csfb_volte_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["csfb", "volte"], msg="MMS", direction="mt") @test_tracker_info(uuid="5057f8e4-19e7-42c0-bc63-1678d8ce1504") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_volte_3g_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["volte", "3g"], msg="MMS", direction="mo") @test_tracker_info(uuid="52bb44ae-0263-4415-8a61-337a8f990f8b") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_volte_3g_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["volte", "3g"], msg="MMS", direction="mo") @test_tracker_info(uuid="deb00e73-b63a-4ed8-8b7f-953704b5d783") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_volte_3g_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["volte", "3g"], msg="MMS", direction="mt") @test_tracker_info(uuid="e0aa9846-2c02-4ba1-aeef-08a673c497ae") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_volte_3g_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["volte", "3g"], msg="MMS", direction="mt") @test_tracker_info(uuid="ef06ae23-6f52-4c3b-b228-5c95ed780cd2") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_volte_3g_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["volte", "3g"], msg="MMS", direction="mo") @test_tracker_info(uuid="69a62cd6-290b-4e58-81ff-0b35ac82262c") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_volte_3g_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["volte", "3g"], msg="MMS", direction="mo") @test_tracker_info(uuid="645cef41-ddf8-49b4-8a58-2da019883f32") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_volte_3g_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["volte", "3g"], msg="MMS", direction="mt") @test_tracker_info(uuid="b0b8aac3-cc85-47d9-828a-8016138fe466") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_volte_3g_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["volte", "3g"], msg="MMS", direction="mt") @test_tracker_info(uuid="1dcebefb-3338-4550-96fa-07b64493db1c") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_3g_volte_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["3g", "volte"], msg="MMS", direction="mo") @test_tracker_info(uuid="3d06854e-5b86-46fb-9ca2-a217b026733d") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_3g_volte_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["3g", "volte"], msg="MMS", direction="mo") @test_tracker_info(uuid="0c0f72bc-4076-411d-8a8d-fc6ae414a73a") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_3g_volte_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["3g", "volte"], msg="MMS", direction="mt") @test_tracker_info(uuid="b63211fa-baf0-4dff-bd18-d7f80e85e551") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_3g_volte_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["3g", "volte"], msg="MMS", direction="mt") @test_tracker_info(uuid="80c2fe4d-e87a-45d7-9b83-23863e75cd94") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_3g_volte_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["3g", "volte"], msg="MMS", direction="mo") @test_tracker_info(uuid="84be29a1-0b29-4785-baaa-6cf84c503fa6") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_3g_volte_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["3g", "volte"], msg="MMS", direction="mo") @test_tracker_info(uuid="591d2948-2257-4a46-8ccb-5c628d85fc43") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_3g_volte_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["3g", "volte"], msg="MMS", direction="mt") @test_tracker_info(uuid="67e4dae5-8ca5-475f-af0e-f91b89df68ed") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_3g_volte_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["3g", "volte"], msg="MMS", direction="mt") @test_tracker_info(uuid="35d33d3e-f618-4ce1-8b40-3dac0ef2731a") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_csfb_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["csfb", "csfb"], msg="MMS", direction="mo") @test_tracker_info(uuid="179e49c7-7066-4285-9b5b-3ef639d8c5e4") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_csfb_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["csfb", "csfb"], msg="MMS", direction="mo") @test_tracker_info(uuid="09d6954f-d760-47e5-8667-3ed317fdbfbc") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_csfb_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["csfb", "csfb"], msg="MMS", direction="mt") @test_tracker_info(uuid="80f8c18f-2bd6-4310-be39-472d7a24e08a") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_csfb_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["csfb", "csfb"], msg="MMS", direction="mt") @test_tracker_info(uuid="b700d261-7616-4226-95cc-59ec54cc2678") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_csfb_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["csfb", "csfb"], msg="MMS", direction="mo") @test_tracker_info(uuid="5cb2cc81-bf3e-4025-b85b-2bf1a4797e41") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_csfb_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["csfb", "csfb"], msg="MMS", direction="mo") @test_tracker_info(uuid="1af2ac12-4d2d-4a36-8c46-8b3013eadab2") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_csfb_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["csfb", "csfb"], msg="MMS", direction="mt") @test_tracker_info(uuid="66d8108e-8dd9-42e3-b2cd-49a538beecf6") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_csfb_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["csfb", "csfb"], msg="MMS", direction="mt") @test_tracker_info(uuid="a35df875-72eb-43d7-874c-a7b3f0aea2a9") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_csfb_3g_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["csfb", "3g"], msg="MMS", direction="mo") @test_tracker_info(uuid="cf718bda-75d6-4906-a33e-110610b01d4d") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_csfb_3g_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["csfb", "3g"], msg="MMS", direction="mo") @test_tracker_info(uuid="342cbc1a-7151-425c-9bd6-81808a5eb7e6") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_csfb_3g_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["csfb", "3g"], msg="MMS", direction="mt") @test_tracker_info(uuid="01e33aa4-27a9-48fd-b9e8-313980d06b0d") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_csfb_3g_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["csfb", "3g"], msg="MMS", direction="mt") @test_tracker_info(uuid="fe527335-731e-49a5-a07e-f4999c536153") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_csfb_3g_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["csfb", "3g"], msg="MMS", direction="mo") @test_tracker_info(uuid="1c56f866-3b3c-45c0-9c13-face44246aca") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_csfb_3g_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["csfb", "3g"], msg="MMS", direction="mo") @test_tracker_info(uuid="4affd77a-afdc-4ac9-ba8a-a3599efe1e96") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_csfb_3g_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["csfb", "3g"], msg="MMS", direction="mt") @test_tracker_info(uuid="8440c05e-28d9-45c7-b32e-127f240d12f0") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_csfb_3g_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["csfb", "3g"], msg="MMS", direction="mt") @test_tracker_info(uuid="a53ebb84-945e-4068-a78a-fd78362e8073") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_3g_csfb_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["3g", "csfb"], msg="MMS", direction="mo") @test_tracker_info(uuid="23bedcbc-7c09-430d-a162-04de75244fd8") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_3g_csfb_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["3g", "csfb"], msg="MMS", direction="mo") @test_tracker_info(uuid="e1e1ef53-d91b-4b10-9bd6-e065ca48ab94") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_3g_csfb_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["3g", "csfb"], msg="MMS", direction="mt") @test_tracker_info(uuid="e813ae3b-b875-43f6-a055-d2119cec9786") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_3g_csfb_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["3g", "csfb"], msg="MMS", direction="mt") @test_tracker_info(uuid="d5863aab-a46a-4363-8bf8-5dcfc29a9055") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_3g_csfb_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["3g", "csfb"], msg="MMS", direction="mo") @test_tracker_info(uuid="79a0bd58-0de0-471e-9e53-9cc655700428") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_3g_csfb_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["3g", "csfb"], msg="MMS", direction="mo") @test_tracker_info(uuid="e9a340f4-22a7-4786-bb5b-370295324d5a") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_3g_csfb_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["3g", "csfb"], msg="MMS", direction="mt") @test_tracker_info(uuid="8a261b43-2532-4c47-ac0c-3a5dd0d51b69") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_3g_csfb_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["3g", "csfb"], msg="MMS", direction="mt") @test_tracker_info(uuid="2efdf7da-d2ec-4580-a164-5f7b740f9ac6") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_3g_psim_dds_slot_0(self): return self._test_msim_message( 0, None, 0, mo_rat=["3g", "3g"], msg="MMS", direction="mo") @test_tracker_info(uuid="459e9b40-ad4e-4a89-ac89-f3c8ec472d3f") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_3g_psim_dds_slot_1(self): return self._test_msim_message( 0, None, 1, mo_rat=["3g", "3g"], msg="MMS", direction="mo") @test_tracker_info(uuid="130a0e85-1653-4ddf-81b9-dadd26dde1e3") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_3g_psim_dds_slot_0(self): return self._test_msim_message( None, 0, 0, mt_rat=["3g", "3g"], msg="MMS", direction="mt") @test_tracker_info(uuid="e81f0b33-38b3-4a4d-9e05-fb44a689230b") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_3g_psim_dds_slot_1(self): return self._test_msim_message( None, 0, 1, mt_rat=["3g", "3g"], msg="MMS", direction="mt") @test_tracker_info(uuid="61894370-93b5-4ab5-80c7-d50948d38471") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_3g_esim_dds_slot_0(self): return self._test_msim_message( 1, None, 0, mo_rat=["3g", "3g"], msg="MMS", direction="mo") @test_tracker_info(uuid="8d41ee9a-fed9-4472-ada7-007e56690c67") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mo_3g_esim_dds_slot_1(self): return self._test_msim_message( 1, None, 1, mo_rat=["3g", "3g"], msg="MMS", direction="mo") @test_tracker_info(uuid="6aa41641-2619-48f6-8c5f-1c06260f0e28") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_3g_esim_dds_slot_0(self): return self._test_msim_message( None, 1, 0, mt_rat=["3g", "3g"], msg="MMS", direction="mt") @test_tracker_info(uuid="94d8e05d-eb99-4a71-be00-e725cbd05cae") @TelephonyBaseTest.tel_test_wrap def test_msim_mms_mt_3g_esim_dds_slot_1(self): return self._test_msim_message( None, 1, 1, mt_rat=["3g", "3g"], msg="MMS", direction="mt") @test_tracker_info(uuid="207a23b7-17f1-4e27-892d-6c276f463b07") @TelephonyBaseTest.tel_test_wrap def test_sms_mo_mt_at_the_same_time( self, slot_0_nw_gen="volte", slot_1_nw_gen="volte"): ad = self.android_devices[0] slot_0_subid = get_subid_from_slot_index(ad.log, ad, 0) slot_1_subid = get_subid_from_slot_index(ad.log, ad, 1) if slot_0_subid == INVALID_SUB_ID or slot_1_subid == INVALID_SUB_ID: self.log.error("Not all slots have valid sub ID.") raise signals.TestFailure("Failed", extras={"fail_reason": "Not all slots have valid sub ID"}) slot0_phone_setup_func = phone_setup_on_rat( self.log, ad, slot_0_nw_gen, only_return_fn=True) tasks = [(slot0_phone_setup_func, (self.log, ad, slot_0_subid))] if not multithread_func(self.log, tasks): self.log.error("Phone Failed to Set Up Properly.") self.tel_logger.set_result(CallResult("CALL_SETUP_FAILURE")) raise signals.TestFailure("Failed", extras={"fail_reason": "Phone Failed to Set Up Properly."}) slot1_phone_setup_func = phone_setup_on_rat( self.log, ad, slot_1_nw_gen, only_return_fn=True) tasks = [(slot1_phone_setup_func, (self.log, ad, slot_1_subid))] if not multithread_func(self.log, tasks): self.log.error("Phone Failed to Set Up Properly.") self.tel_logger.set_result(CallResult("CALL_SETUP_FAILURE")) raise signals.TestFailure("Failed", extras={"fail_reason": "Phone Failed to Set Up Properly."}) ad_host = self.android_devices[0] ad_mt = self.android_devices[1] ad_mo = self.android_devices[2] for ads in [[slot_0_subid, slot_1_subid], [slot_1_subid, slot_0_subid]]: set_message_subid(ad_host, ads[0]) _, mt_sub_id, _ = get_subid_on_same_network_of_host_ad( self.android_devices, host_sub_id=ads[0]) _, _, mo_sub_id = get_subid_on_same_network_of_host_ad( self.android_devices, host_sub_id=ads[1]) set_message_subid(ad_mo, mo_sub_id) res = self._msim_sms_collision_test( ad_host, ad_mo, ad_mt, ad_host, ads[0], mo_sub_id, mt_sub_id, ads[1]) if not res: log_messaging_screen_shot( ad_host, test_name="sms tx subid: %s; sms rx subid: %s" % ( ads[0], ads[1])) log_messaging_screen_shot( ad_mo, test_name="sms tx subid: %s" % mo_sub_id) log_messaging_screen_shot( ad_mt, test_name="sms rx subid: %s" % mt_sub_id) return False @test_tracker_info(uuid="e0483de8-f760-4e40-a451-a867c7f94d3a") @TelephonyBaseTest.tel_test_wrap def test_sms_mt_at_both_slots_at_the_same_time( self, slot_0_nw_gen="volte", slot_1_nw_gen="volte"): return self.multiple_mt_sms( slot_0_nw_gen="volte", slot_1_nw_gen="volte", power_off=False) @test_tracker_info(uuid="6594e5b5-6baf-4f1e-865b-0ea70ef23aee") @TelephonyBaseTest.tel_test_wrap def test_sms_mt_at_both_slots_when_power_off( self, slot_0_nw_gen="volte", slot_1_nw_gen="volte"): return self.multiple_mt_sms( slot_0_nw_gen="volte", slot_1_nw_gen="volte", power_off=True) @test_tracker_info(uuid="13dfe0a1-c393-4c1a-b636-ac39d47a70b5") @TelephonyBaseTest.tel_test_wrap def test_interworking_between_mo_voice_call_in_collision_with_mt_sms(self): result = True self.log.info("Scenario 1: MO voice call at slot 0 & MT SMS at slot 0") if not self._test_msim_voice_call_in_collision_with_mt_sms( 0, 0, 0, rat=["volte", "volte"], call_direction="mo"): result = False self.log.info("Scenario 2: MO voice call at slot 0 & MT SMS at slot 1") if not self._test_msim_voice_call_in_collision_with_mt_sms( 0, 1, 0, rat=["volte", "volte"], call_direction="mo"): result = False self.log.info("Scenario 3: MO voice call at slot 1 & MT SMS at slot 0") if not self._test_msim_voice_call_in_collision_with_mt_sms( 1, 0, 0, rat=["volte", "volte"], call_direction="mo"): result = False self.log.info("Scenario 1: MO voice call at slot 1 & MT SMS at slot 1") if not self._test_msim_voice_call_in_collision_with_mt_sms( 1, 1, 0, rat=["volte", "volte"], call_direction="mo"): result = False return result @test_tracker_info(uuid="a5c90676-c2ba-4ac6-b639-8f895d98480c") @TelephonyBaseTest.tel_test_wrap def test_interworking_between_mt_voice_call_in_collision_with_mt_sms(self): result = True self.log.info("Scenario 1: MT voice call at slot 0 & MT SMS at slot 0") if not self._test_msim_voice_call_in_collision_with_mt_sms( 0, 0, 0, rat=["volte", "volte"], call_direction="mt"): result = False self.log.info("Scenario 2: MT voice call at slot 0 & MT SMS at slot 1") if not self._test_msim_voice_call_in_collision_with_mt_sms( 0, 1, 0, rat=["volte", "volte"], call_direction="mt"): result = False self.log.info("Scenario 3: MT voice call at slot 1 & MT SMS at slot 0") if not self._test_msim_voice_call_in_collision_with_mt_sms( 1, 0, 0, rat=["volte", "volte"], call_direction="mt"): result = False self.log.info("Scenario 4: MT voice call at slot 1 & MT SMS at slot 1") if not self._test_msim_voice_call_in_collision_with_mt_sms( 1, 1, 0, rat=["volte", "volte"], call_direction="mt"): result = False return result