[wlan][hw-sim] Helper to remove all saved networks
Bug: 101141
Test: fx test wlan-hw-sim-test
Change-Id: If9c95395641040e7c0044c867670dd797b8fb0c3
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/684486
Fuchsia-Auto-Submit: Marc Khouri <mnck@google.com>
Reviewed-by: Charles Celerier <chcl@google.com>
Commit-Queue: Marc Khouri <mnck@google.com>
diff --git a/src/connectivity/wlan/testing/hw-sim/src/wlancfg_helper.rs b/src/connectivity/wlan/testing/hw-sim/src/wlancfg_helper.rs
index 20a5798..316b947 100644
--- a/src/connectivity/wlan/testing/hw-sim/src/wlancfg_helper.rs
+++ b/src/connectivity/wlan/testing/hw-sim/src/wlancfg_helper.rs
@@ -13,6 +13,7 @@
futures::StreamExt,
ieee80211::Ssid,
log::info,
+ std::convert::TryInto,
};
fn create_network_config(
@@ -254,6 +255,37 @@
.expect("client controller failed to remove network");
}
+pub async fn remove_all_networks(client_controller: &fidl_policy::ClientControllerProxy) {
+ info!("Removing all saved networks");
+ let mut saved_networks = vec![];
+
+ // Read all saved networks on the device
+ let (iter, server) =
+ fidl::endpoints::create_proxy::<fidl_policy::NetworkConfigIteratorMarker>()
+ .expect("failed to create iterator");
+ client_controller.get_saved_networks(server).expect("Failed to call get saved networks");
+ loop {
+ let additional_saved_networks =
+ iter.get_next().await.expect("Failed to read saved networks");
+ if additional_saved_networks.len() == 0 {
+ break;
+ } else {
+ saved_networks.extend(additional_saved_networks);
+ }
+ }
+
+ // Remove each saved network
+ for network in saved_networks {
+ remove_network(
+ client_controller,
+ &network.id.clone().unwrap().ssid.try_into().unwrap(),
+ network.id.unwrap().type_.into(),
+ network.credential.unwrap(),
+ )
+ .await;
+ }
+}
+
pub async fn await_failed(
mut client_state_update_stream: &mut fidl_policy::ClientStateUpdatesRequestStream,
network_identifier: fidl_policy::NetworkIdentifier,