[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:
Родитель
1ae28bf034
Коммит
a6d2ebddfd
|
@ -100,14 +100,7 @@ namespace MonoTouchFixtures.SystemConfiguration {
|
||||||
NetworkReachabilityFlags flags;
|
NetworkReachabilityFlags flags;
|
||||||
|
|
||||||
Assert.IsTrue (nr.TryGetFlags (out flags), "#1");
|
Assert.IsTrue (nr.TryGetFlags (out flags), "#1");
|
||||||
// using Loopback iOS 10 / tvOS 10 returns no flags (0) on devices
|
CheckLoopbackFlags (flags, "1", true);
|
||||||
// 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");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var nr = new NetworkReachability (null, address))
|
using (var nr = new NetworkReachability (null, address))
|
||||||
|
@ -123,25 +116,20 @@ namespace MonoTouchFixtures.SystemConfiguration {
|
||||||
NetworkReachabilityFlags flags;
|
NetworkReachabilityFlags flags;
|
||||||
|
|
||||||
Assert.IsTrue (nr.TryGetFlags (out flags), "#3");
|
Assert.IsTrue (nr.TryGetFlags (out flags), "#3");
|
||||||
// using Loopback iOS 10 / tvOS 10 / macOS 10.12 returns no flags (0) on devices
|
CheckLoopbackFlags (flags, "3", false);
|
||||||
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");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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]
|
[Test]
|
||||||
|
|
Загрузка…
Ссылка в новой задаче