Exemple #1
0
        public async Task SendPingAsync_CustomPayload_InsufficientPrivileges_Throws()
        {
            IPAddress[] localIpAddresses = TestSettings.GetLocalIPAddresses();

            byte[] buffer = TestSettings.PayloadAsBytes;
            Ping   ping   = new Ping();
            await Assert.ThrowsAsync <PlatformNotSupportedException>(() => ping.SendPingAsync(TestSettings.LocalHost, TestSettings.PingTimeout, buffer));
        }
Exemple #2
0
        public void SendPingWithHostAndTimeout()
        {
            IPAddress[] localIpAddresses = TestSettings.GetLocalIPAddresses();

            SendBatchPing(
                (ping) => ping.Send(TestSettings.LocalHost, TestSettings.PingTimeout),
                (pingReply) =>
            {
                PingResultValidator(pingReply, localIpAddresses);
            });
        }
Exemple #3
0
        public void SendPingWithHostAndTimeoutAndBufferAndPingOptions()
        {
            IPAddress[] localIpAddresses = TestSettings.GetLocalIPAddresses();
            byte[]      buffer           = GetPingPayload(localIpAddresses[0].AddressFamily);

            SendBatchPing(
                (ping) => ping.Send(TestSettings.LocalHost, TestSettings.PingTimeout, buffer, new PingOptions()),
                (pingReply) =>
            {
                PingResultValidator(pingReply, localIpAddresses);
                Assert.Equal(buffer, pingReply.Buffer);
            });
        }
Exemple #4
0
        public void SendPingWithHostAndTimeoutAndBufferAndPingOptions_Unix()
        {
            IPAddress[] localIpAddresses = TestSettings.GetLocalIPAddresses();

            byte[] buffer = TestSettings.PayloadAsBytes;
            SendBatchPing(
                (ping) => ping.Send(TestSettings.LocalHost, TestSettings.PingTimeout, buffer, new PingOptions()),
                (pingReply) =>
            {
                PingResultValidator(pingReply, localIpAddresses);

                // Non-root pings cannot send arbitrary data in the buffer, and do not receive it back in the PingReply.
                if (Capability.CanUseRawSockets(pingReply.Address.AddressFamily))
                {
                    Assert.Equal(buffer, pingReply.Buffer);
                }
                else
                {
                    Assert.Equal(Array.Empty <byte>(), pingReply.Buffer);
                }
            });
        }