Rest between runs of tests that join multicast groups. (#625)
Rest between runs of tests that join multicast groups. (#625)

Motivation:

On some machines we've seen tests that rapidly join and leave multicast groups
hitting spurious test failures. These test failures manifest as hitting ENOMEM on
setsockopt(IP_ADD_MEMBERSHIP). The reason appears to be that the IGMP join/leave
messages that the kernel needs to emit for these joins can be queued up waiting for
a timer to fire, and if we move sufficiently quickly we can push too many
messages into that queue.

This can be avoided by avoiding the need to emit the IGMP join/leave messages
at all. We can do that by forcing the multicast joins onto the loopback interface,
as there's no value in the kernel emitting join/leaves on the loopback. Given that
for these tests the join is necessary only to get the kernel to have IGMP state,
there's no reason not to do this.

Modifications:

Forced all multicast joins onto the loopback address.

Result:

No weird ENOMEM crashes in test runs.
apple/swift-nio,apple/swift-nio,apple/swift-nio,apple/swift-nio,apple/swift-nio