Exemple #1
0
        public async Task HasCorrectCapabilities()
        {
            var hostTask = Task.Run(() => { return(new UnixSocketStream(_pipeName, SocketUsage.Host)); });
            var client   = new UnixSocketStream(_pipeName, SocketUsage.Client);
            var host     = await hostTask;

            Assert.IsTrue(host.CanWrite);
            Assert.IsTrue(client.CanWrite);

            Assert.IsTrue(host.CanRead);
            Assert.IsTrue(client.CanRead);

            Assert.IsFalse(host.CanSeek);
            Assert.IsFalse(client.CanSeek);

            Assert.Throws <NotSupportedException>(() =>
            {
                var l = host.Length;
            });

            Assert.Throws <NotSupportedException>(() =>
            {
                var l = client.Length;
            });

            Assert.Throws <NotSupportedException>(() =>
            {
                var p = host.Position;
            });

            Assert.Throws <NotSupportedException>(() =>
            {
                var p = client.Position;
            });

            Assert.Throws <NotSupportedException>(() =>
            {
                host.Position = 1;
            });

            Assert.Throws <NotSupportedException>(() =>
            {
                client.Position = 1;
            });

            Assert.Throws <NotSupportedException>(() =>
            {
                host.Seek(1, SeekOrigin.Begin);
            });

            Assert.Throws <NotSupportedException>(() =>
            {
                host.Seek(1, SeekOrigin.Begin);
            });
        }
Exemple #2
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 #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
 //Characterization test
 public void CrashingClientMakesHostReadZeroBytes()
 {
     using (var p = RunTestProcess("CrashingClientMakesHostReadZeroBytes " + _pipeName))
     {
         var message = new byte[] { 0x01 };
         var host    = new UnixSocketStream(_pipeName, SocketUsage.Host);
         ReadFromHostAndAssertMessageEquals(host, message);
         p.Kill();
         var buffer = new byte[1];
         var count  = host.Read(buffer, 0, 1);
         Assert.AreEqual(0, count);
     }
 }
Exemple #5
0
        public Stream CreateStream(string name)
        {
            var pipeName = new PipeName(GetProcessIdentifier() + name);

            try
            {
                return(new UnixSocketStream(pipeName, SocketUsage.Host));
            }
            catch (Exception)
            {
                UnixSocketStream.Unlink(pipeName);
            }

            return(new UnixSocketStream(pipeName, SocketUsage.Host));
        }
Exemple #6
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 #7
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));
        }