public DeployTest() { //if (!RunningAsAdmin()) //{ // Assert.Inconclusive("Cannot Run Test: The Orleans deployment PowerShell scripts require Visual Studio to be run with elevated privileges."); //} // If the test does have elevated permission, make sure that it can run PowerShell scripts. Collection <PSObject> results = RunPowerShellCommand("Get-ExecutionPolicy"); oldExecutionPolicy = results[0].ToString(); if (string.Compare(oldExecutionPolicy, "restricted", true) == 0) { if (RunningAsAdmin()) { RunPowerShellCommand("Set-ExecutionPolicy RemoteSigned -Force -Scope LocalMachine"); } else { Assert.Inconclusive("Cannot Run Test: The Orleans deployment PowerShell scripts require ExecutionPolicy be set to RemoteSigned."); } } preTestFolder = Environment.CurrentDirectory; }
public void StopOrleans_OrleansIsRunning_OrleansStopped() { Process[] orleansHostTestProcess = Process.GetProcessesByName("OrleansHost"); // If Orleans is already running, there is really no need to start it up just to shut it down. if (orleansHostTestProcess.Count() < 1) { string targetFolder = PrepareTestFolderStructure("StopOrleansTest"); // Get Orleans running. string orleansHostPath = Path.Combine(targetFolder, "OrleansHost.exe"); ProcessStartInfo orleansStartInfo = new ProcessStartInfo(orleansHostPath); orleansStartInfo.UseShellExecute = false; Process orleansProcess = Process.Start(orleansStartInfo); // Pause to let Orleans get started up. System.Threading.Thread.Sleep(9000); orleansHostTestProcess = Process.GetProcessesByName("OrleansHost"); if (orleansHostTestProcess.Count() < 1) { Assert.Inconclusive("Cannot Run Test: Could not start an OrleansHost necessary to test the StopOrleans.ps1 script."); } } // Test script when Orleans Host is not running. Collection <PSObject> results = RunPowerShellCommand(".\\StopOrleans.ps1"); System.Threading.Thread.Sleep(5000); // Check to see if Orleans Host is still running. orleansHostTestProcess = Process.GetProcessesByName("OrleansHost"); Assert.IsTrue(orleansHostTestProcess.Count() < 1, "OrleansHost is still running."); // Check the results for an error or exception. CheckResultsForErrors(results); }
private static PythonVersion FindInterpreter(string pythonVersion) { var interpreter = PythonPaths.GetVersionsByName(pythonVersion, HasSymbols).FirstOrDefault(); if (interpreter == null) { Assert.Inconclusive($"Interpreter '{pythonVersion}' not installed."); } return(interpreter); }
private static PythonVersion FindInterpreter(string pythonVersion) { // Examples of values for pythonVersion (match field names on PythonPaths): // "Python36" // "Python36|Python36_x64" var interpreter = pythonVersion.Split('|') .Select(v => typeof(PythonPaths).GetField(v, BindingFlags.Static | BindingFlags.Public)?.GetValue(null) as PythonVersion) .Where(HasSymbols) .FirstOrDefault(); if (interpreter == null) { Assert.Inconclusive($"Interpreter '{pythonVersion}' not installed."); } return(interpreter); }
/// <summary> /// Gets the path to the Orleans folder from the named configuration file. /// </summary> /// <param name="configFile">The name of the configuration file to load.</param> /// <returns>The path to the Orleans folder found in the configuration file.</returns> public string GetOrleansFolderFromConfig(string configFile) { // <TargetLocation Path="C:\Orleans" /> string pathValue = string.Empty; if (!File.Exists(Path.Combine(Directory.GetCurrentDirectory(), configFile))) { Assert.Inconclusive("Cannot Run Test: Could not find configuration file {0}", configFile); } XDocument configDoc = XDocument.Load(configFile); Assert.IsNotNull(configDoc, string.Format("Could not load test configuration file: {0}", configFile)); XNamespace deployNamespace = "urn:xcg-deployment"; XElement targetElement = configDoc.Root.Element(deployNamespace + "TargetLocation"); Assert.IsNotNull(targetElement, "Could not find the TargetLocation element in the configuration file: {0}", configFile); XAttribute pathAttribute = targetElement.Attribute("Path"); Assert.IsNotNull(pathAttribute, "The Path attribute of the TargetLocation element in the configuration file is missing or does not have a value : {0}", configFile); pathValue = pathAttribute.Value; return(pathValue); }