#![allow(dead_code)] #![allow(unused)] use dfx_testing::runner; mod common; use common::TestApplication; use paste::paste; use rusty_fork::rusty_fork_test; fn cfg_from_version(version: &str) -> &str { match version { "fix40" => include_str!("./cfg/at_40.cfg"), "fix41" => include_str!("cfg/at_41.cfg"), "fix42" => include_str!("cfg/at_42.cfg"), "fix43" => include_str!("cfg/at_43.cfg"), "fix44" => include_str!("cfg/at_44.cfg"), "fix44noreset" => include_str!("cfg/at_44_noreset.cfg"), "fix50" => include_str!("cfg/at_50.cfg"), "fix50sp1" => include_str!("cfg/at_50_sp1.cfg"), "fix50sp2" => include_str!("cfg/at_50_sp2.cfg"), "fix50sp2" => include_str!("cfg/at_50_sp2.cfg"), "misc" => include_str!("cfg/at_42_misc.cfg"), "future" => include_str!("cfg/at_42.cfg"), v => panic!("cfg from version {v}"), } } fn path_from_version(version: &str) -> &str { match version { "fix40" => "tests/definitions/server-ext/fix40/", "fix41" => "tests/definitions/server-ext/fix41/", "fix42" => "tests/definitions/server-ext/fix42/", "fix43" => "tests/definitions/server-ext/fix43/", "fix44" => "tests/definitions/server-ext/fix44/", "fix44noreset" => "tests/definitions/server-ext/fix44noreset/", "fix50" => "tests/definitions/server-ext/fix50/", "fix50sp1" => "tests/definitions/server-ext/fix50sp1/", "fix50sp2" => "tests/definitions/server-ext/fix50sp2/", "misc" => "tests/definitions/server-ext/misc/", "future" => "tests/definitions/server-ext/future/", v => panic!("path from version {v}"), } } macro_rules! imports { () => { use std::{ net::SocketAddr, time::{Duration, Instant}, path::Path, io::{BufReader, BufRead}, fs::File, borrow::BorrowMut, env, }; use dfx::{ connection::SocketAcceptor, session::{Session, SessionSettings}, message_store::MemoryStoreFactory, data_dictionary_provider::DefaultDataDictionaryProvider, logging::PrintlnLogFactory, message::DefaultMessageFactory, }; use super::*; }; } macro_rules! acceptor { ($cfg:ident -> $func:expr) => { paste! { rusty_fork_test!{ #[test] fn []() { let app = TestApplication::new(); let cfg = cfg_from_version(stringify!($cfg)); let session_settings = SessionSettings::from_string(cfg).unwrap(); let mut acceptor = SocketAcceptor::new( &session_settings, app, MemoryStoreFactory::new(), // DefaultStoreFactory::new(&session_settings), DefaultDataDictionaryProvider::new(), PrintlnLogFactory::new(), DefaultMessageFactory::new(), ); println!("{:?}", std::env::current_dir()); let path = path_from_version(stringify!($cfg)); let steps = runner::steps(format!("{path}{}.def", $func).as_str()); acceptor.start(); while acceptor.endpoints().len() == 0 { std::thread::sleep(Duration::from_millis(10)); } let endpoint = acceptor.endpoints()[0]; let runner_thread = runner::create_thread(steps, endpoint.port().into(), path); let start = Instant::now(); while !runner_thread.is_finished() { if Instant::now() - start > Duration::from_secs(120) { println!("ERROR: Timeout: {runner_thread:?}"); break; } std::thread::sleep(Duration::from_millis(10)); } acceptor.stop(); if runner_thread.is_finished() { match runner_thread.join() { Ok(result) => match result { Ok(()) => {}, Err(message) => panic!("Steps failed:\n{message}\n") }, Err(_) => eprintln!("Failed to join thread."), } } else { eprintln!("Runner did not finish in 120s {}::{}", stringify!($cfg), $func); } } } } }; } mod fix40 { imports!(); acceptor!(fix40 -> "10_MsgSeqNumEqual"); acceptor!(fix40 -> "10_MsgSeqNumGreater"); acceptor!(fix40 -> "10_MsgSeqNumLess"); acceptor!(fix40 -> "11a_NewSeqNoGreater"); acceptor!(fix40 -> "11b_NewSeqNoEqual"); acceptor!(fix40 -> "11c_NewSeqNoLess"); acceptor!(fix40 -> "13b_UnsolicitedLogoutMessage"); acceptor!(fix40 -> "14a_BadField"); acceptor!(fix40 -> "14b_RequiredFieldMissing"); acceptor!(fix40 -> "14c_TagNotDefinedForMsgType"); acceptor!(fix40 -> "14d_TagSpecifiedWithoutValue"); acceptor!(fix40 -> "14e_IncorrectEnumValue"); acceptor!(fix40 -> "14f_IncorrectDataFormat"); acceptor!(fix40 -> "14g_HeaderBodyTrailerFieldsOutOfOrder"); acceptor!(fix40 -> "14h_RepeatedTag"); acceptor!(fix40 -> "15_HeaderAndBodyFieldsOrderedDifferently"); acceptor!(fix40 -> "19a_PossResendMessageThatHAsAlreadyBeenSent"); acceptor!(fix40 -> "19b_PossResendMessageThatHasNotBeenSent"); acceptor!(fix40 -> "1a_ValidLogonMsgSeqNumTooHigh"); acceptor!(fix40 -> "1a_ValidLogonWithCorrectMsgSeqNum"); acceptor!(fix40 -> "1b_DuplicateIdentity"); acceptor!(fix40 -> "1c_InvalidSenderCompID"); acceptor!(fix40 -> "1c_InvalidTargetCompID"); acceptor!(fix40 -> "1d_InvalidLogonBadSendingTime"); acceptor!(fix40 -> "1d_InvalidLogonLengthInvalid"); acceptor!(fix40 -> "1d_InvalidLogonWrongBeginString"); acceptor!(fix40 -> "1e_NotLogonMessage"); acceptor!(fix40 -> "20_SimultaneousResendRequest"); acceptor!(fix40 -> "2a_MsgSeqNumCorrect"); acceptor!(fix40 -> "2b_MsgSeqNumTooHigh"); acceptor!(fix40 -> "2c_MsgSeqNumTooLow"); acceptor!(fix40 -> "2d_GarbledMessage"); acceptor!(fix40 -> "2e_PossDupAlreadyReceived"); acceptor!(fix40 -> "2e_PossDupNotReceived"); acceptor!(fix40 -> "2f_PossDupOrigSendingTimeTooHigh"); acceptor!(fix40 -> "2g_PossDupNoOrigSendingTime"); acceptor!(fix40 -> "2i_BeginStringValueUnexpected"); acceptor!(fix40 -> "2k_CompIDDoesNotMatchProfile"); acceptor!(fix40 -> "2m_BodyLengthValueNotCorrect"); acceptor!(fix40 -> "2o_SendingTimeValueOutOfRange"); acceptor!(fix40 -> "2q_MsgTypeNotValid"); acceptor!(fix40 -> "2r_UnregisteredMsgType"); acceptor!(fix40 -> "2t_FirstThreeFieldsOutOfOrder"); acceptor!(fix40 -> "3b_InvalidChecksum"); acceptor!(fix40 -> "3c_GarbledMessage"); acceptor!(fix40 -> "4a_NoDataSentDuringHeartBtInt"); acceptor!(fix40 -> "4b_ReceivedTestRequest"); acceptor!(fix40 -> "6_SendTestRequest"); acceptor!(fix40 -> "7_ReceiveRejectMessage"); acceptor!(fix40 -> "8_AdminAndApplicationMessages"); acceptor!(fix40 -> "8_OnlyAdminMessages"); acceptor!(fix40 -> "8_OnlyApplicationMessages"); acceptor!(fix40 -> "AlreadyLoggedOn"); acceptor!(fix40 -> "RejectResentMessage"); acceptor!(fix40 -> "ReverseRoute"); acceptor!(fix40 -> "ReverseRouteWithEmptyRoutingTags"); } mod fix41 { imports!(); acceptor!(fix41 -> "10_MsgSeqNumEqual"); acceptor!(fix41 -> "10_MsgSeqNumGreater"); acceptor!(fix41 -> "10_MsgSeqNumLess"); acceptor!(fix41 -> "11a_NewSeqNoGreater"); acceptor!(fix41 -> "11b_NewSeqNoEqual"); acceptor!(fix41 -> "11c_NewSeqNoLess"); acceptor!(fix41 -> "13b_UnsolicitedLogoutMessage"); acceptor!(fix41 -> "14a_BadField"); acceptor!(fix41 -> "14b_RequiredFieldMissing"); acceptor!(fix41 -> "14c_TagNotDefinedForMsgType"); acceptor!(fix41 -> "14d_TagSpecifiedWithoutValue"); acceptor!(fix41 -> "14e_IncorrectEnumValue"); acceptor!(fix41 -> "14f_IncorrectDataFormat"); acceptor!(fix41 -> "14g_HeaderBodyTrailerFieldsOutOfOrder"); acceptor!(fix41 -> "14h_RepeatedTag"); acceptor!(fix41 -> "15_HeaderAndBodyFieldsOrderedDifferently"); acceptor!(fix41 -> "19a_PossResendMessageThatHAsAlreadyBeenSent"); acceptor!(fix41 -> "19b_PossResendMessageThatHasNotBeenSent"); acceptor!(fix41 -> "1a_ValidLogonMsgSeqNumTooHigh"); acceptor!(fix41 -> "1a_ValidLogonWithCorrectMsgSeqNum"); acceptor!(fix41 -> "1b_DuplicateIdentity"); acceptor!(fix41 -> "1c_InvalidSenderCompID"); acceptor!(fix41 -> "1c_InvalidTargetCompID"); acceptor!(fix41 -> "1d_InvalidLogonBadSendingTime"); acceptor!(fix41 -> "1d_InvalidLogonLengthInvalid"); acceptor!(fix41 -> "1d_InvalidLogonWrongBeginString"); acceptor!(fix41 -> "1e_NotLogonMessage"); acceptor!(fix41 -> "20_SimultaneousResendRequest"); acceptor!(fix41 -> "2a_MsgSeqNumCorrect"); acceptor!(fix41 -> "2b_MsgSeqNumTooHigh"); acceptor!(fix41 -> "2c_MsgSeqNumTooLow"); acceptor!(fix41 -> "2d_GarbledMessage"); acceptor!(fix41 -> "2e_PossDupAlreadyReceived"); acceptor!(fix41 -> "2e_PossDupNotReceived"); acceptor!(fix41 -> "2f_PossDupOrigSendingTimeTooHigh"); acceptor!(fix41 -> "2g_PossDupNoOrigSendingTime"); acceptor!(fix41 -> "2i_BeginStringValueUnexpected"); acceptor!(fix41 -> "2k_CompIDDoesNotMatchProfile"); acceptor!(fix41 -> "2m_BodyLengthValueNotCorrect"); acceptor!(fix41 -> "2o_SendingTimeValueOutOfRange"); acceptor!(fix41 -> "2q_MsgTypeNotValid"); acceptor!(fix41 -> "2r_UnregisteredMsgType"); acceptor!(fix41 -> "2t_FirstThreeFieldsOutOfOrder"); acceptor!(fix41 -> "3b_InvalidChecksum"); acceptor!(fix41 -> "3c_GarbledMessage"); acceptor!(fix41 -> "4a_NoDataSentDuringHeartBtInt"); acceptor!(fix41 -> "4b_ReceivedTestRequest"); acceptor!(fix41 -> "6_SendTestRequest"); acceptor!(fix41 -> "7_ReceiveRejectMessage"); acceptor!(fix41 -> "8_AdminAndApplicationMessages"); acceptor!(fix41 -> "8_OnlyAdminMessages"); acceptor!(fix41 -> "8_OnlyApplicationMessages"); acceptor!(fix41 -> "AlreadyLoggedOn"); acceptor!(fix41 -> "RejectResentMessage"); acceptor!(fix41 -> "ReverseRoute"); acceptor!(fix41 -> "ReverseRouteWithEmptyRoutingTags"); } mod fix42 { imports!(); acceptor!(fix42 -> "10_MsgSeqNumEqual"); acceptor!(fix42 -> "10_MsgSeqNumGreater"); acceptor!(fix42 -> "10_MsgSeqNumLess"); acceptor!(fix42 -> "11a_NewSeqNoGreater"); acceptor!(fix42 -> "11b_NewSeqNoEqual"); acceptor!(fix42 -> "11c_NewSeqNoLess"); acceptor!(fix42 -> "13b_UnsolicitedLogoutMessage"); acceptor!(fix42 -> "14a_BadField"); acceptor!(fix42 -> "14b_RequiredFieldMissing"); acceptor!(fix42 -> "14c_TagNotDefinedForMsgType"); acceptor!(fix42 -> "14d_TagSpecifiedWithoutValue"); acceptor!(fix42 -> "14e_IncorrectEnumValue"); acceptor!(fix42 -> "14f_IncorrectDataFormat"); acceptor!(fix42 -> "14g_HeaderBodyTrailerFieldsOutOfOrder"); acceptor!(fix42 -> "14h_RepeatedTag"); acceptor!(fix42 -> "14i_RepeatingGroupCountNotEqual"); acceptor!(fix42 -> "15_HeaderAndBodyFieldsOrderedDifferently"); acceptor!(fix42 -> "19a_PossResendMessageThatHAsAlreadyBeenSent"); acceptor!(fix42 -> "19b_PossResendMessageThatHasNotBeenSent"); acceptor!(fix42 -> "1a_ValidLogonMsgSeqNumTooHigh"); acceptor!(fix42 -> "1a_ValidLogonWithCorrectMsgSeqNum"); acceptor!(fix42 -> "1b_DuplicateIdentity"); acceptor!(fix42 -> "1c_InvalidSenderCompID"); acceptor!(fix42 -> "1c_InvalidTargetCompID"); acceptor!(fix42 -> "1d_InvalidLogonBadSendingTime"); acceptor!(fix42 -> "1d_InvalidLogonLengthInvalid"); acceptor!(fix42 -> "1d_InvalidLogonWrongBeginString"); acceptor!(fix42 -> "1e_NotLogonMessage"); acceptor!(fix42 -> "20_SimultaneousResendRequest"); acceptor!(fix42 -> "21_RepeatingGroupSpecifierWithValueOfZero"); acceptor!(fix42 -> "2a_MsgSeqNumCorrect"); acceptor!(fix42 -> "2b_MsgSeqNumTooHigh"); acceptor!(fix42 -> "2c_MsgSeqNumTooLow"); acceptor!(fix42 -> "2d_GarbledMessage"); acceptor!(fix42 -> "2e_PossDupAlreadyReceived"); acceptor!(fix42 -> "2e_PossDupNotReceived"); acceptor!(fix42 -> "2f_PossDupOrigSendingTimeTooHigh"); acceptor!(fix42 -> "2g_PossDupNoOrigSendingTime"); acceptor!(fix42 -> "2i_BeginStringValueUnexpected"); acceptor!(fix42 -> "2k_CompIDDoesNotMatchProfile"); acceptor!(fix42 -> "2m_BodyLengthValueNotCorrect"); acceptor!(fix42 -> "2o_SendingTimeValueOutOfRange"); acceptor!(fix42 -> "2q_MsgTypeNotValid"); acceptor!(fix42 -> "2r_UnregisteredMsgType"); acceptor!(fix42 -> "2t_FirstThreeFieldsOutOfOrder"); acceptor!(fix42 -> "3b_InvalidChecksum"); acceptor!(fix42 -> "3c_GarbledMessage"); acceptor!(fix42 -> "4a_NoDataSentDuringHeartBtInt"); acceptor!(fix42 -> "4b_ReceivedTestRequest"); acceptor!(fix42 -> "6_SendTestRequest"); acceptor!(fix42 -> "7_ReceiveRejectMessage"); acceptor!(fix42 -> "8_AdminAndApplicationMessages"); acceptor!(fix42 -> "8_OnlyAdminMessages"); acceptor!(fix42 -> "8_OnlyApplicationMessages"); acceptor!(fix42 -> "AlreadyLoggedOn"); acceptor!(fix42 -> "RejectResentMessage"); acceptor!(fix42 -> "ReverseRoute"); acceptor!(fix42 -> "ReverseRouteWithEmptyRoutingTags"); } mod fix43 { imports!(); acceptor!(fix43 -> "10_MsgSeqNumEqual"); acceptor!(fix43 -> "10_MsgSeqNumGreater"); acceptor!(fix43 -> "10_MsgSeqNumLess"); acceptor!(fix43 -> "11a_NewSeqNoGreater"); acceptor!(fix43 -> "11b_NewSeqNoEqual"); acceptor!(fix43 -> "11c_NewSeqNoLess"); acceptor!(fix43 -> "13b_UnsolicitedLogoutMessage"); acceptor!(fix43 -> "14a_BadField"); acceptor!(fix43 -> "14b_RequiredFieldMissing"); acceptor!(fix43 -> "14c_TagNotDefinedForMsgType"); acceptor!(fix43 -> "14d_TagSpecifiedWithoutValue"); acceptor!(fix43 -> "14e_IncorrectEnumValue"); acceptor!(fix43 -> "14f_IncorrectDataFormat"); acceptor!(fix43 -> "14g_HeaderBodyTrailerFieldsOutOfOrder"); acceptor!(fix43 -> "14h_RepeatedTag"); acceptor!(fix43 -> "14i_RepeatingGroupCountNotEqual"); acceptor!(fix43 -> "15_HeaderAndBodyFieldsOrderedDifferently"); acceptor!(fix43 -> "19a_PossResendMessageThatHAsAlreadyBeenSent"); acceptor!(fix43 -> "19b_PossResendMessageThatHasNotBeenSent"); acceptor!(fix43 -> "1a_ValidLogonMsgSeqNumTooHigh"); acceptor!(fix43 -> "1a_ValidLogonWithCorrectMsgSeqNum"); acceptor!(fix43 -> "1b_DuplicateIdentity"); acceptor!(fix43 -> "1c_InvalidSenderCompID"); acceptor!(fix43 -> "1c_InvalidTargetCompID"); acceptor!(fix43 -> "1d_InvalidLogonBadSendingTime"); acceptor!(fix43 -> "1d_InvalidLogonLengthInvalid"); acceptor!(fix43 -> "1d_InvalidLogonWrongBeginString"); acceptor!(fix43 -> "1e_NotLogonMessage"); acceptor!(fix43 -> "20_SimultaneousResendRequest"); acceptor!(fix43 -> "21_RepeatingGroupSpecifierWithValueOfZero"); acceptor!(fix43 -> "2a_MsgSeqNumCorrect"); acceptor!(fix43 -> "2b_MsgSeqNumTooHigh"); acceptor!(fix43 -> "2c_MsgSeqNumTooLow"); acceptor!(fix43 -> "2d_GarbledMessage"); acceptor!(fix43 -> "2e_PossDupAlreadyReceived"); acceptor!(fix43 -> "2e_PossDupNotReceived"); acceptor!(fix43 -> "2f_PossDupOrigSendingTimeTooHigh"); acceptor!(fix43 -> "2g_PossDupNoOrigSendingTime"); acceptor!(fix43 -> "2i_BeginStringValueUnexpected"); acceptor!(fix43 -> "2k_CompIDDoesNotMatchProfile"); acceptor!(fix43 -> "2m_BodyLengthValueNotCorrect"); acceptor!(fix43 -> "2o_SendingTimeValueOutOfRange"); acceptor!(fix43 -> "2q_MsgTypeNotValid"); acceptor!(fix43 -> "2r_UnregisteredMsgType"); acceptor!(fix43 -> "2t_FirstThreeFieldsOutOfOrder"); acceptor!(fix43 -> "3b_InvalidChecksum"); acceptor!(fix43 -> "3c_GarbledMessage"); acceptor!(fix43 -> "4a_NoDataSentDuringHeartBtInt"); acceptor!(fix43 -> "4b_ReceivedTestRequest"); acceptor!(fix43 -> "6_SendTestRequest"); acceptor!(fix43 -> "7_ReceiveRejectMessage"); acceptor!(fix43 -> "8_AdminAndApplicationMessages"); acceptor!(fix43 -> "8_OnlyAdminMessages"); acceptor!(fix43 -> "8_OnlyApplicationMessages"); acceptor!(fix43 -> "AlreadyLoggedOn"); acceptor!(fix43 -> "RejectResentMessage"); acceptor!(fix43 -> "ReverseRoute"); acceptor!(fix43 -> "ReverseRouteWithEmptyRoutingTags"); } mod fix44 { imports!(); acceptor!(fix44 -> "10_MsgSeqNumEqual"); acceptor!(fix44 -> "10_MsgSeqNumGreater"); acceptor!(fix44 -> "10_MsgSeqNumLess"); acceptor!(fix44 -> "11a_NewSeqNoGreater"); acceptor!(fix44 -> "11b_NewSeqNoEqual"); acceptor!(fix44 -> "11c_NewSeqNoLess"); acceptor!(fix44 -> "13b_UnsolicitedLogoutMessage"); acceptor!(fix44 -> "14a_BadField"); acceptor!(fix44 -> "14b_RequiredFieldMissing"); acceptor!(fix44 -> "14c_TagNotDefinedForMsgType"); acceptor!(fix44 -> "14d_TagSpecifiedWithoutValue"); acceptor!(fix44 -> "14e_IncorrectEnumValue"); acceptor!(fix44 -> "14f_IncorrectDataFormat"); acceptor!(fix44 -> "14g_HeaderBodyTrailerFieldsOutOfOrder"); acceptor!(fix44 -> "14h_RepeatedTag"); acceptor!(fix44 -> "14i_RepeatingGroupCountNotEqual"); acceptor!(fix44 -> "15_HeaderAndBodyFieldsOrderedDifferently"); acceptor!(fix44 -> "19a_PossResendMessageThatHAsAlreadyBeenSent"); acceptor!(fix44 -> "19b_PossResendMessageThatHasNotBeenSent"); acceptor!(fix44 -> "1a_ValidLogonMsgSeqNumTooHigh"); acceptor!(fix44 -> "1a_ValidLogonWithCorrectMsgSeqNum"); acceptor!(fix44 -> "1b_DuplicateIdentity"); acceptor!(fix44 -> "1c_InvalidSenderCompID"); acceptor!(fix44 -> "1c_InvalidTargetCompID"); acceptor!(fix44 -> "1d_InvalidLogonBadSendingTime"); acceptor!(fix44 -> "1d_InvalidLogonLengthInvalid"); acceptor!(fix44 -> "1d_InvalidLogonWrongBeginString"); acceptor!(fix44 -> "1e_NotLogonMessage"); acceptor!(fix44 -> "20_SimultaneousResendRequest"); acceptor!(fix44 -> "21_RepeatingGroupSpecifierWithValueOfZero"); acceptor!(fix44 -> "2a_MsgSeqNumCorrect"); acceptor!(fix44 -> "2b_MsgSeqNumTooHigh"); acceptor!(fix44 -> "2c_MsgSeqNumTooLow"); acceptor!(fix44 -> "2d_GarbledMessage"); acceptor!(fix44 -> "2e_PossDupAlreadyReceived"); acceptor!(fix44 -> "2e_PossDupNotReceived"); acceptor!(fix44 -> "2f_PossDupOrigSendingTimeTooHigh"); acceptor!(fix44 -> "2g_PossDupNoOrigSendingTime"); acceptor!(fix44 -> "2i_BeginStringValueUnexpected"); acceptor!(fix44 -> "2k_CompIDDoesNotMatchProfile"); acceptor!(fix44 -> "2m_BodyLengthValueNotCorrect"); acceptor!(fix44 -> "2o_SendingTimeValueOutOfRange"); acceptor!(fix44 -> "2q_MsgTypeNotValid"); acceptor!(fix44 -> "2r_UnregisteredMsgType"); acceptor!(fix44 -> "2t_FirstThreeFieldsOutOfOrder"); acceptor!(fix44 -> "3b_InvalidChecksum"); acceptor!(fix44 -> "3c_GarbledMessage"); acceptor!(fix44 -> "4a_NoDataSentDuringHeartBtInt"); acceptor!(fix44 -> "4b_ReceivedTestRequest"); acceptor!(fix44 -> "6_SendTestRequest"); acceptor!(fix44 -> "7_ReceiveRejectMessage"); acceptor!(fix44 -> "8_AdminAndApplicationMessages"); acceptor!(fix44 -> "8_OnlyAdminMessages"); acceptor!(fix44 -> "8_OnlyApplicationMessages"); acceptor!(fix44 -> "AlreadyLoggedOn"); acceptor!(fix44 -> "ComponentFieldRequired"); acceptor!(fix44 -> "FieldTypeError_NestedGroup"); acceptor!(fix44 -> "FieldTypeError_RepeatingGroup"); acceptor!(fix44 -> "FieldTypeError_Top"); acceptor!(fix44 -> "InternationalCharacters"); acceptor!(fix44 -> "RejectResentMessage"); acceptor!(fix44 -> "ResendRepeatingGroup"); acceptor!(fix44 -> "ReverseRoute"); acceptor!(fix44 -> "ReverseRouteWithEmptyRoutingTags"); acceptor!(fix44 -> "SessionReset"); acceptor!(fix44 -> "issue146_MissingGroupDelimiter"); acceptor!(fix44noreset -> "SessionResetAfterDisconnect"); } mod fix50 { imports!(); acceptor!(fix50 -> "10_MsgSeqNumEqual"); acceptor!(fix50 -> "10_MsgSeqNumGreater"); acceptor!(fix50 -> "10_MsgSeqNumLess"); acceptor!(fix50 -> "11a_NewSeqNoGreater"); acceptor!(fix50 -> "11b_NewSeqNoEqual"); acceptor!(fix50 -> "11c_NewSeqNoLess"); acceptor!(fix50 -> "13b_UnsolicitedLogoutMessage"); acceptor!(fix50 -> "14a_BadField"); acceptor!(fix50 -> "14b_RequiredFieldMissing"); acceptor!(fix50 -> "14c_TagNotDefinedForMsgType"); acceptor!(fix50 -> "14d_TagSpecifiedWithoutValue"); acceptor!(fix50 -> "14e_IncorrectEnumValue"); acceptor!(fix50 -> "14f_IncorrectDataFormat"); acceptor!(fix50 -> "14g_HeaderBodyTrailerFieldsOutOfOrder"); acceptor!(fix50 -> "14h_RepeatedTag"); acceptor!(fix50 -> "14i_RepeatingGroupCountNotEqual"); acceptor!(fix50 -> "15_HeaderAndBodyFieldsOrderedDifferently"); acceptor!(fix50 -> "19a_PossResendMessageThatHAsAlreadyBeenSent"); acceptor!(fix50 -> "19b_PossResendMessageThatHasNotBeenSent"); acceptor!(fix50 -> "1a_ValidLogonMsgSeqNumTooHigh"); acceptor!(fix50 -> "1a_ValidLogonWithCorrectMsgSeqNum"); acceptor!(fix50 -> "1b_DuplicateIdentity"); acceptor!(fix50 -> "1c_InvalidSenderCompID"); acceptor!(fix50 -> "1c_InvalidTargetCompID"); acceptor!(fix50 -> "1d_InvalidLogonBadSendingTime"); acceptor!(fix50 -> "1d_InvalidLogonLengthInvalid"); acceptor!(fix50 -> "1d_InvalidLogonNoDefaultApplVerID"); acceptor!(fix50 -> "1d_InvalidLogonWrongBeginString"); acceptor!(fix50 -> "1e_NotLogonMessage"); acceptor!(fix50 -> "20_SimultaneousResendRequest"); acceptor!(fix50 -> "21_RepeatingGroupSpecifierWithValueOfZero"); acceptor!(fix50 -> "2a_MsgSeqNumCorrect"); acceptor!(fix50 -> "2b_MsgSeqNumTooHigh"); acceptor!(fix50 -> "2c_MsgSeqNumTooLow"); acceptor!(fix50 -> "2d_GarbledMessage"); acceptor!(fix50 -> "2e_PossDupAlreadyReceived"); acceptor!(fix50 -> "2e_PossDupNotReceived"); acceptor!(fix50 -> "2f_PossDupOrigSendingTimeTooHigh"); acceptor!(fix50 -> "2g_PossDupNoOrigSendingTime"); acceptor!(fix50 -> "2i_BeginStringValueUnexpected"); acceptor!(fix50 -> "2k_CompIDDoesNotMatchProfile"); acceptor!(fix50 -> "2m_BodyLengthValueNotCorrect"); acceptor!(fix50 -> "2o_SendingTimeValueOutOfRange"); acceptor!(fix50 -> "2q_MsgTypeNotValid"); acceptor!(fix50 -> "2r_UnregisteredMsgType"); acceptor!(fix50 -> "2t_FirstThreeFieldsOutOfOrder"); acceptor!(fix50 -> "3b_InvalidChecksum"); acceptor!(fix50 -> "3c_GarbledMessage"); acceptor!(fix50 -> "4a_NoDataSentDuringHeartBtInt"); acceptor!(fix50 -> "4b_ReceivedTestRequest"); acceptor!(fix50 -> "6_SendTestRequest"); acceptor!(fix50 -> "7_ReceiveRejectMessage"); acceptor!(fix50 -> "8_AdminAndApplicationMessages"); acceptor!(fix50 -> "8_OnlyAdminMessages"); acceptor!(fix50 -> "8_OnlyApplicationMessages"); acceptor!(fix50 -> "AlreadyLoggedOn"); acceptor!(fix50 -> "BeginString"); acceptor!(fix50 -> "RejectResentMessage"); acceptor!(fix50 -> "ReverseRoute"); acceptor!(fix50 -> "ReverseRouteWithEmptyRoutingTags"); acceptor!(fix50 -> "SessionReset"); } mod fix50sp1 { imports!(); acceptor!(fix50sp1 -> "10_MsgSeqNumEqual"); acceptor!(fix50sp1 -> "10_MsgSeqNumGreater"); acceptor!(fix50sp1 -> "10_MsgSeqNumLess"); acceptor!(fix50sp1 -> "11a_NewSeqNoGreater"); acceptor!(fix50sp1 -> "11b_NewSeqNoEqual"); acceptor!(fix50sp1 -> "11c_NewSeqNoLess"); acceptor!(fix50sp1 -> "13b_UnsolicitedLogoutMessage"); acceptor!(fix50sp1 -> "14a_BadField"); acceptor!(fix50sp1 -> "14b_RequiredFieldMissing"); acceptor!(fix50sp1 -> "14c_TagNotDefinedForMsgType"); acceptor!(fix50sp1 -> "14d_TagSpecifiedWithoutValue"); acceptor!(fix50sp1 -> "14e_IncorrectEnumValue"); acceptor!(fix50sp1 -> "14f_IncorrectDataFormat"); acceptor!(fix50sp1 -> "14g_HeaderBodyTrailerFieldsOutOfOrder"); acceptor!(fix50sp1 -> "14h_RepeatedTag"); acceptor!(fix50sp1 -> "14i_RepeatingGroupCountNotEqual"); acceptor!(fix50sp1 -> "15_HeaderAndBodyFieldsOrderedDifferently"); acceptor!(fix50sp1 -> "19a_PossResendMessageThatHAsAlreadyBeenSent"); acceptor!(fix50sp1 -> "19b_PossResendMessageThatHasNotBeenSent"); acceptor!(fix50sp1 -> "1a_ValidLogonMsgSeqNumTooHigh"); acceptor!(fix50sp1 -> "1a_ValidLogonWithCorrectMsgSeqNum"); acceptor!(fix50sp1 -> "1b_DuplicateIdentity"); acceptor!(fix50sp1 -> "1c_InvalidSenderCompID"); acceptor!(fix50sp1 -> "1c_InvalidTargetCompID"); acceptor!(fix50sp1 -> "1d_InvalidLogonBadSendingTime"); acceptor!(fix50sp1 -> "1d_InvalidLogonLengthInvalid"); acceptor!(fix50sp1 -> "1d_InvalidLogonNoDefaultApplVerID"); acceptor!(fix50sp1 -> "1d_InvalidLogonWrongBeginString"); acceptor!(fix50sp1 -> "1e_NotLogonMessage"); acceptor!(fix50sp1 -> "20_SimultaneousResendRequest"); acceptor!(fix50sp1 -> "21_RepeatingGroupSpecifierWithValueOfZero"); acceptor!(fix50sp1 -> "2a_MsgSeqNumCorrect"); acceptor!(fix50sp1 -> "2b_MsgSeqNumTooHigh"); acceptor!(fix50sp1 -> "2c_MsgSeqNumTooLow"); acceptor!(fix50sp1 -> "2d_GarbledMessage"); acceptor!(fix50sp1 -> "2e_PossDupAlreadyReceived"); acceptor!(fix50sp1 -> "2e_PossDupNotReceived"); acceptor!(fix50sp1 -> "2f_PossDupOrigSendingTimeTooHigh"); acceptor!(fix50sp1 -> "2g_PossDupNoOrigSendingTime"); acceptor!(fix50sp1 -> "2i_BeginStringValueUnexpected"); acceptor!(fix50sp1 -> "2k_CompIDDoesNotMatchProfile"); acceptor!(fix50sp1 -> "2m_BodyLengthValueNotCorrect"); acceptor!(fix50sp1 -> "2o_SendingTimeValueOutOfRange"); acceptor!(fix50sp1 -> "2q_MsgTypeNotValid"); acceptor!(fix50sp1 -> "2r_UnregisteredMsgType"); acceptor!(fix50sp1 -> "2t_FirstThreeFieldsOutOfOrder"); acceptor!(fix50sp1 -> "3b_InvalidChecksum"); acceptor!(fix50sp1 -> "3c_GarbledMessage"); acceptor!(fix50sp1 -> "4a_NoDataSentDuringHeartBtInt"); acceptor!(fix50sp1 -> "4b_ReceivedTestRequest"); acceptor!(fix50sp1 -> "6_SendTestRequest"); acceptor!(fix50sp1 -> "7_ReceiveRejectMessage"); acceptor!(fix50sp1 -> "8_AdminAndApplicationMessages"); acceptor!(fix50sp1 -> "8_OnlyAdminMessages"); acceptor!(fix50sp1 -> "8_OnlyApplicationMessages"); acceptor!(fix50sp1 -> "AlreadyLoggedOn"); acceptor!(fix50sp1 -> "RejectResentMessage"); acceptor!(fix50sp1 -> "ReverseRoute"); acceptor!(fix50sp1 -> "ReverseRouteWithEmptyRoutingTags"); acceptor!(fix50sp1 -> "SessionReset"); } mod fix50sp2 { imports!(); acceptor!(fix50sp2 -> "10_MsgSeqNumEqual"); acceptor!(fix50sp2 -> "10_MsgSeqNumGreater"); acceptor!(fix50sp2 -> "10_MsgSeqNumLess"); acceptor!(fix50sp2 -> "11a_NewSeqNoGreater"); acceptor!(fix50sp2 -> "11b_NewSeqNoEqual"); acceptor!(fix50sp2 -> "11c_NewSeqNoLess"); acceptor!(fix50sp2 -> "13b_UnsolicitedLogoutMessage"); acceptor!(fix50sp2 -> "14a_BadField"); acceptor!(fix50sp2 -> "14b_RequiredFieldMissing"); acceptor!(fix50sp2 -> "14c_TagNotDefinedForMsgType"); acceptor!(fix50sp2 -> "14d_TagSpecifiedWithoutValue"); acceptor!(fix50sp2 -> "14e_IncorrectEnumValue"); acceptor!(fix50sp2 -> "14f_IncorrectDataFormat"); acceptor!(fix50sp2 -> "14g_HeaderBodyTrailerFieldsOutOfOrder"); acceptor!(fix50sp2 -> "14h_RepeatedTag"); acceptor!(fix50sp2 -> "14i_RepeatingGroupCountNotEqual"); acceptor!(fix50sp2 -> "15_HeaderAndBodyFieldsOrderedDifferently"); acceptor!(fix50sp2 -> "19a_PossResendMessageThatHAsAlreadyBeenSent"); acceptor!(fix50sp2 -> "19b_PossResendMessageThatHasNotBeenSent"); acceptor!(fix50sp2 -> "1a_ValidLogonMsgSeqNumTooHigh"); acceptor!(fix50sp2 -> "1a_ValidLogonWithCorrectMsgSeqNum"); acceptor!(fix50sp2 -> "1b_DuplicateIdentity"); acceptor!(fix50sp2 -> "1c_InvalidSenderCompID"); acceptor!(fix50sp2 -> "1c_InvalidTargetCompID"); acceptor!(fix50sp2 -> "1d_InvalidLogonBadSendingTime"); acceptor!(fix50sp2 -> "1d_InvalidLogonLengthInvalid"); acceptor!(fix50sp2 -> "1d_InvalidLogonNoDefaultApplVerID"); acceptor!(fix50sp2 -> "1d_InvalidLogonWrongBeginString"); acceptor!(fix50sp2 -> "1e_NotLogonMessage"); acceptor!(fix50sp2 -> "20_SimultaneousResendRequest"); acceptor!(fix50sp2 -> "21_RepeatingGroupSpecifierWithValueOfZero"); acceptor!(fix50sp2 -> "2a_MsgSeqNumCorrect"); acceptor!(fix50sp2 -> "2b_MsgSeqNumTooHigh"); acceptor!(fix50sp2 -> "2c_MsgSeqNumTooLow"); acceptor!(fix50sp2 -> "2d_GarbledMessage"); acceptor!(fix50sp2 -> "2e_PossDupAlreadyReceived"); acceptor!(fix50sp2 -> "2e_PossDupNotReceived"); acceptor!(fix50sp2 -> "2f_PossDupOrigSendingTimeTooHigh"); acceptor!(fix50sp2 -> "2g_PossDupNoOrigSendingTime"); acceptor!(fix50sp2 -> "2i_BeginStringValueUnexpected"); acceptor!(fix50sp2 -> "2k_CompIDDoesNotMatchProfile"); acceptor!(fix50sp2 -> "2m_BodyLengthValueNotCorrect"); acceptor!(fix50sp2 -> "2o_SendingTimeValueOutOfRange"); acceptor!(fix50sp2 -> "2q_MsgTypeNotValid"); acceptor!(fix50sp2 -> "2r_UnregisteredMsgType"); acceptor!(fix50sp2 -> "2t_FirstThreeFieldsOutOfOrder"); acceptor!(fix50sp2 -> "3b_InvalidChecksum"); acceptor!(fix50sp2 -> "3c_GarbledMessage"); acceptor!(fix50sp2 -> "4a_NoDataSentDuringHeartBtInt"); acceptor!(fix50sp2 -> "4b_ReceivedTestRequest"); acceptor!(fix50sp2 -> "6_SendTestRequest"); acceptor!(fix50sp2 -> "7_ReceiveRejectMessage"); acceptor!(fix50sp2 -> "8_AdminAndApplicationMessages"); acceptor!(fix50sp2 -> "8_OnlyAdminMessages"); acceptor!(fix50sp2 -> "8_OnlyApplicationMessages"); acceptor!(fix50sp2 -> "AlreadyLoggedOn"); acceptor!(fix50sp2 -> "RejectResentMessage"); acceptor!(fix50sp2 -> "ReverseRoute"); acceptor!(fix50sp2 -> "ReverseRouteWithEmptyRoutingTags"); acceptor!(fix50sp2 -> "SessionReset"); } #[cfg(feature="future")] mod future { imports!(); acceptor!(future -> "14j_OutOfRepeatingGroupMembers"); acceptor!(future -> "14k_EmbeddedSOH"); } mod misc { imports!(); acceptor!(misc -> "FIX42LastMsgSeqNumProcessed"); acceptor!(misc -> "FIX42MaxMessagesInResend"); acceptor!(misc -> "FIX42Subs"); acceptor!(misc -> "FIX42TestRequest"); }