Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1796,6 +1796,13 @@ public unsafe T RandGenBytes<T>(System.Random rand) where T : unmanaged
return t;
}

// RandGenBytes<bool> 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();
Expand Down Expand Up @@ -1863,6 +1870,11 @@ public string ArrayStr<T>(NativeArray<T> arr) where T : unmanaged
{
var idx = rand.Next(changed2.Length - 1);
var item = generator(rand);
// Ensures changed2 differs from original2 when its length matches original2.
while (idx < original2.Length && EqualityComparer<T>.Default.Equals(item, original2[idx]))
{
item = generator(rand);
}
changed2[idx] = item;
}

Expand Down Expand Up @@ -1940,7 +1952,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);
}
Expand Down Expand Up @@ -2158,6 +2170,11 @@ public string DictionaryStr<TKey, TVal>(Dictionary<TKey, TVal> list)
{
var idx = rand.Next(changed2.Count - 1);
var item = generator(rand);
// Ensures changed2 differs from original2 when no elements are added or removed.
while (EqualityComparer<T>.Default.Equals(item, original2[idx]))
{
item = generator(rand);
}
changed2[idx] = item;
}

Expand Down Expand Up @@ -2401,7 +2418,7 @@ public void WhenSerializingAndDeserializingVeryLargeListNetworkVariables_ValuesA
}
else if (testType == typeof(bool))
{
(var original, var original2, var changed, var changed2) = GetLists(RandGenBytes<bool>);
(var original, var original2, var changed, var changed2) = GetLists(RandGenBool);
Comment thread
NoelStephensUnity marked this conversation as resolved.
TestList(original, changed);
TestList(original2, changed2);
}
Expand Down Expand Up @@ -2594,7 +2611,7 @@ public void WhenSerializingAndDeserializingVeryLargeHashSetNetworkVariables_Valu
}
else if (testType == typeof(bool))
{
(var original, var original2, var changed, var changed2) = GetHashSets(RandGenBytes<bool>);
(var original, var original2, var changed, var changed2) = GetHashSets(RandGenBool);
TestHashSet(original, changed);
TestHashSet(original2, changed2);
}
Expand Down Expand Up @@ -2944,27 +2961,27 @@ public void WhenSerializingAndDeserializingVeryLargeDictionaryNetworkVariables_V
{
if (keyType == typeof(byte))
{
(var original, var original2, var changed, var changed2) = GetDictionaries(RandGenBytes<byte>, RandGenBytes<bool>);
(var original, var original2, var changed, var changed2) = GetDictionaries(RandGenBytes<byte>, RandGenBool);
TestDictionary(original, changed);
TestDictionary(original2, changed2);

}
else if (keyType == typeof(ulong))
{
(var original, var original2, var changed, var changed2) = GetDictionaries(RandGenBytes<ulong>, RandGenBytes<bool>);
(var original, var original2, var changed, var changed2) = GetDictionaries(RandGenBytes<ulong>, 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<bool>);
(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<HashMapKeyStruct>(rand) }, RandGenBytes<bool>);
(var original, var original2, var changed, var changed2) = GetDictionaries((rand) => new HashMapKeyClass { Data = RandGenBytes<HashMapKeyStruct>(rand) }, RandGenBool);
TestDictionary(original, changed);
TestDictionary(original2, changed2);
}
Expand Down Expand Up @@ -3656,6 +3673,11 @@ public string NativeHashMapStr<TKey, TVal>(NativeHashMap<TKey, TVal> list)
{
var idx = rand.Next(changed2.Length - 1);
var item = generator(rand);
// Ensures changed2 differs from original2 when no elements are added or removed.
while (EqualityComparer<T>.Default.Equals(item, original2[idx]))
{
item = generator(rand);
}
changed2[idx] = item;
}

Expand Down Expand Up @@ -3899,7 +3921,7 @@ public void WhenSerializingAndDeserializingVeryLargeValueTypeNativeListNetworkVa
}
else if (testType == typeof(bool))
{
(var original, var original2, var changed, var changed2) = GetNativeLists(RandGenBytes<bool>);
(var original, var original2, var changed, var changed2) = GetNativeLists(RandGenBool);
TestValueTypeNativeList(original, changed);
TestValueTypeNativeList(original2, changed2);
}
Expand Down Expand Up @@ -4088,7 +4110,7 @@ public void WhenSerializingAndDeserializingVeryLargeValueTypeNativeHashSetNetwor
}
else if (testType == typeof(bool))
{
(var original, var original2, var changed, var changed2) = GetNativeHashSets(RandGenBytes<bool>);
(var original, var original2, var changed, var changed2) = GetNativeHashSets(RandGenBool);
TestValueTypeNativeHashSet(original, changed);
TestValueTypeNativeHashSet(original2, changed2);
}
Expand Down Expand Up @@ -4434,27 +4456,27 @@ public void WhenSerializingAndDeserializingVeryLargeValueTypeNativeHashMapNetwor
{
if (keyType == typeof(byte))
{
(var original, var original2, var changed, var changed2) = GetMaps(RandGenBytes<byte>, RandGenBytes<bool>);
(var original, var original2, var changed, var changed2) = GetMaps(RandGenBytes<byte>, RandGenBool);
TestValueTypeNativeHashMap(original, changed);
TestValueTypeNativeHashMap(original2, changed2);

}
else if (keyType == typeof(ulong))
{
(var original, var original2, var changed, var changed2) = GetMaps(RandGenBytes<ulong>, RandGenBytes<bool>);
(var original, var original2, var changed, var changed2) = GetMaps(RandGenBytes<ulong>, 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<bool>);
(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<HashMapKeyStruct>, RandGenBytes<bool>);
(var original, var original2, var changed, var changed2) = GetMaps(RandGenBytes<HashMapKeyStruct>, RandGenBool);
TestValueTypeNativeHashMap(original, changed);
TestValueTypeNativeHashMap(original2, changed2);
}
Expand Down
Loading