Merge "Enable location for Bluetooth SL4A test" into pi-dev
diff --git a/acts/framework/acts/test_utils/wifi/rtt/rtt_test_utils.py b/acts/framework/acts/test_utils/wifi/rtt/rtt_test_utils.py
index bd82a86..29fac81 100644
--- a/acts/framework/acts/test_utils/wifi/rtt/rtt_test_utils.py
+++ b/acts/framework/acts/test_utils/wifi/rtt/rtt_test_utils.py
@@ -244,6 +244,14 @@
                          the reference LCI.
      - any_lcr_mismatch: True/False - checks if all LCR results are identical to
                          the reference LCR.
+     - num_attempted_measurements: extracted list of all of the individual
+                                   number of attempted measurements.
+     - num_successful_measurements: extracted list of all of the individual
+                                    number of successful measurements.
+     - invalid_num_attempted: True/False - checks if number of attempted
+                              measurements is non-zero for successful results.
+     - invalid_num_successful: True/False - checks if number of successful
+                               measurements is non-zero for successful results.
 
   Args:
     results: List of RTT results.
@@ -264,6 +272,8 @@
   stats['num_invalid_rssi'] = 0
   stats['any_lci_mismatch'] = False
   stats['any_lcr_mismatch'] = False
+  stats['invalid_num_attempted'] = False
+  stats['invalid_num_successful'] = False
 
   range_max_mm = range_reference_mm + range_margin_mm
   range_min_mm = range_reference_mm - range_margin_mm
@@ -303,10 +313,17 @@
     if not min_rssi <= rssi <= 0:
       stats['num_invalid_rssi'] = stats['num_invalid_rssi'] + 1
 
-    num_attempted_measurements.append(
-      result[rconsts.EVENT_CB_RANGING_KEY_NUM_ATTEMPTED_MEASUREMENTS])
-    num_successful_measurements.append(
-        result[rconsts.EVENT_CB_RANGING_KEY_NUM_SUCCESSFUL_MEASUREMENTS])
+    num_attempted = result[
+      rconsts.EVENT_CB_RANGING_KEY_NUM_ATTEMPTED_MEASUREMENTS]
+    num_attempted_measurements.append(num_attempted)
+    if num_attempted == 0:
+      stats['invalid_num_attempted'] = True
+
+    num_successful = result[
+      rconsts.EVENT_CB_RANGING_KEY_NUM_SUCCESSFUL_MEASUREMENTS]
+    num_successful_measurements.append(num_successful)
+    if num_successful == 0:
+      stats['invalid_num_successful'] = True
 
     lcis.append(result[rconsts.EVENT_CB_RANGING_KEY_LCI])
     if (result[rconsts.EVENT_CB_RANGING_KEY_LCI] != reference_lci):
diff --git a/acts/framework/acts/test_utils/wifi/wifi_power_test_utils.py b/acts/framework/acts/test_utils/wifi/wifi_power_test_utils.py
index e2a91aa..421c7ce 100644
--- a/acts/framework/acts/test_utils/wifi/wifi_power_test_utils.py
+++ b/acts/framework/acts/test_utils/wifi/wifi_power_test_utils.py
@@ -190,7 +190,7 @@
             gMDTIM_old) == gMaxLIModulatedDTIM:
         ad.log.info('Current DTIM is already the desired value,'
                     'no need to reset it')
-        return
+        return 0
 
     gE_new = ENABLED_MODULATED_DTIM + str(gEnableModulatedDTIM)
     gM_new = MAX_MODULATED_DTIM + str(gMaxLIModulatedDTIM)
@@ -204,7 +204,10 @@
     push_file_to_phone(ad, ini_file_local, ini_file_phone)
     ad.log.info('DTIM changes checked in and rebooting...')
     ad.reboot()
+    # Wait for auto-wifi feature to start
+    time.sleep(20)
     ad.log.info('DTIM updated and device back from reboot')
+    return 1
 
 
 def push_file_to_phone(ad, file_local, file_phone):
