private async Task <Connection> CreateConnection(string action, string argument) { var pipeName = GetPipeName(); try { var stream = new NamedPipeClientStream(pipeName); await stream.ConnectAsync(); var writer = new ClientWriter(stream); writer.Write(action); writer.Write(argument); return(new Connection(stream)); } catch { try { _processInfo?.Process.Kill(); } catch { // Inherent race condition here. Just need to make sure the process is // dead as it can't even handle new connections. } throw; } }
private void Process(string displayName, TestState state, string output = "") { Console.WriteLine($"{state} - {displayName}"); var result = new TestResultData(displayName, state, output); _writer.Write(TestDataKind.Value); _writer.Write(result); }
private void Process(string displayName, string uniqueID, TestState state, string output = "") { System.Diagnostics.Trace.WriteLine($"{state} - {displayName}"); var result = new TestResultData(displayName, uniqueID, state, output); _writer.Write(TestDataKind.Value); _writer.Write(result); }
protected override void OnTestDiscovered(ITestCaseDiscoveryMessage testCaseDiscovered) { var testCase = testCaseDiscovered.TestCase; var testCaseData = new TestCaseData( testCase.DisplayName, testCase.SkipReason, testCaseDiscovered.TestAssembly.Assembly.AssemblyPath, testCase.Traits); _writer.Write(TestDataKind.Value); _writer.Write(testCaseData); }
private void GoOnBackground() { foreach (var item in _data) { if (_cancellationToken.IsCancellationRequested) { break; } _writer.Write(TestDataKind.Value); _writeValue(_writer, item); } _writer.Write(TestDataKind.EndOfData); }
private void ClientListening() { string message; lock (clientLocker) { if (ClientConnected) { try { ClientWriter.WriteLine("-- " + Properties.strings.motd + ": " + ConnectedServer.WelcomeMessage); ClientWriter.Flush(); ClientWriter.Write("-- " + Properties.strings.enterNickname + ": "); ClientWriter.Flush(); } catch (IOException) { } } } try { do { string name = ClientReader.ReadLine(); if (string.IsNullOrWhiteSpace(name)) { lock (clientLocker) { if (ClientConnected) { ClientWriter.Write("-- " + Properties.strings.enterNickname + ": "); ClientWriter.Flush(); } } } else { Name = name; } } while (string.IsNullOrWhiteSpace(name)); } catch (IOException) { } ConnectedServer.RefreshInfo(); ConnectedServer.WriteToAllClients("-- " + string.Format(Properties.strings.connectedWithClient, Name + "@" + ClientIep.Address, ClientIep.Port)); lock (clientLocker) { if (ClientConnected) { try { ClientWriter.WriteLine("-- " + Properties.strings.commands); ClientWriter.Flush(); } catch (IOException) { } } } while (ClientConnected) { try { message = ClientReader.ReadLine(); if (message != null) { //Handles available commands if (!string.IsNullOrWhiteSpace(message)) { if (message[0] == '#') { if (message == Properties.strings.exit) { lock (clientLocker) if (ClientConnected) { CloseConnection(); } } else if (message == Properties.strings.list) { lock (clientLocker) if (ClientConnected) { ConnectedServer.List(this); } } else if (message == Properties.strings.cmd) { lock (clientLocker) { if (ClientConnected) { ClientWriter.WriteLine("-- " + Properties.strings.availableCommands + ": "); ClientWriter.Flush(); ClientWriter.WriteLine("\t-- " + Properties.strings.cmd + ": " + Properties.strings.cmdInfo); ClientWriter.Flush(); ClientWriter.WriteLine("\t-- " + Properties.strings.exit + ": " + Properties.strings.exitInfo); ClientWriter.Flush(); ClientWriter.WriteLine("\t-- " + Properties.strings.list + ": " + Properties.strings.listInfo); ClientWriter.Flush(); } } } else { lock (clientLocker) { if (ClientConnected) { ClientWriter.WriteLine("-- " + Properties.strings.unknownCmd); ClientWriter.Flush(); } } } } else { ConnectedServer.WriteToAllClients("|| " + Name + "@" + ClientIep.Address + " >> " + message); } } else { lock (clientLocker) { if (ClientConnected) { ClientWriter.WriteLine("-- " + Properties.strings.enterMessage); ClientWriter.Flush(); } } } } else { CloseConnection(); } } catch (IOException) { break; } } CloseConnection(); }