@@ -12,6 +12,14 @@ namespace Unity.Netcode.UTP.RuntimeTests
1212{
1313 public class TransportTests
1414 {
15+ // No need to test all reliable delivery methods since they all map to the same pipeline.
16+ private static readonly NetworkDelivery [ ] k_DeliveryParameters =
17+ {
18+ NetworkDelivery . Unreliable ,
19+ NetworkDelivery . UnreliableSequenced ,
20+ NetworkDelivery . Reliable
21+ } ;
22+
1523 private UnityTransport m_Server , m_Client1 , m_Client2 ;
1624 private List < TransportEvent > m_ServerEvents , m_Client1Events , m_Client2Events ;
1725
@@ -46,7 +54,7 @@ public IEnumerator Cleanup()
4654
4755 // Check if can make a simple data exchange.
4856 [ UnityTest ]
49- public IEnumerator PingPong ( )
57+ public IEnumerator PingPong ( [ ValueSource ( "k_DeliveryParameters" ) ] NetworkDelivery delivery )
5058 {
5159 InitializeTransport ( out m_Server , out m_ServerEvents ) ;
5260 InitializeTransport ( out m_Client1 , out m_Client1Events ) ;
@@ -57,28 +65,25 @@ public IEnumerator PingPong()
5765 yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ServerEvents ) ;
5866
5967 var ping = new ArraySegment < byte > ( Encoding . ASCII . GetBytes ( "ping" ) ) ;
60- m_Client1 . Send ( m_Client1 . ServerClientId , ping , NetworkDelivery . ReliableSequenced ) ;
68+ m_Client1 . Send ( m_Client1 . ServerClientId , ping , delivery ) ;
6169
6270 yield return WaitForNetworkEvent ( NetworkEvent . Data , m_ServerEvents ) ;
6371
6472 Assert . That ( m_ServerEvents [ 1 ] . Data , Is . EquivalentTo ( Encoding . ASCII . GetBytes ( "ping" ) ) ) ;
6573
6674 var pong = new ArraySegment < byte > ( Encoding . ASCII . GetBytes ( "pong" ) ) ;
67- m_Server . Send ( m_ServerEvents [ 0 ] . ClientID , pong , NetworkDelivery . ReliableSequenced ) ;
75+ m_Server . Send ( m_ServerEvents [ 0 ] . ClientID , pong , delivery ) ;
6876
6977 yield return WaitForNetworkEvent ( NetworkEvent . Data , m_Client1Events ) ;
7078
7179 Assert . That ( m_Client1Events [ 1 ] . Data , Is . EquivalentTo ( Encoding . ASCII . GetBytes ( "pong" ) ) ) ;
7280
73- // server.Shutdown();
74- // client.Shutdown();
75-
7681 yield return null ;
7782 }
7883
7984 // Check if can make a simple data exchange (both ways at a time).
8085 [ UnityTest ]
81- public IEnumerator PingPongSimultaneous ( )
86+ public IEnumerator PingPongSimultaneous ( [ ValueSource ( "k_DeliveryParameters" ) ] NetworkDelivery delivery )
8287 {
8388 InitializeTransport ( out m_Server , out m_ServerEvents ) ;
8489 InitializeTransport ( out m_Client1 , out m_Client1Events ) ;
@@ -89,8 +94,8 @@ public IEnumerator PingPongSimultaneous()
8994 yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ServerEvents ) ;
9095
9196 var ping = new ArraySegment < byte > ( Encoding . ASCII . GetBytes ( "ping" ) ) ;
92- m_Server . Send ( m_ServerEvents [ 0 ] . ClientID , ping , NetworkDelivery . ReliableSequenced ) ;
93- m_Client1 . Send ( m_Client1 . ServerClientId , ping , NetworkDelivery . ReliableSequenced ) ;
97+ m_Server . Send ( m_ServerEvents [ 0 ] . ClientID , ping , delivery ) ;
98+ m_Client1 . Send ( m_Client1 . ServerClientId , ping , delivery ) ;
9499
95100 // Once one event is in the other should be too.
96101 yield return WaitForNetworkEvent ( NetworkEvent . Data , m_ServerEvents ) ;
@@ -99,8 +104,8 @@ public IEnumerator PingPongSimultaneous()
99104 Assert . That ( m_Client1Events [ 1 ] . Data , Is . EquivalentTo ( Encoding . ASCII . GetBytes ( "ping" ) ) ) ;
100105
101106 var pong = new ArraySegment < byte > ( Encoding . ASCII . GetBytes ( "pong" ) ) ;
102- m_Server . Send ( m_ServerEvents [ 0 ] . ClientID , pong , NetworkDelivery . ReliableSequenced ) ;
103- m_Client1 . Send ( m_Client1 . ServerClientId , pong , NetworkDelivery . ReliableSequenced ) ;
107+ m_Server . Send ( m_ServerEvents [ 0 ] . ClientID , pong , delivery ) ;
108+ m_Client1 . Send ( m_Client1 . ServerClientId , pong , delivery ) ;
104109
105110 // Once one event is in the other should be too.
106111 yield return WaitForNetworkEvent ( NetworkEvent . Data , m_ServerEvents ) ;
@@ -112,7 +117,7 @@ public IEnumerator PingPongSimultaneous()
112117 }
113118
114119 [ UnityTest ]
115- public IEnumerator FilledSendQueueSingleSend ( )
120+ public IEnumerator FilledSendQueueSingleSend ( [ ValueSource ( "k_DeliveryParameters" ) ] NetworkDelivery delivery )
116121 {
117122 InitializeTransport ( out m_Server , out m_ServerEvents ) ;
118123 InitializeTransport ( out m_Client1 , out m_Client1Events ) ;
@@ -123,15 +128,15 @@ public IEnumerator FilledSendQueueSingleSend()
123128 yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ServerEvents ) ;
124129
125130 var payload = new ArraySegment < byte > ( new byte [ UnityTransport . InitialBatchQueueSize ] ) ;
126- m_Client1 . Send ( m_Client1 . ServerClientId , payload , NetworkDelivery . ReliableFragmentedSequenced ) ;
131+ m_Client1 . Send ( m_Client1 . ServerClientId , payload , delivery ) ;
127132
128133 yield return WaitForNetworkEvent ( NetworkEvent . Data , m_ServerEvents ) ;
129134
130135 yield return null ;
131136 }
132137
133138 [ UnityTest ]
134- public IEnumerator FilledSendQueueMultipleSends ( )
139+ public IEnumerator FilledSendQueueMultipleSends ( [ ValueSource ( "k_DeliveryParameters" ) ] NetworkDelivery delivery )
135140 {
136141 InitializeTransport ( out m_Server , out m_ServerEvents ) ;
137142 InitializeTransport ( out m_Client1 , out m_Client1Events ) ;
@@ -149,7 +154,7 @@ public IEnumerator FilledSendQueueMultipleSends()
149154 // Without that we wouldn't fill the send queue; it would get flushed right when we
150155 // try to send the last message.
151156 var payload = new ArraySegment < byte > ( new byte [ 1024 - 4 ] ) ;
152- m_Client1 . Send ( m_Client1 . ServerClientId , payload , NetworkDelivery . ReliableFragmentedSequenced ) ;
157+ m_Client1 . Send ( m_Client1 . ServerClientId , payload , delivery ) ;
153158 }
154159
155160 yield return WaitForNetworkEvent ( NetworkEvent . Data , m_ServerEvents ) ;
@@ -162,7 +167,7 @@ public IEnumerator FilledSendQueueMultipleSends()
162167
163168 // Check making multiple sends to a client in a single frame.
164169 [ UnityTest ]
165- public IEnumerator MultipleSendsSingleFrame ( )
170+ public IEnumerator MultipleSendsSingleFrame ( [ ValueSource ( "k_DeliveryParameters" ) ] NetworkDelivery delivery )
166171 {
167172 InitializeTransport ( out m_Server , out m_ServerEvents ) ;
168173 InitializeTransport ( out m_Client1 , out m_Client1Events ) ;
@@ -173,10 +178,10 @@ public IEnumerator MultipleSendsSingleFrame()
173178 yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ServerEvents ) ;
174179
175180 var data1 = new ArraySegment < byte > ( new byte [ ] { 11 } ) ;
176- m_Client1 . Send ( m_Client1 . ServerClientId , data1 , NetworkDelivery . ReliableSequenced ) ;
181+ m_Client1 . Send ( m_Client1 . ServerClientId , data1 , delivery ) ;
177182
178183 var data2 = new ArraySegment < byte > ( new byte [ ] { 22 } ) ;
179- m_Client1 . Send ( m_Client1 . ServerClientId , data2 , NetworkDelivery . ReliableSequenced ) ;
184+ m_Client1 . Send ( m_Client1 . ServerClientId , data2 , delivery ) ;
180185
181186 yield return WaitForNetworkEvent ( NetworkEvent . Data , m_ServerEvents ) ;
182187
@@ -191,7 +196,7 @@ public IEnumerator MultipleSendsSingleFrame()
191196
192197 // Check sending data to multiple clients.
193198 [ UnityTest ]
194- public IEnumerator SendMultipleClients ( )
199+ public IEnumerator SendMultipleClients ( [ ValueSource ( "k_DeliveryParameters" ) ] NetworkDelivery delivery )
195200 {
196201 InitializeTransport ( out m_Server , out m_ServerEvents ) ;
197202 InitializeTransport ( out m_Client1 , out m_Client1Events ) ;
@@ -207,10 +212,10 @@ public IEnumerator SendMultipleClients()
207212 Assert . AreEqual ( 2 , m_ServerEvents . Count ) ;
208213
209214 var data1 = new ArraySegment < byte > ( new byte [ ] { 11 } ) ;
210- m_Server . Send ( m_ServerEvents [ 0 ] . ClientID , data1 , NetworkDelivery . ReliableSequenced ) ;
215+ m_Server . Send ( m_ServerEvents [ 0 ] . ClientID , data1 , delivery ) ;
211216
212217 var data2 = new ArraySegment < byte > ( new byte [ ] { 22 } ) ;
213- m_Server . Send ( m_ServerEvents [ 1 ] . ClientID , data2 , NetworkDelivery . ReliableSequenced ) ;
218+ m_Server . Send ( m_ServerEvents [ 1 ] . ClientID , data2 , delivery ) ;
214219
215220 // Once one has received its data, the other should have too.
216221 yield return WaitForNetworkEvent ( NetworkEvent . Data , m_Client1Events ) ;
@@ -228,7 +233,7 @@ public IEnumerator SendMultipleClients()
228233
229234 // Check receiving data from multiple clients.
230235 [ UnityTest ]
231- public IEnumerator ReceiveMultipleClients ( )
236+ public IEnumerator ReceiveMultipleClients ( [ ValueSource ( "k_DeliveryParameters" ) ] NetworkDelivery delivery )
232237 {
233238 InitializeTransport ( out m_Server , out m_ServerEvents ) ;
234239 InitializeTransport ( out m_Client1 , out m_Client1Events ) ;
@@ -244,10 +249,10 @@ public IEnumerator ReceiveMultipleClients()
244249 Assert . AreEqual ( 1 , m_Client2Events . Count ) ;
245250
246251 var data1 = new ArraySegment < byte > ( new byte [ ] { 11 } ) ;
247- m_Client1 . Send ( m_Client1 . ServerClientId , data1 , NetworkDelivery . ReliableSequenced ) ;
252+ m_Client1 . Send ( m_Client1 . ServerClientId , data1 , delivery ) ;
248253
249254 var data2 = new ArraySegment < byte > ( new byte [ ] { 22 } ) ;
250- m_Client2 . Send ( m_Client2 . ServerClientId , data2 , NetworkDelivery . ReliableSequenced ) ;
255+ m_Client2 . Send ( m_Client2 . ServerClientId , data2 , delivery ) ;
251256
252257 yield return WaitForNetworkEvent ( NetworkEvent . Data , m_ServerEvents ) ;
253258
0 commit comments