Skip to content

Commit 5915c3e

Browse files
test fix
Trying to figure out weird ILCPP serialization issue.
1 parent 091d82f commit 5915c3e

File tree

2 files changed

+121
-122
lines changed

2 files changed

+121
-122
lines changed

testproject/Assets/Tests/Runtime/RpcUserSerializableTypesTest.cs

Lines changed: 121 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -586,163 +586,165 @@ private void OnServerReceivedUserSerializableStructsUpdated(UserSerializableStru
586586
ValidateUserSerializableStructs(userSerializableStruct);
587587
}
588588

589-
}
589+
/// <summary>
590+
/// Component used with NetworkSerializableTest that houses the
591+
/// client and server RPC calls.
592+
/// </summary>
593+
protected class TestSerializationComponent : NetworkBehaviour
594+
{
595+
public delegate void OnSerializableClassUpdatedDelgateHandler(UserSerializableClass userSerializableClass);
596+
public OnSerializableClassUpdatedDelgateHandler OnSerializableClassUpdated;
590597

591-
/// <summary>
592-
/// Component used with NetworkSerializableTest that houses the
593-
/// client and server RPC calls.
594-
/// </summary>
595-
public class TestSerializationComponent : NetworkBehaviour
596-
{
597-
public delegate void OnSerializableClassUpdatedDelgateHandler(UserSerializableClass userSerializableClass);
598-
public OnSerializableClassUpdatedDelgateHandler OnSerializableClassUpdated;
598+
public delegate void OnSerializableStructUpdatedDelgateHandler(UserSerializableStruct userSerializableStruct);
599+
public OnSerializableStructUpdatedDelgateHandler OnSerializableStructUpdated;
599600

600-
public delegate void OnSerializableStructUpdatedDelgateHandler(UserSerializableStruct userSerializableStruct);
601-
public OnSerializableStructUpdatedDelgateHandler OnSerializableStructUpdated;
601+
public delegate void OnMySharedObjectReferencedByIdUpdatedDelgateHandler(MySharedObjectReferencedById obj);
602+
public OnMySharedObjectReferencedByIdUpdatedDelgateHandler OnMySharedObjectReferencedByIdUpdated;
602603

603-
public delegate void OnMySharedObjectReferencedByIdUpdatedDelgateHandler(MySharedObjectReferencedById obj);
604-
public OnMySharedObjectReferencedByIdUpdatedDelgateHandler OnMySharedObjectReferencedByIdUpdated;
604+
public delegate void OnMyObjectUpdatedDelgateHandler(MyObject obj);
605+
public OnMyObjectUpdatedDelgateHandler OnMyObjectUpdated;
605606

606-
public delegate void OnMyObjectUpdatedDelgateHandler(MyObject obj);
607-
public OnMyObjectUpdatedDelgateHandler OnMyObjectUpdated;
607+
public delegate void OnMyObjectPassedWithThisRefUpdatedDelgateHandler(MyObjectPassedWithThisRef obj);
608+
public OnMyObjectPassedWithThisRefUpdatedDelgateHandler OnMyObjectPassedWithThisRefUpdated;
608609

609-
public delegate void OnMyObjectPassedWithThisRefUpdatedDelgateHandler(MyObjectPassedWithThisRef obj);
610-
public OnMyObjectPassedWithThisRefUpdatedDelgateHandler OnMyObjectPassedWithThisRefUpdated;
610+
/// <summary>
611+
/// Starts the unit test and passes the UserSerializableClass from the client to the server
612+
/// </summary>
613+
/// <param name="userSerializableClass"></param>
614+
public void ClientStartTest(UserSerializableClass userSerializableClass)
615+
{
616+
SendServerSerializedDataServerRpc(userSerializableClass);
617+
}
611618

612-
/// <summary>
613-
/// Starts the unit test and passes the UserSerializableClass from the client to the server
614-
/// </summary>
615-
/// <param name="userSerializableClass"></param>
616-
public void ClientStartTest(UserSerializableClass userSerializableClass)
617-
{
618-
SendServerSerializedDataServerRpc(userSerializableClass);
619-
}
619+
/// <summary>
620+
/// Server receives the UserSerializableClass, modifies it, and sends it back
621+
/// </summary>
622+
/// <param name="userSerializableClass"></param>
623+
[ServerRpc(RequireOwnership = false)]
624+
private void SendServerSerializedDataServerRpc(UserSerializableClass userSerializableClass)
625+
{
626+
userSerializableClass.MyintValue++;
627+
userSerializableClass.MyulongValue++;
620628

621-
/// <summary>
622-
/// Server receives the UserSerializableClass, modifies it, and sends it back
623-
/// </summary>
624-
/// <param name="userSerializableClass"></param>
625-
[ServerRpc(RequireOwnership = false)]
626-
private void SendServerSerializedDataServerRpc(UserSerializableClass userSerializableClass)
627-
{
628-
userSerializableClass.MyintValue++;
629-
userSerializableClass.MyulongValue++;
629+
for (int i = 0; i < 32; i++)
630+
{
631+
Assert.AreEqual(userSerializableClass.MyByteListValues[i], i);
632+
}
630633

631-
for (int i = 0; i < 32; i++)
632-
{
633-
Assert.AreEqual(userSerializableClass.MyByteListValues[i], i);
634+
for (int i = 32; i < 64; i++)
635+
{
636+
userSerializableClass.MyByteListValues.Add((byte)i);
637+
}
638+
SendClientSerializedDataClientRpc(userSerializableClass);
634639
}
635640

636-
for (int i = 32; i < 64; i++)
641+
/// <summary>
642+
/// Client receives the UserSerializableClass and then invokes the OnSerializableClassUpdated (if set)
643+
/// </summary>
644+
/// <param name="userSerializableClass"></param>
645+
[ClientRpc]
646+
private void SendClientSerializedDataClientRpc(UserSerializableClass userSerializableClass)
637647
{
638-
userSerializableClass.MyByteListValues.Add((byte)i);
648+
if (OnSerializableClassUpdated != null)
649+
{
650+
OnSerializableClassUpdated.Invoke(userSerializableClass);
651+
}
639652
}
640-
SendClientSerializedDataClientRpc(userSerializableClass);
641-
}
642653

643-
/// <summary>
644-
/// Client receives the UserSerializableClass and then invokes the OnSerializableClassUpdated (if set)
645-
/// </summary>
646-
/// <param name="userSerializableClass"></param>
647-
[ClientRpc]
648-
private void SendClientSerializedDataClientRpc(UserSerializableClass userSerializableClass)
649-
{
650-
if (OnSerializableClassUpdated != null)
654+
/// <summary>
655+
/// Starts the unit test and passes the UserSerializableStruct from the client to the server
656+
/// </summary>
657+
/// <param name="userSerializableStruct"></param>
658+
public void ClientStartTest(UserSerializableStruct userSerializableStruct)
651659
{
652-
OnSerializableClassUpdated.Invoke(userSerializableClass);
660+
SendServerSerializedDataServerRpc(userSerializableStruct);
653661
}
654-
}
655-
656-
/// <summary>
657-
/// Starts the unit test and passes the UserSerializableStruct from the client to the server
658-
/// </summary>
659-
/// <param name="userSerializableStruct"></param>
660-
public void ClientStartTest(UserSerializableStruct userSerializableStruct)
661-
{
662-
SendServerSerializedDataServerRpc(userSerializableStruct);
663-
}
664662

665-
/// <summary>
666-
/// Server receives the UserSerializableStruct, modifies it, and sends it back
667-
/// </summary>
668-
/// <param name="userSerializableStruct"></param>
669-
[ServerRpc(RequireOwnership = false)]
670-
private void SendServerSerializedDataServerRpc(UserSerializableStruct userSerializableStruct)
671-
{
672-
userSerializableStruct.MyintValue++;
673-
userSerializableStruct.MyulongValue++;
663+
/// <summary>
664+
/// Server receives the UserSerializableStruct, modifies it, and sends it back
665+
/// </summary>
666+
/// <param name="userSerializableStruct"></param>
667+
[ServerRpc(RequireOwnership = false)]
668+
private void SendServerSerializedDataServerRpc(UserSerializableStruct userSerializableStruct)
669+
{
670+
userSerializableStruct.MyintValue++;
671+
userSerializableStruct.MyulongValue++;
674672

675-
SendClientSerializedDataClientRpc(userSerializableStruct);
676-
}
673+
SendClientSerializedDataClientRpc(userSerializableStruct);
674+
}
677675

678-
/// <summary>
679-
/// Client receives the UserSerializableStruct and then invokes the OnSerializableStructUpdated (if set)
680-
/// </summary>
681-
/// <param name="userSerializableStruct"></param>
682-
[ClientRpc]
683-
private void SendClientSerializedDataClientRpc(UserSerializableStruct userSerializableStruct)
684-
{
685-
if (OnSerializableStructUpdated != null)
676+
/// <summary>
677+
/// Client receives the UserSerializableStruct and then invokes the OnSerializableStructUpdated (if set)
678+
/// </summary>
679+
/// <param name="userSerializableStruct"></param>
680+
[ClientRpc]
681+
private void SendClientSerializedDataClientRpc(UserSerializableStruct userSerializableStruct)
686682
{
687-
OnSerializableStructUpdated.Invoke(userSerializableStruct);
683+
if (OnSerializableStructUpdated != null)
684+
{
685+
OnSerializableStructUpdated.Invoke(userSerializableStruct);
686+
}
688687
}
689-
}
690688

691-
[ClientRpc]
692-
public void SendMyObjectClientRpc(MyObject obj)
693-
{
694-
if (OnMyObjectUpdated != null)
689+
[ClientRpc]
690+
public void SendMyObjectClientRpc(MyObject obj)
695691
{
696-
OnMyObjectUpdated.Invoke(obj);
692+
if (OnMyObjectUpdated != null)
693+
{
694+
OnMyObjectUpdated.Invoke(obj);
695+
}
697696
}
698-
}
699-
[ClientRpc]
700-
public void SendMyObjectPassedWithThisRefClientRpc(MyObjectPassedWithThisRef obj)
701-
{
702-
if (OnMyObjectPassedWithThisRefUpdated != null)
697+
[ClientRpc]
698+
public void SendMyObjectPassedWithThisRefClientRpc(MyObjectPassedWithThisRef obj)
703699
{
704-
OnMyObjectPassedWithThisRefUpdated.Invoke(obj);
700+
if (OnMyObjectPassedWithThisRefUpdated != null)
701+
{
702+
OnMyObjectPassedWithThisRefUpdated.Invoke(obj);
703+
}
705704
}
706-
}
707705

708-
[ClientRpc]
709-
public void SendMySharedObjectReferencedByIdClientRpc(MySharedObjectReferencedById obj)
710-
{
711-
if (OnMySharedObjectReferencedByIdUpdated != null)
706+
[ClientRpc]
707+
public void SendMySharedObjectReferencedByIdClientRpc(MySharedObjectReferencedById obj)
712708
{
713-
OnMySharedObjectReferencedByIdUpdated.Invoke(obj);
709+
if (OnMySharedObjectReferencedByIdUpdated != null)
710+
{
711+
OnMySharedObjectReferencedByIdUpdated.Invoke(obj);
712+
}
714713
}
715-
}
716714

717-
[ServerRpc]
718-
public void SendMyObjectServerRpc(MyObject obj)
719-
{
720-
if (OnMyObjectUpdated != null)
715+
[ServerRpc]
716+
public void SendMyObjectServerRpc(MyObject obj)
721717
{
722-
OnMyObjectUpdated.Invoke(obj);
718+
if (OnMyObjectUpdated != null)
719+
{
720+
OnMyObjectUpdated.Invoke(obj);
721+
}
722+
SendMyObjectClientRpc(obj);
723723
}
724-
SendMyObjectClientRpc(obj);
725-
}
726724

727-
[ServerRpc]
728-
public void SendMyObjectPassedWithThisRefServerRpc(MyObjectPassedWithThisRef obj)
729-
{
730-
if (OnMyObjectPassedWithThisRefUpdated != null)
725+
[ServerRpc]
726+
public void SendMyObjectPassedWithThisRefServerRpc(MyObjectPassedWithThisRef obj)
731727
{
732-
OnMyObjectPassedWithThisRefUpdated.Invoke(obj);
728+
if (OnMyObjectPassedWithThisRefUpdated != null)
729+
{
730+
OnMyObjectPassedWithThisRefUpdated.Invoke(obj);
731+
}
732+
SendMyObjectPassedWithThisRefClientRpc(obj);
733733
}
734-
SendMyObjectPassedWithThisRefClientRpc(obj);
735-
}
736734

737-
[ServerRpc]
738-
public void SendMySharedObjectReferencedByIdServerRpc(MySharedObjectReferencedById obj)
739-
{
740-
if (OnMySharedObjectReferencedByIdUpdated != null)
735+
[ServerRpc]
736+
public void SendMySharedObjectReferencedByIdServerRpc(MySharedObjectReferencedById obj)
741737
{
742-
OnMySharedObjectReferencedByIdUpdated.Invoke(obj);
738+
if (OnMySharedObjectReferencedByIdUpdated != null)
739+
{
740+
OnMySharedObjectReferencedByIdUpdated.Invoke(obj);
741+
}
742+
SendMySharedObjectReferencedByIdClientRpc(obj);
743743
}
744-
SendMySharedObjectReferencedByIdClientRpc(obj);
745744
}
745+
746+
747+
746748
}
747749

748750
/// <summary>

testproject/Assets/Tests/Runtime/testproject.runtimetests.asmdef

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
"rootNamespace": "TestProject.RuntimeTests",
44
"references": [
55
"Unity.Netcode.Runtime",
6-
"Unity.Netcode.Editor",
7-
"Unity.Netcode.Components",
8-
"Unity.Collections",
96
"UnityEngine.TestRunner",
107
"Unity.Netcode.RuntimeTests",
118
"TestProject.ManualTests",

0 commit comments

Comments
 (0)