[Mono-dev] Tests for ParseRouteInfo

Miguel de Icaza miguel at xamarin.com
Thu Jan 15 15:33:42 UTC 2015


It does not need to print to console.

Ignore the soft failure, let us jsut assert if there is no gateway (the
soft failure part of my email was written before I changed my mind, and
forgot to remove it).

Miguel

On Thu, Jan 15, 2015 at 10:28 AM, Ben Woods <woodsb02 at gmail.com> wrote:

> Should a test really print to the Console? Presumably this should be
> adapted to detect if there is at least one valid route?
>
> Also, what does a "soft failure" look like? Is there an example already in
> the mono source?
>
> Thanks for your help.
>
> --
> From: Benjamin Woods
> woodsb02 at gmail.com
>
> On 15 January 2015 at 23:16, Miguel de Icaza <miguel at xamarin.com> wrote:
>
>> Hello,
>>
>> Considering that we do not even have a test, I think it would be nice to
>> turn one of the samples on the git discussion into the test.   While not
>> 100% robust, we could check that at least *one* of the interfaces has a
>> gateway, and perhaps make this into a soft failure for those that do not
>> actually have a network with a gateway when running the tests.
>>
>> Miguel
>>
>> using System;
>>
>> using System.Net;
>>
>> using System.Net.NetworkInformation;
>>
>>
>> public class Test
>>
>> {
>>
>>     public static void Main()
>>
>>     {
>>
>>         DisplayGatewayAddresses();
>>
>>     }
>>
>>
>>     public static void DisplayGatewayAddresses()
>>
>>     {
>>
>>         Console.WriteLine("Gateways");
>>
>>         NetworkInterface[] adapters  =
>> NetworkInterface.GetAllNetworkInterfaces();
>>
>>         foreach (NetworkInterface adapter in adapters)
>>
>>         {
>>
>>             IPInterfaceProperties adapterProperties =
>> adapter.GetIPProperties();
>>
>>             GatewayIPAddressInformationCollection addresses =
>> adapterProperties.GatewayAddresses;
>>
>>             Console.WriteLine(adapter.Description);
>>
>>             if (addresses.Count >0)
>>
>>             {
>>
>>                 foreach (GatewayIPAddressInformation address in addresses)
>>
>>                 {
>>
>>                     Console.WriteLine("  Gateway Address
>> ......................... : {0}",
>>
>>                         address.Address.ToString());
>>
>>                 }
>>
>>                 Console.WriteLine();
>>
>>             }
>>
>>         }
>>
>>     }
>>
>> }
>>
>> On Thu, Jan 15, 2015 at 8:58 AM, Ben Woods <woodsb02 at gmail.com> wrote:
>>
>>> Mono is not able to get the system gateway address on Mac OSX or BSD
>>> when performing GetIPProperties on an a NetworkInterface. This is due to
>>> the mono class libraries solely utilising the /proc/net/route file, which
>>> is only available on Linux.
>>>
>>> I have submitted a pull request to fix this here:
>>> https://github.com/mono/mono/pull/1404
>>>
>>> The last comment on the pull request is that the code looks good, but it
>>> would be nice to have a test added to the regression test suite. As I
>>> understand it, the test code would reside
>>> in mcs/class/System/Test/System.Net.NetworkInformation.
>>>
>>> What do you think the test would look like? Seeing as mono does not
>>> support setting the routing table, only reading it, it is difficult to
>>> assert that the default gateway would be.
>>>
>>> Perhaps simply that the code executes without error, regardless of the
>>> result, even if it is empty (it is possible for a system to not have a
>>> default route, after all).
>>>
>>> Thoughts?
>>>
>>> --
>>> From: Benjamin Woods
>>> woodsb02 at gmail.com
>>>
>>> _______________________________________________
>>> Mono-devel-list mailing list
>>> Mono-devel-list at lists.ximian.com
>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20150115/f9ca6b48/attachment.html>


More information about the Mono-devel-list mailing list