[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;
|
||||
|
||||
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,25 +116,20 @@ 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;
|
||||
CheckLoopbackFlags (flags, "3", false);
|
||||
}
|
||||
#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]
|
||||
|
|
Загрузка…
Ссылка в новой задаче