Exemple #1
0
 //Characterization test
 public void CrashingHostMakesClientWritingThrow()
 {
     using (var p = RunTestProcess("CrashingHostMakesClientWritingThrow " + _pipeName))
     {
         var client  = new UnixSocketStream(_pipeName, SocketUsage.Client);
         var message = new byte[] { 0x01 };
         client.Write(message, 0, 1);
         p.Kill();
         p.WaitForExit();
         Assert.Throws <IOException>(() => client.Write(message, 0, 1));
     }
 }
Exemple #2
0
        public async Task ClosingHostMakesClientWritingThrow()
        {
            var message  = new byte[] { 0x01, 0x02, 0x03 };
            var hostTask = Task.Run(() => { return(new UnixSocketStream(_pipeName, SocketUsage.Host)); });
            var client   = new UnixSocketStream(_pipeName, SocketUsage.Client);
            var host     = await hostTask;
            var readTask = Task.Run(() => { ReadFromHostAndAssertMessageEquals(host, message); });

            client.Write(message, 0, message.Length);
            await readTask;

            host.Close();
            var buffer = new byte[1];

            Assert.Throws <IOException>(() => client.Write(buffer, 0, 1));
        }
Exemple #3
0
        public async Task CanCommunicate()
        {
            var message = new byte[] { 0x01, 0x02, 0x03 };
            var receive = Task.Run(() =>
            {
                var host = new UnixSocketStream(_pipeName, SocketUsage.Host);
                ReadFromHostAndAssertMessageEquals(host, message);
            });
            var sender = new UnixSocketStream(_pipeName, SocketUsage.Client);

            sender.Write(message, 0, message.Length);
            await AwaitOrTimeOut(TimeSpan.FromSeconds(3), receive, "receive");
        }
Exemple #4
0
        public async Task ClosingClientMakesHostReadZeroBytes()
        {
            var message  = new byte[] { 0x01, 0x02, 0x03 };
            var hostTask = Task.Run(() => { return(new UnixSocketStream(_pipeName, SocketUsage.Host)); });
            var client   = new UnixSocketStream(_pipeName, SocketUsage.Client);
            var host     = await hostTask;
            var readTask = Task.Run(() => { ReadFromHostAndAssertMessageEquals(host, message); });

            client.Write(message, 0, message.Length);
            await readTask;

            client.Close();
            var buffer = new byte[1];

            Assert.AreEqual(0, host.Read(buffer, 0, 1));
        }