[monotouch-test] Simplify NetworkReachabilityTest.CtorIPAddressPair test. (#7546)

* [monotouch-test] Improve reachability test.

Give up.

Different versions of OSes report different flags. Trying to
figure out which OS versions have which flags set turned out to
be a never-ending game of whack-a-mole, so just don't assert
that any specific flags are set.
This commit is contained in:
Rolf Bjarne Kvinge 2019-12-12 07:57:23 +01:00 коммит произвёл GitHub
Родитель 1ae28bf034
Коммит a6d2ebddfd
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 14 добавлений и 26 удалений

Просмотреть файл

@ -100,14 +100,7 @@ namespace MonoTouchFixtures.SystemConfiguration {
NetworkReachabilityFlags flags;
Assert.IsTrue (nr.TryGetFlags (out flags), "#1");
// using Loopback iOS 10 / tvOS 10 returns no flags (0) on devices
// but only sometimes... so check for Reachable as well (as a flag).
#if !MONOMAC
if ((Runtime.Arch == Arch.DEVICE) && TestRuntime.CheckXcodeVersion (8, 0))
Assert.That ((flags == (NetworkReachabilityFlags) 0) || ((flags & NetworkReachabilityFlags.Reachable) == NetworkReachabilityFlags.Reachable) , $"#1 Reachable: {flags.ToString ()}");
else
#endif
Assert.That (flags, Is.EqualTo (NetworkReachabilityFlags.Reachable), "#1 Reachable");
CheckLoopbackFlags (flags, "1", true);
}
using (var nr = new NetworkReachability (null, address))
@ -123,27 +116,22 @@ namespace MonoTouchFixtures.SystemConfiguration {
NetworkReachabilityFlags flags;
Assert.IsTrue (nr.TryGetFlags (out flags), "#3");
// using Loopback iOS 10 / tvOS 10 / macOS 10.12 returns no flags (0) on devices
var expected = (NetworkReachabilityFlags) 0;
#if MONOMAC
if (!TestRuntime.CheckSystemVersion (PlatformName.MacOSX, 10, 12)) {
expected = NetworkReachabilityFlags.Reachable;
if (!TestRuntime.CheckSystemVersion (PlatformName.MacOSX, 10, 11))
expected |= NetworkReachabilityFlags.IsLocalAddress;
}
#else
if ((Runtime.Arch == Arch.DEVICE) && TestRuntime.CheckXcodeVersion (8, 0)) {
//
} else {
expected = NetworkReachabilityFlags.Reachable;
if (!TestRuntime.CheckXcodeVersion (7, 0))
expected |= NetworkReachabilityFlags.IsLocalAddress;
}
#endif
Assert.That (flags, Is.EqualTo (expected), "#3 Reachable");
CheckLoopbackFlags (flags, "3", false);
}
}
void CheckLoopbackFlags (NetworkReachabilityFlags flags, string number, bool has_address)
{
var noFlags = (NetworkReachabilityFlags) 0;
var otherFlags = (flags & ~(NetworkReachabilityFlags.Reachable | NetworkReachabilityFlags.IsLocalAddress | NetworkReachabilityFlags.IsDirect));
// Different versions of OSes report different flags. Trying to
// figure out which OS versions have which flags set turned out to
// be a never-ending game of whack-a-mole, so just don't assert
// that any specific flags are set.
Assert.AreEqual (noFlags, otherFlags, $"#{number} No other flags: {flags.ToString ()}");
}
[Test]
public void Ctor_Invalid ()
{