private void SleepWakeAndScan(DateTime endTime, string profileName1) { testLogger.LogComment("SleepWakeAndScan"); using (Wlan wlanApi = new Wlan()) { var wlanInterfaceList = wlanApi.EnumWlanInterfaces(); Verify.IsTrue(wlanInterfaceList.Count >= 1, string.Format(CultureInfo.InvariantCulture, "wlanInterfaceList.Count = {0}", wlanInterfaceList.Count)); var wlanInterface = wlanInterfaceList[0]; if (wlanInterface.State == WLAN_INTERFACE_STATE.wlan_interface_state_connected) { wlanApi.Disconnect(wlanInterface.Id, WlanStress.DisconnectWait); } } Verify.IsTrue(VerifyAPsAreInScanList(profileName1), "Verify APs are in Scan List"); while (DateTime.Now < endTime) { WakeHelper.StaticD2Sleep(new TimeSpan(0, 0, 30)); scanAfterSleepAttempts++; if (VerifyAPsAreInScanList(profileName1)) { scanAfterSleepSuccess++; } } }
public bool DisconnectNetwork() { testLogger.LogComment("Disconnecting from WLAN"); try { using (Wlan wlanApi = new Wlan()) { var wlanInterfaceList = wlanApi.EnumWlanInterfaces(); if (NetworkInterfaceDataPathTests.CheckWlanInterfaceCount(wlanApi) == false) { return(false); } var wlanInterface = wlanInterfaceList[0]; if (wlanInterface.State == WLAN_INTERFACE_STATE.wlan_interface_state_connected) { testLogger.LogComment("Disconnecting from WLAN network {0}", wlanInterface.Ssid); wlanApi.Disconnect(wlanInterface.Id, new TimeSpan(0, 0, 10)); } return(true); } } catch (Exception error) { testLogger.LogError("Error encountered while Disconnecting from the WLAN Network"); testLogger.LogError(error.ToString()); return(false); } }
public override void Run(string profileName1, string profileName2) { DateTime endTime = DateTime.Now.Add(new TimeSpan(0, 10, 0)); using (Wlan wlanApi = new Wlan()) { var wlanInterfaceList = wlanApi.EnumWlanInterfaces(); Verify.IsTrue(wlanInterfaceList.Count >= 1, string.Format(CultureInfo.InvariantCulture, "wlanInterfaceList.Count = {0}", wlanInterfaceList.Count)); var wlanInterface = wlanInterfaceList[0]; if (wlanInterface.State == WLAN_INTERFACE_STATE.wlan_interface_state_connected) { wlanApi.Disconnect(wlanInterface.Id, WlanStress.DisconnectWait); } while (DateTime.Now < endTime) { testLogger.LogComment(string.Format(CultureInfo.InvariantCulture, "Connecting to {0}", profileName1)); ConnectionAttempts++; var waiter1 = wlanApi.TryProfileConnect(wlanInterface.Id, profileName1, WlanStress.ConnectWait); if (waiter1 != null) { if (waiter1.WlanReasonCode == 0) { ConnectionSuccess++; testLogger.LogComment(string.Format(CultureInfo.InvariantCulture, "Disconnecting from {0}", profileName1)); wlanApi.Disconnect(wlanInterface.Id, WlanStress.DisconnectWait); } } testLogger.LogComment(string.Format(CultureInfo.InvariantCulture, "Connecting to {0}", profileName2)); ConnectionAttempts++; var waiter2 = wlanApi.TryProfileConnect(wlanInterface.Id, profileName2, WlanStress.ConnectWait); if (waiter2 != null) { if (waiter2.WlanReasonCode == 0) { ConnectionSuccess++; testLogger.LogComment(string.Format(CultureInfo.InvariantCulture, "Disconnecting from {0}", profileName2)); wlanApi.Disconnect(wlanInterface.Id, WlanStress.DisconnectWait); } } } } }
public bool ConnectToNetwork(string ssid) { try { using (Wlan wlanApi = new Wlan()) { testLogger.LogComment("ConnectToNetwork"); var wlanInterfaceList = wlanApi.EnumWlanInterfaces(); if (NetworkInterfaceDataPathTests.CheckWlanInterfaceCount(wlanApi) == false) { return(false); } var wlanInterface = wlanInterfaceList[0]; bool localConnectionNeeded = true; if (wlanInterface.State == WLAN_INTERFACE_STATE.wlan_interface_state_connected) { if (String.Compare(ssid, wlanInterface.Ssid, StringComparison.OrdinalIgnoreCase) == 0) { testLogger.LogComment("We already connected to the correct network."); localConnectionNeeded = false; } else { testLogger.LogComment("We already connected a different network. Disconnecting."); wlanApi.Disconnect(wlanInterface.Id, new TimeSpan(0, 0, 10)); Wlan.Sleep(1000); } } if (localConnectionNeeded) { testLogger.LogComment("Connecting to SSID {0}", ssid); wlanApi.TryScan(wlanInterface.Id, false, new TimeSpan(0, 0, 10)); wlanApi.ProfileConnect(wlanInterface.Id, ssid, new TimeSpan(0, 0, 30)); testLogger.LogComment("Connection Completed {0}", ssid); testLogger.LogComment("Waiting for DHCP to be stable"); Microsoft.Test.Networking.Kit.Helpers.WaitForWlanConnectivity(wlanInterface.Id, 1000 * 15, testLogger); } return(true); } } catch (Exception error) { testLogger.LogError("Error encountered while Connecting to the Wlan Profile {0}", ssid); testLogger.LogError(error.ToString()); return(false); } }
private void DisconnectAndDeleteProfile(Wlan wlanApi) { var wlanInterfaceList = wlanApi.EnumWlanInterfaces(); Verify.IsTrue(wlanInterfaceList.Count >= 1, string.Format(CultureInfo.InvariantCulture, "wlanInterfaceList.Count = {0}", wlanInterfaceList.Count)); if (wlanInterfaceList[0].State == WLAN_INTERFACE_STATE.wlan_interface_state_connected) { testLogger.LogComment("Disconnecting from AP"); wlanApi.Disconnect(wlanInterfaceList[0].Id); Wlan.Sleep(5000); } try { testLogger.LogComment("Deleting Profile"); wlanApi.DeleteProfile(wlanInterfaceList[0].Id, dot11wSSID); } catch (System.Runtime.InteropServices.COMException) { // The profile was not present to delete } }
private bool RunIntegrityCheck() { testLogger.LogComment("Running integrity check"); UInt16 port = 7777; UInt16 streamBytes = Convert.ToUInt16(random.Next(10, 2000)); nextIntegrityCheckTime = DateTime.Now.Add(integrityCheckInterval); using (ApConfigClient apConfigClient = new ApConfigClient(WlanStress.APServer)) { testLogger.LogComment(string.Format(CultureInfo.InvariantCulture, "WlanStress.APServer: {0}", WlanStress.APServer)); int retries = 3; bool connected = false; while (retries > 0) { retries--; testLogger.LogComment(string.Format(CultureInfo.InvariantCulture, "Attempting to connect to AP machine. Retries remaining: {0}", retries)); bool connect = apConfigClient.Connect(); if (connect) { testLogger.LogComment("Connection to AP Server Succeeded"); connected = true; break; } else { testLogger.LogComment("Connection AP Server failed"); Wlan.Sleep(10000); } } if (connected == false) { testLogger.LogError("Giving up connecting to AP machine"); return(false); } apConfigClient.StartEchoServer(port, streamBytes, 1); ConnectForIntegrityCheck(apConfigClient, port, streamBytes); try { using (Wlan wlanApi = new Wlan()) { var wlanInterfaceList = wlanApi.EnumWlanInterfaces(); Verify.IsTrue(wlanInterfaceList.Count >= 1, string.Format(CultureInfo.InvariantCulture, "wlanInterfaceList.Count = {0}", wlanInterfaceList.Count)); var wlanInterface = wlanInterfaceList[0]; using (Win32Sockets win32Sockets = new Win32Sockets()) { string localAddress = win32Sockets.FindIpAddress(wlanInterface.Id); testLogger.LogComment(string.Format(CultureInfo.InvariantCulture, "IPAddress: {0}", localAddress)); using (TCPEchoClient echoClient = new TCPEchoClient(localAddress, ServiceAPChannelAddress, port, streamBytes)) { echoClient.Connect(); echoClient.PerformEcho(); bool result = echoClient.IsResponseBufferValid(); testLogger.LogComment(string.Format(CultureInfo.InvariantCulture, "Echo Client Success: {0}", result)); return(result); } } } } catch (Exception error) { testLogger.LogComment("TlukeTest: Exception hit"); testLogger.LogError(string.Format(CultureInfo.InvariantCulture, "Error While trying data path: {0}", error.ToString())); return(false); } finally { testLogger.LogComment("Cleaning Up Each Server"); apConfigClient.StopEchoServer(); using (Wlan wlanApi = new Wlan()) { var wlanInterfaceList = wlanApi.EnumWlanInterfaces(); Verify.IsTrue(wlanInterfaceList.Count >= 1, string.Format(CultureInfo.InvariantCulture, "wlanInterfaceList.Count = {0}", wlanInterfaceList.Count)); var wlanInterface = wlanInterfaceList[0]; if (wlanInterface.State == WLAN_INTERFACE_STATE.wlan_interface_state_connected) { wlanApi.Disconnect(wlanInterface.Id, DisconnectWait); } } } } }