diff --git a/acts/framework/acts/test_utils/wifi/WifiBaseTest.py b/acts/framework/acts/test_utils/wifi/WifiBaseTest.py
index 95c7b95..3c5c92c 100755
--- a/acts/framework/acts/test_utils/wifi/WifiBaseTest.py
+++ b/acts/framework/acts/test_utils/wifi/WifiBaseTest.py
@@ -80,14 +80,14 @@
               "SSID": ref_2g_ssid,
               "security": ref_2g_security,
               "password": ref_2g_passphrase,
-              "hiddenSSID": true
+              "hiddenSSID": True
            }
 
            network_dict_5g = {
               "SSID": ref_5g_ssid,
               "security": ref_5g_security,
               "password": ref_5g_passphrase,
-              "hiddenSSID": true
+              "hiddenSSID": True
            }
         else:
             network_dict_2g = {
@@ -138,13 +138,13 @@
             network_dict_2g = {
             "SSID": open_2g_ssid,
             "security": 'none',
-            "hiddenSSID": true
+            "hiddenSSID": True
             }
 
             network_dict_5g = {
             "SSID": open_5g_ssid,
             "security": 'none',
-            "hiddenSSID": true
+            "hiddenSSID": True
             }
         else:
             network_dict_2g = {
@@ -220,14 +220,16 @@
         if "reference_networks" in self.user_params:
             pass
         else:
-            networks_dict = self.get_wpa2_network(ap_count=ap_count)
+            networks_dict = self.get_wpa2_network(hidden=hidden,
+                ap_count=ap_count)
             network_list_2g.append(networks_dict["2g"])
             network_list_5g.append(networks_dict["5g"])
 
         if "open_network" in self.user_params:
             pass
         else:
-            networks_dict = self.get_open_network(ap_count=ap_count)
+            networks_dict = self.get_open_network(hidden=hidden,
+                ap_count=ap_count)
             network_list_2g.append(networks_dict["2g"])
             network_list_5g.append(networks_dict["5g"])
 
diff --git a/acts/tests/google/wifi/aware/stress/DataPathStressTest.py b/acts/tests/google/wifi/aware/stress/DataPathStressTest.py
index ae0564e..f718007 100644
--- a/acts/tests/google/wifi/aware/stress/DataPathStressTest.py
+++ b/acts/tests/google/wifi/aware/stress/DataPathStressTest.py
@@ -18,6 +18,7 @@
 import time
 
 from acts import asserts
+from acts.test_decorators import test_tracker_info
 from acts.test_utils.net import connectivity_const as cconsts
 from acts.test_utils.wifi.aware import aware_const as aconsts
 from acts.test_utils.wifi.aware import aware_test_utils as autils
@@ -185,11 +186,13 @@
       'NDP setup failure rate exceeds threshold', extras=results)
     asserts.explicit_pass("test_oob_ndp_stress* done", extras=results)
 
+  @test_tracker_info(uuid="a20a96ba-e71f-4d31-b850-b88a75381981")
   def test_oob_ndp_stress(self):
     """Run NDP (NAN data-path) stress test creating and destroying Aware
     attach sessions, discovery sessions, and NDPs."""
     self.run_oob_ndp_stress(self.ATTACH_ITERATIONS, self.NDP_ITERATIONS)
 
+  @test_tracker_info(uuid="1fb4a383-bf1a-411a-a904-489dd9e29c6a")
   def test_oob_ndp_stress_failure_case(self):
     """Run NDP (NAN data-path) stress test creating and destroying Aware
     attach sessions, discovery sessions, and NDPs.
diff --git a/acts/tests/google/wifi/aware/stress/DiscoveryStressTest.py b/acts/tests/google/wifi/aware/stress/DiscoveryStressTest.py
index 730df18..eaa5d19 100644
--- a/acts/tests/google/wifi/aware/stress/DiscoveryStressTest.py
+++ b/acts/tests/google/wifi/aware/stress/DiscoveryStressTest.py
@@ -17,6 +17,7 @@
 import queue
 
 from acts import asserts
+from acts.test_decorators import test_tracker_info
 from acts.test_utils.wifi.aware import aware_const as aconsts
 from acts.test_utils.wifi.aware import aware_test_utils as autils
 from acts.test_utils.wifi.aware.AwareBaseTest import AwareBaseTest
@@ -36,6 +37,7 @@
 
   ####################################################################
 
+  @test_tracker_info(uuid="783791e5-7726-44e0-ac5b-98c1dbf493cb")
   def test_discovery_stress(self):
     """Create and destroy a random array of discovery sessions, up to the
     limit of capabilities."""
diff --git a/acts/tests/google/wifi/aware/stress/MessagesStressTest.py b/acts/tests/google/wifi/aware/stress/MessagesStressTest.py
index 02b423c..34827f1 100644
--- a/acts/tests/google/wifi/aware/stress/MessagesStressTest.py
+++ b/acts/tests/google/wifi/aware/stress/MessagesStressTest.py
@@ -17,6 +17,7 @@
 import queue
 
 from acts import asserts
+from acts.test_decorators import test_tracker_info
 from acts.test_utils.wifi.aware import aware_const as aconsts
 from acts.test_utils.wifi.aware import aware_test_utils as autils
 from acts.test_utils.wifi.aware.AwareBaseTest import AwareBaseTest
@@ -196,6 +197,7 @@
 
   #######################################################################
 
+  @test_tracker_info(uuid="e88c060f-4ca7-41c1-935a-d3d62878ec0b")
   def test_stress_message(self):
     """Stress test for bi-directional message transmission and reception."""
     p_dut = self.android_devices[0]
@@ -281,8 +283,6 @@
     asserts.assert_equal(results["rx_count_fail_tx_indication"], 0,
                          "Message received but Tx didn't get ACK", results)
 
-    asserts.explicit_pass("test_stress_message done", extras=results)
-
     # permissible failures based on thresholds
     asserts.assert_true(results["tx_count_fail"] <= (
           self.MAX_TX_FAILURE_PERCENTAGE * self.NUM_ITERATIONS / 100),
@@ -292,3 +292,5 @@
         self.MAX_DUPLICATE_RX_PERCENTAGE * self.NUM_ITERATIONS / 100),
                         "Number of duplicate Rx exceeds threshold",
                         extras=results)
+
+    asserts.explicit_pass("test_stress_message done", extras=results)
\ No newline at end of file
diff --git a/acts/tests/google/wifi/rtt/functional/AwareDiscoveryWithRangingTest.py b/acts/tests/google/wifi/rtt/functional/AwareDiscoveryWithRangingTest.py
index 7e46f1c..8c073b9 100644
--- a/acts/tests/google/wifi/rtt/functional/AwareDiscoveryWithRangingTest.py
+++ b/acts/tests/google/wifi/rtt/functional/AwareDiscoveryWithRangingTest.py
@@ -1099,6 +1099,7 @@
 
   #########################################################################
 
+  @test_tracker_info(uuid="deede47f-a54c-46d9-88bb-f4482fbd8470")
   def test_ndp_concurrency(self):
     """Verify the behavior of Wi-Fi Aware Ranging whenever an NDP is created -
     for those devices that have a concurrency limitation that does not allow
@@ -1308,6 +1309,7 @@
     asserts.assert_true(aconsts.SESSION_CB_KEY_DISTANCE_MM in event["data"],
                         "Discovery with ranging for CC expected!")
 
+  @test_tracker_info(uuid="d94dac91-4090-4c03-a867-6dfac6558ba3")
   def test_role_concurrency(self):
     """Verify the behavior of Wi-Fi Aware Ranging (in the context of discovery)
      when the device has concurrency limitations which do not permit concurrent
diff --git a/acts/tests/google/wifi/rtt/functional/RangeSoftApTest.py b/acts/tests/google/wifi/rtt/functional/RangeSoftApTest.py
index 1fc356c..f0c4f4c 100644
--- a/acts/tests/google/wifi/rtt/functional/RangeSoftApTest.py
+++ b/acts/tests/google/wifi/rtt/functional/RangeSoftApTest.py
@@ -15,6 +15,7 @@
 #   limitations under the License.
 
 from acts import asserts
+from acts.test_decorators import test_tracker_info
 from acts.test_utils.tel.tel_test_utils import WIFI_CONFIG_APBAND_5G
 from acts.test_utils.wifi import wifi_test_utils as wutils
 from acts.test_utils.wifi.rtt import rtt_const as rconsts
@@ -39,6 +40,7 @@
 
   #########################################################################
 
+  @test_tracker_info(uuid="578f0725-31e3-4e60-ad62-0212d93cf5b8")
   def test_rtt_to_soft_ap(self):
     """Set up a Soft AP on one device and try performing an RTT ranging to it
     from another device. The attempt must fail - RTT on Soft AP must be
