diff --git a/src/dest.rs b/src/dest.rs index b631be6..95a1d7f 100644 --- a/src/dest.rs +++ b/src/dest.rs @@ -30,36 +30,36 @@ //! 4. A Finished PDU has been sent back to the remote side. //! 5. A Finished PDU ACK was received. use crate::{ + DummyPduProvider, GenericSendError, IndicationConfig, PduProvider, PositiveAckParams, lost_segments::{LostSegmentError, LostSegmentStore}, user::TransactionFinishedParams, - DummyPduProvider, GenericSendError, IndicationConfig, PduProvider, PositiveAckParams, }; use core::{ cell::{Cell, RefCell}, - str::{from_utf8, from_utf8_unchecked, Utf8Error}, + str::{Utf8Error, from_utf8, from_utf8_unchecked}, }; use super::{ - filestore::{FilestoreError, VirtualFilestore}, - user::{CfdpUser, FileSegmentRecvdParams, MetadataReceivedParams}, Countdown, EntityType, LocalEntityConfig, PacketTarget, PduSender, RemoteConfigStore, RemoteEntityConfig, State, TimerContext, TimerCreator, TransactionId, UserFaultHook, + filestore::{FilestoreError, VirtualFilestore}, + user::{CfdpUser, FileSegmentRecvdParams, MetadataReceivedParams}, }; use smallvec::SmallVec; use spacepackets::{ cfdp::{ + ChecksumType, ConditionCode, FaultHandlerCode, LargeFileFlag, PduType, TransactionStatus, + TransmissionMode, pdu::{ + CfdpPdu, CommonPduConfig, FileDirectiveType, PduError, PduHeader, ack::AckPdu, eof::EofPdu, file_data::FileDataPdu, finished::{DeliveryCode, FileStatus, FinishedPduCreator}, metadata::{MetadataGenericParams, MetadataPduReader}, nak::{NakPduCreator, NakPduCreatorWithReservedSeqReqsBuf}, - CfdpPdu, CommonPduConfig, FileDirectiveType, PduError, PduHeader, }, - tlv::{msg_to_user::MsgToUserTlv, EntityIdTlv, GenericTlv, ReadableTlv, TlvType}, - ChecksumType, ConditionCode, FaultHandlerCode, LargeFileFlag, PduType, TransactionStatus, - TransmissionMode, + tlv::{EntityIdTlv, GenericTlv, ReadableTlv, TlvType, msg_to_user::MsgToUserTlv}, }, util::{UnsignedByteField, UnsignedEnum}, }; @@ -392,14 +392,14 @@ impl } impl< - PduSenderInstance: PduSender, - UserFaultHookInstance: UserFaultHook, - VirtualFilestoreInstance: VirtualFilestore, - RemoteConfigStoreInstance: RemoteConfigStore, - TimerCreatorInstance: TimerCreator, - CountdownInstance: Countdown, - LostSegmentTracker: LostSegmentStore, - > + PduSenderInstance: PduSender, + UserFaultHookInstance: UserFaultHook, + VirtualFilestoreInstance: VirtualFilestore, + RemoteConfigStoreInstance: RemoteConfigStore, + TimerCreatorInstance: TimerCreator, + CountdownInstance: Countdown, + LostSegmentTracker: LostSegmentStore, +> DestinationHandler< PduSenderInstance, UserFaultHookInstance, @@ -1807,21 +1807,21 @@ mod tests { use rand::Rng; use spacepackets::{ cfdp::{ - lv::Lv, - pdu::{finished::FinishedPduReader, metadata::MetadataPduCreator, WritablePduPacket}, ChecksumType, TransmissionMode, + lv::Lv, + pdu::{WritablePduPacket, finished::FinishedPduReader, metadata::MetadataPduCreator}, }, - util::{UnsignedByteFieldU8}, + util::UnsignedByteFieldU8, }; use crate::{ + CRC_32, FaultHandler, IndicationConfig, PduRawWithInfo, RemoteConfigStoreStd, filestore::NativeFilestore, lost_segments::LostSegmentsList, tests::{ - basic_remote_cfg_table, SentPdu, TestCfdpSender, TestCfdpUser, TestCheckTimer, - TestCheckTimerCreator, TestFaultHandler, TimerExpiryControl, LOCAL_ID, REMOTE_ID, + LOCAL_ID, REMOTE_ID, SentPdu, TestCfdpSender, TestCfdpUser, TestCheckTimer, + TestCheckTimerCreator, TestFaultHandler, TimerExpiryControl, basic_remote_cfg_table, }, - FaultHandler, IndicationConfig, PduRawWithInfo, RemoteConfigStoreStd, CRC_32, }; use super::*; @@ -1844,7 +1844,6 @@ mod tests { check_dest_file: bool, check_handler_idle_at_drop: bool, closure_requested: bool, - //pdu_header: PduHeader, pdu_conf: CommonPduConfig, expected_full_data: Vec, expected_file_size: u64, @@ -1877,7 +1876,12 @@ mod tests { check_dest_file, check_handler_idle_at_drop: true, expected_file_size: 0, - pdu_conf: CommonPduConfig::default(), + pdu_conf: CommonPduConfig::new_with_byte_fields( + LOCAL_ID, + REMOTE_ID, + UnsignedByteFieldU8::new(0), + ) + .unwrap(), expected_full_data: Vec::new(), buf: [0; 512], }; @@ -1932,6 +1936,7 @@ mod tests { transmission_mode: TransmissionMode, ) -> Result { self.expected_file_size = file_size; + self.pdu_conf.trans_mode = transmission_mode; assert_eq!(user.transaction_indication_call_count, 0); assert_eq!(user.metadata_recv_queue.len(), 0); let pdu_header = PduHeader::new_no_file_data(self.pdu_conf, 0); @@ -2133,12 +2138,14 @@ mod tests { let dest_handler = default_dest_handler(fault_handler, test_sender, &TimerExpiryControl::default()); assert!(dest_handler.transmission_mode().is_none()); - assert!(dest_handler - .local_cfg - .fault_handler - .user_hook - .borrow() - .all_queues_empty()); + assert!( + dest_handler + .local_cfg + .fault_handler + .user_hook + .borrow() + .all_queues_empty() + ); assert!(dest_handler.pdu_sender.queue_empty()); assert_eq!(dest_handler.state(), State::Idle); assert_eq!(dest_handler.step(), TransactionStep::Idle); @@ -2193,7 +2200,7 @@ mod tests { let mut tb = DestHandlerTestbench::new_with_fixed_paths(fault_handler, false); let mut test_user = tb.test_user_from_cached_paths(file_size); - tb.generic_transfer_init(&mut test_user, 0, TransmissionMode::Unacknowledged) + tb.generic_transfer_init(&mut test_user, file_size, TransmissionMode::Unacknowledged) .expect("transfer init failed"); tb.state_check(State::Busy, TransactionStep::ReceivingFileDataPdus); tb.generic_file_data_insert(&mut test_user, 0, file_data) @@ -2215,7 +2222,7 @@ mod tests { let mut tb = DestHandlerTestbench::new_with_fixed_paths(fault_handler, false); let mut test_user = tb.test_user_from_cached_paths(file_size); - tb.generic_transfer_init(&mut test_user, 0, TransmissionMode::Unacknowledged) + tb.generic_transfer_init(&mut test_user, file_size, TransmissionMode::Unacknowledged) .expect("transfer init failed"); tb.state_check(State::Busy, TransactionStep::ReceivingFileDataPdus); tb.generic_file_data_insert(&mut test_user, 0, &random_data[0..segment_len]) @@ -2244,7 +2251,7 @@ mod tests { let mut tb = DestHandlerTestbench::new_with_fixed_paths(fault_handler, false); let mut test_user = tb.test_user_from_cached_paths(file_size); let transaction_id = tb - .generic_transfer_init(&mut test_user, 0, TransmissionMode::Unacknowledged) + .generic_transfer_init(&mut test_user, file_size, TransmissionMode::Unacknowledged) .expect("transfer init failed"); tb.state_check(State::Busy, TransactionStep::ReceivingFileDataPdus); @@ -2288,7 +2295,7 @@ mod tests { let mut random_data = [0u8; 512]; rng.fill(&mut random_data); let file_size = random_data.len() as u64; - let segment_len = 256; + let segment_len: usize = 256; let check_checksum_failure = |testbench: &mut DestHandlerTestbench, transaction_id: TransactionId| { let mut fault_hook = testbench.handler.local_cfg.user_fault_hook().borrow_mut(); @@ -2305,7 +2312,7 @@ mod tests { let mut testbench = DestHandlerTestbench::new_with_fixed_paths(fault_handler, false); let mut test_user = testbench.test_user_from_cached_paths(file_size); let transaction_id = testbench - .generic_transfer_init(&mut test_user, 0, TransmissionMode::Unacknowledged) + .generic_transfer_init(&mut test_user, file_size, TransmissionMode::Unacknowledged) .expect("transfer init failed"); testbench.state_check(State::Busy, TransactionStep::ReceivingFileDataPdus);