From e4a112905073939acd05ae6dbc0e33495569a3f0 Mon Sep 17 00:00:00 2001 From: dkijania Date: Tue, 8 Dec 2020 17:36:35 +0100 Subject: [PATCH] added simple test which sends transaction with more than 97 outputs --- .../src/jormungandr/genesis/fragments.rs | 58 ++++++++++++++++--- 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/testing/jormungandr-integration-tests/src/jormungandr/genesis/fragments.rs b/testing/jormungandr-integration-tests/src/jormungandr/genesis/fragments.rs index 3d015d8e53..7e3e2b940d 100644 --- a/testing/jormungandr-integration-tests/src/jormungandr/genesis/fragments.rs +++ b/testing/jormungandr-integration-tests/src/jormungandr/genesis/fragments.rs @@ -1,16 +1,17 @@ +use assert_fs::prelude::*; +use assert_fs::TempDir; +use chain_impl_mockchain::accounting::account::{DelegationRatio, DelegationType}; +use chain_impl_mockchain::block::BlockDate; +use jormungandr_lib::interfaces::ActiveSlotCoefficient; use jormungandr_testing_utils::testing::{jcli::JCli, jormungandr::ConfigurationBuilder, startup}; +use jormungandr_testing_utils::wallet::Wallet; use jormungandr_testing_utils::{ stake_pool::StakePool, testing::{ - AdversaryFragmentSender, AdversaryFragmentSenderSetup, FragmentSender, FragmentSenderSetup, + AdversaryFragmentSender, AdversaryFragmentSenderSetup, BlockDateGenerator, FragmentSender, + FragmentSenderSetup, }, }; - -use chain_impl_mockchain::accounting::account::{DelegationRatio, DelegationType}; -use chain_impl_mockchain::block::BlockDate; - -use assert_fs::prelude::*; -use assert_fs::TempDir; use std::time::Duration; #[test] @@ -216,3 +217,46 @@ pub fn test_all_adversary_fragments() { .value_moved_between_wallets(&faucet, &stake_pool_owner, stake_pool_owner_stake.into()) .unwrap(); } + +#[test] +pub fn one_hundreds_addresses() { + let receivers: Vec = std::iter::from_fn(|| Some(startup::create_new_account_address())) + .take(98) + .collect(); + let mut stake_pool_owner = startup::create_new_account_address(); + + let stake_pool_owner_stake = 1; + + let (jormungandr, _stake_pools) = startup::start_stake_pool( + &[stake_pool_owner.clone()], + &[], + &mut ConfigurationBuilder::new() + .with_consensus_genesis_praos_active_slot_coeff(ActiveSlotCoefficient::MAXIMUM), + ) + .unwrap(); + + let settings = jormungandr.rest().settings().unwrap(); + + let transaction_sender = FragmentSender::new( + jormungandr.genesis_block_hash(), + jormungandr.fees(), + BlockDateGenerator::rolling( + &settings, + BlockDate { + epoch: 1, + slot_id: 0, + }, + false, + ), + FragmentSenderSetup::resend_3_times(), + ); + + transaction_sender + .send_transaction_to_many( + &mut stake_pool_owner, + &receivers, + &jormungandr, + stake_pool_owner_stake.into(), + ) + .unwrap(); +}