diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariable/NetworkVariableTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariable/NetworkVariableTests.cs index 2d76f87a3c..20019c5ab8 100644 --- a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariable/NetworkVariableTests.cs +++ b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariable/NetworkVariableTests.cs @@ -1796,6 +1796,13 @@ public unsafe T RandGenBytes(System.Random rand) where T : unmanaged return t; } + // RandGenBytes yields bools whose byte is neither 0 nor 1, which IL2CPP on ARM64 can + // compare as unequal even though both print True. + public bool RandGenBool(System.Random rand) + { + return rand.Next(2) == 1; + } + public FixedString32Bytes RandGenFixedString32(System.Random rand) { var s = new FixedString32Bytes(); @@ -1940,7 +1947,7 @@ public void WhenSerializingAndDeserializingVeryLargeValueTypeNativeArrayNetworkV } else if (testType == typeof(bool)) { - (var original, var original2, var changed, var changed2) = GetArarys((rand) => rand.Next(2) == 1); + (var original, var original2, var changed, var changed2) = GetArarys(RandGenBool); TestValueTypeNativeArray(original, changed); TestValueTypeNativeArray(original2, changed2); } @@ -2401,7 +2408,7 @@ public void WhenSerializingAndDeserializingVeryLargeListNetworkVariables_ValuesA } else if (testType == typeof(bool)) { - (var original, var original2, var changed, var changed2) = GetLists(RandGenBytes); + (var original, var original2, var changed, var changed2) = GetLists(RandGenBool); TestList(original, changed); TestList(original2, changed2); } @@ -2594,7 +2601,7 @@ public void WhenSerializingAndDeserializingVeryLargeHashSetNetworkVariables_Valu } else if (testType == typeof(bool)) { - (var original, var original2, var changed, var changed2) = GetHashSets(RandGenBytes); + (var original, var original2, var changed, var changed2) = GetHashSets(RandGenBool); TestHashSet(original, changed); TestHashSet(original2, changed2); } @@ -2944,27 +2951,27 @@ public void WhenSerializingAndDeserializingVeryLargeDictionaryNetworkVariables_V { if (keyType == typeof(byte)) { - (var original, var original2, var changed, var changed2) = GetDictionaries(RandGenBytes, RandGenBytes); + (var original, var original2, var changed, var changed2) = GetDictionaries(RandGenBytes, RandGenBool); TestDictionary(original, changed); TestDictionary(original2, changed2); } else if (keyType == typeof(ulong)) { - (var original, var original2, var changed, var changed2) = GetDictionaries(RandGenBytes, RandGenBytes); + (var original, var original2, var changed, var changed2) = GetDictionaries(RandGenBytes, RandGenBool); TestDictionary(original, changed); TestDictionary(original2, changed2); } else if (keyType == typeof(Vector2)) { - (var original, var original2, var changed, var changed2) = GetDictionaries((rand) => new Vector2((float)rand.NextDouble(), (float)rand.NextDouble()), RandGenBytes); + (var original, var original2, var changed, var changed2) = GetDictionaries((rand) => new Vector2((float)rand.NextDouble(), (float)rand.NextDouble()), RandGenBool); TestDictionary(original, changed); TestDictionary(original2, changed2); } else if (keyType == typeof(HashMapKeyClass)) { - (var original, var original2, var changed, var changed2) = GetDictionaries((rand) => new HashMapKeyClass { Data = RandGenBytes(rand) }, RandGenBytes); + (var original, var original2, var changed, var changed2) = GetDictionaries((rand) => new HashMapKeyClass { Data = RandGenBytes(rand) }, RandGenBool); TestDictionary(original, changed); TestDictionary(original2, changed2); } @@ -3899,7 +3906,7 @@ public void WhenSerializingAndDeserializingVeryLargeValueTypeNativeListNetworkVa } else if (testType == typeof(bool)) { - (var original, var original2, var changed, var changed2) = GetNativeLists(RandGenBytes); + (var original, var original2, var changed, var changed2) = GetNativeLists(RandGenBool); TestValueTypeNativeList(original, changed); TestValueTypeNativeList(original2, changed2); } @@ -4088,7 +4095,7 @@ public void WhenSerializingAndDeserializingVeryLargeValueTypeNativeHashSetNetwor } else if (testType == typeof(bool)) { - (var original, var original2, var changed, var changed2) = GetNativeHashSets(RandGenBytes); + (var original, var original2, var changed, var changed2) = GetNativeHashSets(RandGenBool); TestValueTypeNativeHashSet(original, changed); TestValueTypeNativeHashSet(original2, changed2); } @@ -4434,27 +4441,27 @@ public void WhenSerializingAndDeserializingVeryLargeValueTypeNativeHashMapNetwor { if (keyType == typeof(byte)) { - (var original, var original2, var changed, var changed2) = GetMaps(RandGenBytes, RandGenBytes); + (var original, var original2, var changed, var changed2) = GetMaps(RandGenBytes, RandGenBool); TestValueTypeNativeHashMap(original, changed); TestValueTypeNativeHashMap(original2, changed2); } else if (keyType == typeof(ulong)) { - (var original, var original2, var changed, var changed2) = GetMaps(RandGenBytes, RandGenBytes); + (var original, var original2, var changed, var changed2) = GetMaps(RandGenBytes, RandGenBool); TestValueTypeNativeHashMap(original, changed); TestValueTypeNativeHashMap(original2, changed2); } else if (keyType == typeof(Vector2)) { - (var original, var original2, var changed, var changed2) = GetMaps((rand) => new Vector2((float)rand.NextDouble(), (float)rand.NextDouble()), RandGenBytes); + (var original, var original2, var changed, var changed2) = GetMaps((rand) => new Vector2((float)rand.NextDouble(), (float)rand.NextDouble()), RandGenBool); TestValueTypeNativeHashMap(original, changed); TestValueTypeNativeHashMap(original2, changed2); } else if (keyType == typeof(HashMapKeyStruct)) { - (var original, var original2, var changed, var changed2) = GetMaps(RandGenBytes, RandGenBytes); + (var original, var original2, var changed, var changed2) = GetMaps(RandGenBytes, RandGenBool); TestValueTypeNativeHashMap(original, changed); TestValueTypeNativeHashMap(original2, changed2); }