diff --git a/acts/tests/google/power/wifi/PowerWiFidtimTest.py b/acts/tests/google/power/wifi/PowerWiFidtimTest.py
index 28a340a..c4a1090 100644
--- a/acts/tests/google/power/wifi/PowerWiFidtimTest.py
+++ b/acts/tests/google/power/wifi/PowerWiFidtimTest.py
@@ -34,10 +34,12 @@
         indices = [2, 4, 6]
         self.decode_test_configs(attrs, indices)
         # Initialize the dut to rock-bottom state
-        wputils.change_dtim(
+        rebooted = wputils.change_dtim(
             self.dut,
             gEnableModulatedDTIM=int(self.test_configs.dtim),
             gMaxLIModulatedDTIM=dtim_max)
+        if rebooted:
+            self.dut_rockbottom()
         self.dut.log.info('DTIM value of the phone is now {}'.format(
             self.test_configs.dtim))
         self.setup_ap_connection(
diff --git a/acts/tests/google/power/wifi/PowerWiFimulticastTest.py b/acts/tests/google/power/wifi/PowerWiFimulticastTest.py
index 6b9896c..f43f6a5 100644
--- a/acts/tests/google/power/wifi/PowerWiFimulticastTest.py
+++ b/acts/tests/google/power/wifi/PowerWiFimulticastTest.py
@@ -38,9 +38,11 @@
         indices = [2, 4]
         self.decode_test_configs(attrs, indices)
         # Change DTIMx1 on the phone to receive all Multicast packets
-        wputils.change_dtim(
+        rebooted = wputils.change_dtim(
             self.dut, gEnableModulatedDTIM=1, gMaxLIModulatedDTIM=10)
         self.dut.log.info('DTIM value of the phone is now DTIMx1')
+        if rebooted:
+            self.dut_rockbottom()
 
         self.setup_ap_connection(
             self.main_network[self.test_configs.wifi_band])
diff --git a/acts/tests/google/wifi/rtt/functional/RangeApSupporting11McTest.py b/acts/tests/google/wifi/rtt/functional/RangeApSupporting11McTest.py
index 523fd0c..98586cb 100644
--- a/acts/tests/google/wifi/rtt/functional/RangeApSupporting11McTest.py
+++ b/acts/tests/google/wifi/rtt/functional/RangeApSupporting11McTest.py
@@ -60,6 +60,10 @@
                            "LCI mismatch", extras=stats)
       asserts.assert_false(stat['any_lcr_mismatch'],
                            "LCR mismatch", extras=stats)
+      asserts.assert_false(stat['invalid_num_attempted'],
+                           "Invalid (0) number of attempts", extras=stats)
+      asserts.assert_false(stat['invalid_num_successful'],
+                           "Invalid (0) number of successes", extras=stats)
       asserts.assert_equal(stat['num_invalid_rssi'], 0, "Invalid RSSI",
                           extras=stats)
       asserts.assert_true(stat['num_failures'] <=
diff --git a/acts/tests/google/wifi/rtt/functional/RangeAwareTest.py b/acts/tests/google/wifi/rtt/functional/RangeAwareTest.py
index a2d5286..d4b7d41 100644
--- a/acts/tests/google/wifi/rtt/functional/RangeAwareTest.py
+++ b/acts/tests/google/wifi/rtt/functional/RangeAwareTest.py
@@ -229,6 +229,10 @@
                          "LCI mismatch", extras=extras)
     asserts.assert_false(stats['any_lcr_mismatch'],
                          "LCR mismatch", extras=extras)
+    asserts.assert_false(stats['invalid_num_attempted'],
+                         "Invalid (0) number of attempts", extras=stats)
+    asserts.assert_false(stats['invalid_num_successful'],
+                         "Invalid (0) number of successes", extras=stats)
     asserts.assert_equal(stats['num_invalid_rssi'], 0, "Invalid RSSI",
                          extras=extras)
     asserts.assert_true(