22use crate :: protocol:: Protocol ;
33
44#[ cfg( test) ]
5- pub fn test_sender ( test_connection : & mut dyn crate :: ui:: connect:: DataConnection , files : Vec < crate :: protocol:: FileDescriptor > , send : & mut dyn Protocol ) {
5+ pub fn test_sender ( test_connection : & mut crate :: ui:: connect:: TestConnection , files : Vec < crate :: protocol:: FileDescriptor > , send : & mut dyn Protocol ) {
66 use crate :: protocol:: { TestStorageHandler , TransferState } ;
77 use std:: sync:: { Arc , Mutex } ;
8-
8+ test_connection . is_sender = true ;
99 let send_transfer_state = Arc :: new ( Mutex :: new ( TransferState :: default ( ) ) ) ;
1010 send. initiate_send ( test_connection, files, & mut send_transfer_state. lock ( ) . unwrap ( ) )
1111 . expect ( "error." ) ;
@@ -17,10 +17,11 @@ pub fn test_sender(test_connection: &mut dyn crate::ui::connect::DataConnection,
1717}
1818
1919#[ cfg( test) ]
20- pub fn test_receiver ( test_connection : & mut dyn crate :: ui:: connect:: DataConnection , receiver : & mut dyn Protocol ) -> crate :: protocol:: TestStorageHandler {
20+ pub fn test_receiver ( test_connection : & mut crate :: ui:: connect:: TestConnection , receiver : & mut dyn Protocol ) -> crate :: protocol:: TestStorageHandler {
2121 use crate :: protocol:: { TestStorageHandler , TransferState } ;
2222 use std:: sync:: { Arc , Mutex } ;
2323
24+ test_connection. is_sender = false ;
2425 let send_transfer_state = Arc :: new ( Mutex :: new ( TransferState :: default ( ) ) ) ;
2526 receiver
2627 . initiate_recv ( test_connection, & mut send_transfer_state. lock ( ) . unwrap ( ) )
@@ -58,7 +59,7 @@ mod xy_modem_tests {
5859
5960 #[ test]
6061 fn test_xmodem_128block_sender ( ) {
61- let mut test_connection: TestConnection = TestConnection :: new ( ) ;
62+ let mut test_connection = TestConnection :: new ( false ) ;
6263
6364 let mut send = crate :: protocol:: XYmodem :: new ( XYModemVariant :: XModem ) ;
6465
@@ -80,12 +81,12 @@ mod xy_modem_tests {
8081 result. push ( 0xAA ) ; // CHECKSUM
8182 result. push ( EOT ) ;
8283
83- assert_eq ! ( result, test_connection. read_buffer ( ) ) ;
84+ assert_eq ! ( result, test_connection. read_receive_buffer ( ) ) ;
8485 }
8586
8687 #[ test]
8788 fn test_xmodem_128block_case2_sender ( ) {
88- let mut test_connection: TestConnection = TestConnection :: new ( ) ;
89+ let mut test_connection = TestConnection :: new ( false ) ;
8990 let mut send = crate :: protocol:: XYmodem :: new ( XYModemVariant :: XModem ) ;
9091 let mut data = vec ! [ 1u8 , 2 , 5 , 10 ] ;
9192 let files = vec ! [ FileDescriptor :: create_test( "foo.bar" . to_string( ) , data. clone( ) ) ] ;
@@ -102,12 +103,12 @@ mod xy_modem_tests {
102103 result. push ( 207 ) ; // CHECKSUM
103104 result. push ( EOT ) ;
104105
105- assert_eq ! ( result, test_connection. read_buffer ( ) ) ;
106+ assert_eq ! ( result, test_connection. read_receive_buffer ( ) ) ;
106107 }
107108
108109 #[ test]
109110 fn test_xmodem_1kblock_sender ( ) {
110- let mut test_connection: TestConnection = TestConnection :: new ( ) ;
111+ let mut test_connection = TestConnection :: new ( false ) ;
111112 let mut send = crate :: protocol:: XYmodem :: new ( XYModemVariant :: XModem1k ) ;
112113 let mut data = vec ! [ 5 ; 900 ] ;
113114 let files = vec ! [ FileDescriptor :: create_test( "foo.bar" . to_string( ) , data. clone( ) ) ] ;
@@ -128,12 +129,12 @@ mod xy_modem_tests {
128129 result. push ( 85 ) ; // CHECKSUM
129130 result. push ( EOT ) ;
130131
131- assert_eq ! ( result, test_connection. read_buffer ( ) ) ;
132+ assert_eq ! ( result, test_connection. read_receive_buffer ( ) ) ;
132133 }
133134
134135 #[ test]
135136 fn test_xmodem_128block_receiver ( ) {
136- let mut test_connection: TestConnection = TestConnection :: new ( ) ;
137+ let mut test_connection = TestConnection :: new ( true ) ;
137138 let mut recv = crate :: protocol:: XYmodem :: new ( XYModemVariant :: XModem ) ;
138139 let data = vec ! [ 1u8 , 2 , 5 , 10 ] ;
139140
@@ -154,7 +155,7 @@ mod xy_modem_tests {
154155
155156 #[ test]
156157 fn test_xmodem_1kblock_receiver ( ) {
157- let mut test_connection: TestConnection = TestConnection :: new ( ) ;
158+ let mut test_connection = TestConnection :: new ( true ) ;
158159 let mut recv = crate :: protocol:: XYmodem :: new ( XYModemVariant :: XModem1k ) ;
159160 let data = vec ! [ 5 ; 900 ] ;
160161
@@ -176,7 +177,7 @@ mod xy_modem_tests {
176177
177178 #[ test]
178179 fn test_ymodem_sender ( ) {
179- let mut test_connection: TestConnection = TestConnection :: new ( ) ;
180+ let mut test_connection = TestConnection :: new ( false ) ;
180181
181182 let mut send = crate :: protocol:: XYmodem :: new ( XYModemVariant :: YModem ) ;
182183
@@ -205,29 +206,34 @@ mod xy_modem_tests {
205206 result. extend_from_slice ( & [ 150 , 207 ] ) ; // CHECKSUM
206207 result. push ( EOT ) ;
207208
208- assert_eq ! ( result, test_connection. read_buffer ( ) ) ;
209+ assert_eq ! ( result, test_connection. read_receive_buffer ( ) ) ;
209210 }
210211
211212 #[ test]
212213 fn test_ymodem_receiver ( ) {
213- let mut test_connection: TestConnection = TestConnection :: new ( ) ;
214+ let mut test_connection = TestConnection :: new ( true ) ;
214215 let mut recv = crate :: protocol:: XYmodem :: new ( XYModemVariant :: YModem ) ;
215216 let data = vec ! [ 1u8 , 2 , 5 , 10 ] ;
216217 let mut result = vec ! [ SOH , 0x00 , 0xFF ] ;
217218
218219 result. extend_from_slice ( b"foo.bar" ) ;
219220 result. extend_from_slice ( & [ 0 , b'4' ] ) ; // length
220-
221221 result. extend_from_slice ( vec ! [ 0 ; 128 - "foo.bar" . len( ) - 2 ] . as_slice ( ) ) ;
222222 result. extend_from_slice ( & [ 108 , 107 ] ) ; // CHECKSUM
223-
224223 result. extend_from_slice ( & [ SOH , 0x01 , 0xFE ] ) ;
225224
226225 let mut cloned_data = data. clone ( ) ;
227226 cloned_data. resize ( 128 , 0x1A ) ;
228227 result. extend_from_slice ( & cloned_data) ;
229228 result. extend_from_slice ( & [ 150 , 207 ] ) ; // CHECKSUM
230- result. push ( EOT ) ;
229+ result. push ( EOT ) ; // -> NACK
230+ result. push ( EOT ) ; // -> ACK
231+
232+ // No next file:
233+ result. extend_from_slice ( & [ SOH , 0x00 , 0xFF ] ) ;
234+ result. extend_from_slice ( vec ! [ 0 ; 128 ] . as_slice ( ) ) ;
235+ result. extend_from_slice ( & [ 0 , 0 ] ) ;
236+
231237 test_connection. send ( result) . unwrap ( ) ;
232238
233239 let storage_handler = test_receiver ( & mut test_connection, & mut recv) ;
0 commit comments