1#!/usr/bin/env python3.4
2#
3#   Copyright 2020 - Google
4#
5#   Licensed under the Apache License, Version 2.0 (the "License");
6#   you may not use this file except in compliance with the License.
7#   You may obtain a copy of the License at
8#
9#       http://www.apache.org/licenses/LICENSE-2.0
10#
11#   Unless required by applicable law or agreed to in writing, software
12#   distributed under the License is distributed on an "AS IS" BASIS,
13#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14#   See the License for the specific language governing permissions and
15#   limitations under the License.
16"""
17    Test Script for 5G SMS scenarios
18"""
19
20import time
21from acts.utils import rand_ascii_str
22from acts.test_decorators import test_tracker_info
23from acts_contrib.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest
24from acts_contrib.test_utils.tel.tel_defines import WAIT_TIME_ANDROID_STATE_SETTLING
25from acts_contrib.test_utils.tel.tel_defines import WFC_MODE_WIFI_PREFERRED
26from acts_contrib.test_utils.tel.tel_defines import WFC_MODE_CELLULAR_PREFERRED
27from acts_contrib.test_utils.tel.tel_test_utils import ensure_phones_idle
28from acts_contrib.test_utils.tel.tel_test_utils import hangup_call
29from acts_contrib.test_utils.tel.tel_test_utils import ensure_phone_default_state
30from acts_contrib.test_utils.tel.tel_test_utils import multithread_func
31from acts_contrib.test_utils.tel.tel_test_utils import toggle_airplane_mode
32from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_iwlan
33from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_volte
34from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_csfb
35from acts_contrib.test_utils.tel.tel_voice_utils import phone_setup_volte
36from acts_contrib.test_utils.tel.tel_voice_utils import phone_setup_iwlan
37from acts_contrib.test_utils.tel.tel_5g_test_utils import disable_apm_mode_both_devices
38from acts_contrib.test_utils.tel.tel_5g_test_utils import provision_device_for_5g
39from acts_contrib.test_utils.tel.tel_5g_test_utils import provision_both_devices_for_volte
40from acts_contrib.test_utils.tel.tel_5g_test_utils import provision_both_devices_for_wfc_cell_pref
41from acts_contrib.test_utils.tel.tel_5g_test_utils import provision_both_devices_for_wfc_wifi_pref
42from acts_contrib.test_utils.tel.tel_5g_test_utils import verify_5g_attach_for_both_devices
43from acts_contrib.test_utils.tel.tel_5g_test_utils import provision_both_devices_for_csfb
44from acts_contrib.test_utils.tel.tel_5g_test_utils import provision_device_for_5g_nsa
45from acts_contrib.test_utils.tel.tel_5g_utils import is_current_network_5g_nsa
46from acts_contrib.test_utils.tel.tel_sms_utils import _sms_test_mo
47from acts_contrib.test_utils.tel.tel_sms_utils import _sms_test_mt
48from acts_contrib.test_utils.tel.tel_sms_utils import _long_sms_test_mo
49from acts_contrib.test_utils.tel.tel_sms_utils import test_sms_mo_in_call
50
51
52class Nsa5gSmsTest(TelephonyBaseTest):
53    def setup_class(self):
54        super().setup_class()
55
56    def setup_test(self):
57        TelephonyBaseTest.setup_test(self)
58
59    def teardown_test(self):
60        ensure_phones_idle(self.log, self.android_devices)
61
62
63    """ Tests Begin """
64
65
66    @test_tracker_info(uuid="4a64a262-7433-4a7f-b5c6-a36ff60aeaa2")
67    @TelephonyBaseTest.tel_test_wrap
68    def test_5g_nsa_sms_mo_mt(self):
69        """Test SMS between two phones in 5g NSA
70
71        Provision devices in 5g NSA
72        Send and Verify SMS from PhoneA to PhoneB
73        Verify both devices are still on 5g NSA
74
75        Returns:
76            True if success.
77            False if failed.
78        """
79        ads = self.android_devices
80        if not provision_device_for_5g(self.log, ads):
81            return False
82
83        if not _sms_test_mo(self.log, ads):
84            return False
85
86        if not verify_5g_attach_for_both_devices(self.log, ads):
87            return False
88
89        self.log.info("PASS - SMS test over 5G NSA validated")
90        return True
91
92
93    @test_tracker_info(uuid="52b16764-0c9e-45c0-910f-a39d17c7cf7e")
94    @TelephonyBaseTest.tel_test_wrap
95    def test_5g_nsa_sms_mo_general(self):
96        """Test MO SMS for 1 phone in 5g NSA. The other phone in any network
97
98        Provision PhoneA in 5g NSA
99        Send and Verify SMS from PhoneA to PhoneB
100        Verify phoneA is still on 5g NSA
101
102        Returns:
103            True if success.
104            False if failed.
105        """
106        ads = self.android_devices
107
108        tasks = [(provision_device_for_5g, (self.log, ads[0])),
109                 (ensure_phone_default_state, (self.log, ads[1]))]
110        if not multithread_func(self.log, tasks):
111            return False
112
113        if not _sms_test_mo(self.log, ads):
114            return False
115
116        if not is_current_network_5g_nsa(ads[0]):
117            return False
118
119        self.log.info("PASS - MO SMS test over 5G NSA validated")
120        return True
121
122
123    @test_tracker_info(uuid="e9b2494a-0e40-449c-b877-1e4ddc78c536")
124    @TelephonyBaseTest.tel_test_wrap
125    def test_5g_nsa_sms_mt_general(self):
126        """Test MT SMS for 1 phone in 5g NSA. The other phone in any network
127
128        Provision PhoneA in 5g NSA
129        Send and Verify SMS from PhoneB to PhoneA
130        Verify phoneA is still on 5g NSA
131
132        Returns:
133            True if success.
134            False if failed.
135        """
136        ads = self.android_devices
137
138        tasks = [(provision_device_for_5g, (self.log, ads[0])),
139                 (ensure_phone_default_state, (self.log, ads[1]))]
140        if not multithread_func(self.log, tasks):
141            return False
142
143        if not _sms_test_mt(self.log, ads):
144            return False
145
146        if not is_current_network_5g_nsa(ads[0]):
147            return False
148
149        self.log.info("PASS - MT SMS test over 5G NSA validated")
150        return True
151
152
153    @test_tracker_info(uuid="2ce809d4-cbf6-4233-81ad-43f91107b201")
154    @TelephonyBaseTest.tel_test_wrap
155    def test_5g_nsa_sms_mo_mt_volte(self):
156        """Test SMS between two phones with VoLTE on 5G NSA
157
158        Provision devices on VoLTE
159        Provision devices in 5g NSA
160        Send and Verify SMS from PhoneA to PhoneB
161        Verify both devices are still on 5g NSA
162
163        Returns:
164            True if success.
165            False if failed.
166        """
167
168        ads = self.android_devices
169        if not provision_both_devices_for_volte(self.log, ads):
170            return False
171
172        if not provision_device_for_5g(self.log, ads):
173            return False
174
175        if not _sms_test_mo(self.log, ads):
176            return False
177
178        if not hangup_call(self.log, ads[0]):
179            ads[0].log.info("Failed to hang up call.!")
180            return False
181
182        if not verify_5g_attach_for_both_devices(self.log, ads):
183            return False
184
185        self.log.info("PASS - VoLTE SMS test over 5G NSA validated")
186        return True
187
188
189    @test_tracker_info(uuid="e51f3dbb-bb16-4400-b2be-f9422f511087")
190    @TelephonyBaseTest.tel_test_wrap
191    def test_5g_nsa_sms_mo_volte(self):
192        """Test MO SMS with VoLTE on 5G NSA. The other phone in any network
193
194        Provision PhoneA on VoLTE
195        Provision PhoneA in 5g NSA
196        Send and Verify SMS from PhoneA to PhoneB
197        Verify PhoneA is still on 5g NSA
198
199        Returns:
200            True if success.
201            False if failed.
202        """
203
204        ads = self.android_devices
205        if not phone_setup_volte(self.log, ads[0]):
206            return False
207
208        tasks = [(provision_device_for_5g, (self.log, ads[0])),
209                 (ensure_phone_default_state, (self.log, ads[1]))]
210        if not multithread_func(self.log, tasks):
211            return False
212
213        if not _sms_test_mo(self.log, ads):
214            return False
215
216        if not is_current_network_5g_nsa(ads[0]):
217            return False
218
219        self.log.info("PASS - MO VoLTE SMS test over 5G NSA validated")
220        return True
221
222
223    @test_tracker_info(uuid="5217d427-04a2-4b2b-9ed8-28951e71fc21")
224    @TelephonyBaseTest.tel_test_wrap
225    def test_5g_nsa_sms_mt_volte(self):
226        """Test MT SMS with VoLTE on 5G NSA. The other phone in any network
227
228        Provision PhoneA on VoLTE
229        Provision PhoneA in 5g NSA
230        Send and Verify SMS from PhoneB to PhoneA
231        Verify phoneA is still on 5g NSA
232
233        Returns:
234            True if success.
235            False if failed.
236        """
237
238        ads = self.android_devices
239        if not phone_setup_volte(self.log, ads[0]):
240            return False
241
242        tasks = [(provision_device_for_5g, (self.log, ads[0])),
243                 (ensure_phone_default_state, (self.log, ads[1]))]
244        if not multithread_func(self.log, tasks):
245            return False
246
247        if not _sms_test_mt(self.log, ads):
248            return False
249
250        if not is_current_network_5g_nsa(ads[0]):
251            return False
252
253        self.log.info("PASS - MT VoLTE SMS test over 5G NSA validated")
254        return True
255
256
257    @test_tracker_info(uuid="49bfb4b3-a6ec-45d4-ad96-09282fb07d1d")
258    @TelephonyBaseTest.tel_test_wrap
259    def test_5g_nsa_sms_mo_mt_in_call_volte(self):
260        """ Test MO SMS during a MO VoLTE call over 5G NSA.
261
262        Provision devices on VoLTE
263        Provision devices in 5g NSA
264        Make a Voice call from PhoneA to PhoneB
265        Send and Verify SMS from PhoneA to PhoneB
266        Verify both devices are still on 5g NSA
267
268        Returns:
269            True if pass; False if fail.
270        """
271        ads = self.android_devices
272        if not provision_both_devices_for_volte(self.log, ads):
273            return False
274        time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
275
276        if not provision_device_for_5g(self.log, ads):
277            return False
278
279        if not test_sms_mo_in_call(self.log,
280                                   ads,
281                                   caller_func=is_phone_in_call_volte):
282            return False
283
284        if not verify_5g_attach_for_both_devices(self.log, ads):
285            return False
286        return True
287
288
289    @test_tracker_info(uuid="3d5c8f60-1eaa-4f4a-b539-c529fa36db91")
290    @TelephonyBaseTest.tel_test_wrap
291    def test_5g_nsa_sms_mo_in_call_volte(self):
292        """ Test MO SMS during a MO VoLTE call over 5G NSA.
293
294        Provision PhoneA on VoLTE
295        Provision PhoneA in 5g NSA
296        Make a Voice call from PhoneA to PhoneB
297        Send and Verify SMS from PhoneA to PhoneB
298        Verify phoneA is still on 5g NSA
299
300        Returns:
301            True if pass; False if fail.
302        """
303        ads = self.android_devices
304        if not phone_setup_volte(self.log, ads[0]):
305            return False
306        time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
307
308        tasks = [(provision_device_for_5g, (self.log, ads[0])),
309                 (ensure_phone_default_state, (self.log, ads[1]))]
310        if not multithread_func(self.log, tasks):
311            return False
312
313        if not test_sms_mo_in_call(self.log,
314                                   ads,
315                                   caller_func=is_phone_in_call_volte):
316            return False
317
318        if not is_current_network_5g_nsa(ads[0]):
319            return False
320        return True
321
322
323    @test_tracker_info(uuid="c71813f3-bb04-4115-8519-e23046349689")
324    @TelephonyBaseTest.tel_test_wrap
325    def test_5g_nsa_sms_mt_in_call_volte(self):
326        """ Test MT SMS during a MT VoLTE call over 5G NSA.
327
328        Provision PhoneA on VoLTE
329        Provision PhoneA in 5g NSA
330        Make a Voice call from PhoneB to PhoneA
331        Send and Verify SMS from PhoneB to PhoneA
332        Verify phoneA is still on 5g NSA
333
334        Returns:
335            True if pass; False if fail.
336        """
337        ads = self.android_devices
338        if not phone_setup_volte(self.log, ads[0]):
339            return False
340        time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
341
342        tasks = [(provision_device_for_5g, (self.log, ads[0])),
343                 (ensure_phone_default_state, (self.log, ads[1]))]
344        if not multithread_func(self.log, tasks):
345            return False
346
347        if not test_sms_mo_in_call(self.log,
348                                   [ads[1], ads[0]],
349                                   callee_func=is_phone_in_call_volte):
350            return False
351
352        if not is_current_network_5g_nsa(ads[0]):
353            return False
354        return True
355
356
357    @test_tracker_info(uuid="1f914d5c-ac24-4794-9fcb-cb28e483d69a")
358    @TelephonyBaseTest.tel_test_wrap
359    def test_5g_nsa_sms_mo_mt_iwlan(self):
360        """ Test SMS text function between two phones,
361        Phones in APM, WiFi connected, WFC Cell Preferred mode.
362
363        Disable APM on both devices
364        Provision devices in 5g NSA
365        Provision devices for WFC Cell Pref with APM ON
366        Send and Verify SMS from PhoneA to PhoneB
367
368        Returns:
369            True if pass; False if fail.
370        """
371
372        ads = self.android_devices
373        if not disable_apm_mode_both_devices(self.log, ads):
374            return False
375
376        if not provision_device_for_5g(self.log, ads):
377            return False
378
379        if not provision_both_devices_for_wfc_cell_pref(self.log,
380                                                        ads,
381                                                        self.wifi_network_ssid,
382                                                        self.wifi_network_pass,
383                                                        apm_mode=True):
384            return False
385        time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
386
387        if not _sms_test_mo(self.log, ads):
388            return False
389
390        self.log.info("PASS - iwlan sms test over 5g nsa validated")
391        return True
392
393
394    @test_tracker_info(uuid="7274be32-b9dd-4ce3-83d1-f32ab14ce05e")
395    @TelephonyBaseTest.tel_test_wrap
396    def test_5g_nsa_sms_mo_mt_iwlan_apm_off(self):
397        """ Test MO SMS, Phone in APM off, WiFi connected, WFC WiFi Preferred mode.
398
399        Disable APM on both devices
400        Provision devices in 5g NSA
401        Provision devices for WFC Wifi Pref with APM OFF
402        Send and Verify SMS from PhoneA to PhoneB
403        Verify 5g NSA attach for both devices
404
405        Returns:
406            True if pass; False if fail.
407        """
408
409        ads = self.android_devices
410        if not disable_apm_mode_both_devices(self.log, ads):
411            return False
412
413        if not provision_device_for_5g(self.log, ads):
414            return False
415
416        if not provision_both_devices_for_wfc_wifi_pref(self.log,
417                                                        ads,
418                                                        self.wifi_network_ssid,
419                                                        self.wifi_network_pass,
420                                                        apm_mode=False):
421            return False
422        time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
423
424        if not _sms_test_mo(self.log, ads):
425            self.log.error("failed to send receive sms over 5g nsa")
426            return False
427        self.log.info("PASS - iwlan sms test over 5g nsa validated")
428
429        if not verify_5g_attach_for_both_devices(self.log, ads):
430            return False
431        return True
432
433
434    @test_tracker_info(uuid="2d1787f2-d6fe-4b41-b389-2a8f817594e4")
435    @TelephonyBaseTest.tel_test_wrap
436    def test_5g_nsa_sms_mo_mt_in_call_iwlan(self):
437        """ Test MO SMS, Phone in APM, WiFi connected, WFC WiFi Preferred mode.
438
439        Disable APM on both devices
440        Provision devices in 5g NSA
441        Provision devices for WFC Wifi Pref with APM ON
442        Make a Voice call from PhoneA to PhoneB
443        Send and Verify SMS from PhoneA to PhoneB
444
445        Returns:
446            True if pass; False if fail.
447        """
448
449        ads = self.android_devices
450
451        if not disable_apm_mode_both_devices(self.log, ads):
452            return False
453
454        if not provision_device_for_5g(self.log, ads):
455            return False
456
457        if not provision_both_devices_for_wfc_wifi_pref(self.log,
458                                                        ads,
459                                                        self.wifi_network_ssid,
460                                                        self.wifi_network_pass,
461                                                        apm_mode=True):
462            return False
463        time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
464
465        return test_sms_mo_in_call(self.log,
466                                   ads,
467                                   caller_func=is_phone_in_call_iwlan)
468
469
470    @test_tracker_info(uuid="784062e8-02a4-49ce-8fc1-5359ab40bbdd")
471    @TelephonyBaseTest.tel_test_wrap
472    def test_5g_nsa_sms_long_message_mo_mt(self):
473        """Test SMS basic function between two phone. Phones in nsa 5G network.
474
475        Airplane mode is off.
476        Send SMS from PhoneA to PhoneB.
477        Verify received message on PhoneB is correct.
478
479        Returns:
480            True if success.
481            False if failed.
482        """
483
484        ads = self.android_devices
485
486        if not disable_apm_mode_both_devices(self.log, ads):
487            return False
488
489        if not provision_device_for_5g(self.log, ads):
490            return False
491
492        return _long_sms_test_mo(self.log, ads)
493
494
495    @test_tracker_info(uuid="45dbd61a-6a90-473e-9cfa-03e2408d5f15")
496    @TelephonyBaseTest.tel_test_wrap
497    def test_5g_nsa_sms_mo_mt_in_call_csfb(self):
498        """ Test MO/MT SMS during a MO csfb call over 5G NSA.
499
500        Disable APM on both devices
501        Set up PhoneA/B are in CSFB mode.
502        Provision PhoneA/B in 5g NSA.
503        Make sure PhoneA/B is able to make/receive call.
504        Call from PhoneA to PhoneB, accept on PhoneB, send SMS on PhoneA,
505         receive SMS on PhoneB.
506
507        Returns:
508            True if pass; False if fail.
509        """
510        ads = self.android_devices
511
512        if not disable_apm_mode_both_devices(self.log, ads):
513            return False
514
515        if not provision_both_devices_for_csfb(self.log, ads):
516            return False
517        time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
518
519        if not provision_device_for_5g_nsa(self.log, ads):
520            return False
521
522        return test_sms_mo_in_call(self.log,
523                                   ads,
524                                   caller_func=is_phone_in_call_csfb)
525
526
527    @test_tracker_info(uuid="2d375f20-a785-42e0-b5a1-968d19bc693d")
528    @TelephonyBaseTest.tel_test_wrap
529    def test_5g_nsa_sms_mo_iwlan(self):
530        """ Test MO SMS for 1 phone in APM,
531        WiFi connected, WFC Cell Preferred mode.
532
533        Disable APM on PhoneA
534        Provision PhoneA in 5g NSA
535        Provision PhoneA for WFC Cell Pref with APM ON
536        Send and Verify SMS from PhoneA to PhoneB
537
538        Returns:
539            True if pass; False if fail.
540        """
541
542        ads = self.android_devices
543        if not toggle_airplane_mode(self.log, ads[0], False):
544            return False
545
546        tasks = [(provision_device_for_5g, (self.log, ads[0])),
547                 (ensure_phone_default_state, (self.log, ads[1]))]
548        if not multithread_func(self.log, tasks):
549            return False
550
551        if not phone_setup_iwlan(self.log,
552                                ads[0],
553                                True,
554                                WFC_MODE_CELLULAR_PREFERRED,
555                                self.wifi_network_ssid,
556                                self.wifi_network_pass):
557            return False
558        time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
559
560        if not _sms_test_mo(self.log, ads):
561            return False
562
563        self.log.info("PASS - iwlan mo sms test over 5g nsa validated")
564        return True
565
566
567    @test_tracker_info(uuid="db8b2b5b-bf9e-4a99-9fdb-dbd028567705")
568    @TelephonyBaseTest.tel_test_wrap
569    def test_5g_nsa_sms_mt_iwlan(self):
570        """ Test MT SMS for 1 phone in APM,
571        WiFi connected, WFC Cell Preferred mode.
572
573        Disable APM on PhoneA
574        Provision PhoneA in 5g NSA
575        Provision PhoneA for WFC Cell Pref with APM ON
576        Send and Verify SMS from PhoneB to PhoneA
577
578        Returns:
579            True if pass; False if fail.
580        """
581
582        ads = self.android_devices
583        if not toggle_airplane_mode(self.log, ads[0], False):
584            return False
585
586        tasks = [(provision_device_for_5g, (self.log, ads[0])),
587                 (ensure_phone_default_state, (self.log, ads[1]))]
588        if not multithread_func(self.log, tasks):
589            return False
590
591        if not phone_setup_iwlan(self.log,
592                                ads[0],
593                                True,
594                                WFC_MODE_CELLULAR_PREFERRED,
595                                self.wifi_network_ssid,
596                                self.wifi_network_pass):
597            return False
598        time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
599
600        if not _sms_test_mo(self.log, [ads[1], ads[0]]):
601            return False
602
603        self.log.info("PASS - iwlan mt sms test over 5g nsa validated")
604        return True
605
606
607    @test_tracker_info(uuid="5997a618-efee-478f-8fa9-6cf8ba9cfc58")
608    @TelephonyBaseTest.tel_test_wrap
609    def test_5g_nsa_sms_mo_iwlan_apm_off(self):
610        """ Test MO SMS for 1 Phone in APM off, WiFi connected,
611        WFC WiFi Preferred mode.
612
613        Disable APM on PhoneA
614        Provision PhoneA in 5g NSA
615        Provision PhoneA for WFC Wifi Pref with APM OFF
616        Send and Verify SMS from PhoneA to PhoneB
617        Verify 5g NSA attach for PhoneA
618
619        Returns:
620            True if pass; False if fail.
621        """
622
623        ads = self.android_devices
624        if not toggle_airplane_mode(self.log, ads[0], False):
625            return False
626
627        tasks = [(provision_device_for_5g, (self.log, ads[0])),
628                 (ensure_phone_default_state, (self.log, ads[1]))]
629        if not multithread_func(self.log, tasks):
630            return False
631
632        if not phone_setup_iwlan(self.log,
633                                ads[0],
634                                False,
635                                WFC_MODE_WIFI_PREFERRED,
636                                self.wifi_network_ssid,
637                                self.wifi_network_pass):
638            return False
639        time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
640
641        if not _sms_test_mo(self.log, ads):
642            self.log.error("failed to send receive sms over 5g nsa")
643            return False
644        self.log.info("PASS - iwlan MO sms test over 5g nsa validated")
645
646        if not is_current_network_5g_nsa(ads[0]):
647            return False
648        return True
649
650
651    @test_tracker_info(uuid="352ca023-2cd1-4b08-877c-20c5d50cc265")
652    @TelephonyBaseTest.tel_test_wrap
653    def test_5g_nsa_sms_mt_iwlan_apm_off(self):
654        """ Test MT SMS for 1 Phone in APM off, WiFi connected,
655        WFC WiFi Preferred mode.
656
657        Disable APM on PhoneA
658        Provision PhoneA in 5g NSA
659        Provision PhoneA for WFC Wifi Pref with APM OFF
660        Send and Verify SMS from PhoneB to PhoneA
661        Verify 5g NSA attach for PhoneA
662
663        Returns:
664            True if pass; False if fail.
665        """
666
667        ads = self.android_devices
668        if not toggle_airplane_mode(self.log, ads[0], False):
669            return False
670
671        tasks = [(provision_device_for_5g, (self.log, ads[0])),
672                 (ensure_phone_default_state, (self.log, ads[1]))]
673        if not multithread_func(self.log, tasks):
674            return False
675
676        if not phone_setup_iwlan(self.log,
677                                ads[0],
678                                False,
679                                WFC_MODE_WIFI_PREFERRED,
680                                self.wifi_network_ssid,
681                                self.wifi_network_pass):
682            return False
683        time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
684
685        if not _sms_test_mt(self.log, ads):
686            self.log.error("failed to send receive sms over 5g nsa")
687            return False
688        self.log.info("PASS - iwlan MT sms test over 5g nsa validated")
689
690        if not is_current_network_5g_nsa(ads[0]):
691            return False
692        return True
693
694    """ Tests End """
695