Skip to content

Commit 552d98f

Browse files
committed
test: use random string as prefix instead of atomic inc id
Signed-off-by: Gustavo Inacio <[email protected]>
1 parent d08b3e3 commit 552d98f

File tree

5 files changed

+26
-30
lines changed

5 files changed

+26
-30
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/tap-agent/Cargo.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ name = "indexer-tap-agent"
99
path = "src/main.rs"
1010

1111
[features]
12-
test = ["dep:test-assets"]
12+
test = ["dep:test-assets", "dep:rand"]
1313

1414
[dependencies]
1515
indexer-monitor = { path = "../monitor" }
@@ -51,6 +51,7 @@ tap_aggregator.workspace = true
5151
futures = { version = "0.3.30", default-features = false }
5252
bon = "3.3"
5353
test-assets = { path = "../test-assets", optional = true }
54+
rand = { version = "0.8", optional = true }
5455

5556
[dev-dependencies]
5657
# Release-please breaks with cyclical dependencies if dev-dependencies
@@ -64,3 +65,4 @@ test-assets = { path = "../test-assets" }
6465
test-log = { version = "0.2.12", default-features = false }
6566
bon = "3.3"
6667
rstest = "0.24.0"
68+
rand = "0.8"

crates/tap-agent/src/agent/sender_account.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1281,7 +1281,6 @@ pub mod tests {
12811281
#![allow(missing_docs)]
12821282
use std::{
12831283
collections::{HashMap, HashSet},
1284-
sync::atomic::AtomicU32,
12851284
time::{Duration, SystemTime, UNIX_EPOCH},
12861285
};
12871286

@@ -1358,7 +1357,6 @@ pub mod tests {
13581357
}
13591358

13601359
/// Prefix shared between tests so we don't have conflicts in the global registry
1361-
pub static PREFIX_ID: AtomicU32 = AtomicU32::new(0);
13621360
const ESCROW_VALUE: u128 = 1000;
13631361
const BUFFER_DURATION: Duration = Duration::from_millis(100);
13641362
const RETRY_DURATION: Duration = Duration::from_millis(1000);

crates/tap-agent/src/agent/sender_accounts_manager.rs

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -701,14 +701,15 @@ mod tests {
701701
use super::{new_receipts_watcher, SenderAccountsManagerMessage, State};
702702
use crate::{
703703
agent::{
704-
sender_account::{tests::PREFIX_ID, SenderAccountMessage},
704+
sender_account::SenderAccountMessage,
705705
sender_accounts_manager::{handle_notification, AllocationId, NewReceiptNotification},
706706
},
707707
test::{
708708
actors::{DummyActor, MockSenderAccount, MockSenderAllocation, TestableActor},
709-
create_rav, create_received_receipt, create_sender_accounts_manager, get_grpc_url,
710-
get_sender_account_config, store_rav, store_receipt, ALLOCATION_ID_0, ALLOCATION_ID_1,
711-
INDEXER, SENDER_2, TAP_EIP712_DOMAIN_SEPARATOR,
709+
create_rav, create_received_receipt, create_sender_accounts_manager,
710+
generate_random_prefix, get_grpc_url, get_sender_account_config, store_rav,
711+
store_receipt, ALLOCATION_ID_0, ALLOCATION_ID_1, INDEXER, SENDER_2,
712+
TAP_EIP712_DOMAIN_SEPARATOR,
712713
},
713714
};
714715
const DUMMY_URL: &str = "http://localhost:1234";
@@ -737,10 +738,7 @@ mod tests {
737738
let senders_to_signers = vec![(SENDER.1, vec![SIGNER.1])].into_iter().collect();
738739
let escrow_accounts = EscrowAccounts::new(HashMap::new(), senders_to_signers);
739740

740-
let prefix = format!(
741-
"test-{}",
742-
PREFIX_ID.fetch_add(1, std::sync::atomic::Ordering::SeqCst)
743-
);
741+
let prefix = generate_random_prefix();
744742
(
745743
prefix.clone(),
746744
State {
@@ -866,10 +864,7 @@ mod tests {
866864

867865
#[sqlx::test(migrations = "../../migrations")]
868866
async fn test_receive_notifications(pgpool: PgPool) {
869-
let prefix = format!(
870-
"test-{}",
871-
PREFIX_ID.fetch_add(1, std::sync::atomic::Ordering::SeqCst)
872-
);
867+
let prefix = generate_random_prefix();
873868
// create dummy allocation
874869

875870
let (mock_sender_allocation, mut receipts) = MockSenderAllocation::new_with_receipts();
@@ -968,10 +963,7 @@ mod tests {
968963
let escrow_accounts = EscrowAccounts::new(HashMap::new(), senders_to_signers);
969964
let escrow_accounts = watch::channel(escrow_accounts).1;
970965

971-
let prefix = format!(
972-
"test-{}",
973-
PREFIX_ID.fetch_add(1, std::sync::atomic::Ordering::SeqCst)
974-
);
966+
let prefix = generate_random_prefix();
975967

976968
let (last_message_emitted, mut rx) = mpsc::channel(64);
977969

crates/tap-agent/src/test.rs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use std::{
66
collections::{HashMap, HashSet},
77
net::SocketAddr,
8-
sync::{atomic::AtomicU32, Arc},
8+
sync::Arc,
99
time::Duration,
1010
};
1111

@@ -16,6 +16,7 @@ use indexer_monitor::{DeploymentDetails, EscrowAccounts, SubgraphClient};
1616
use indexer_receipt::TapReceipt;
1717
use lazy_static::lazy_static;
1818
use ractor::{concurrency::JoinHandle, Actor, ActorRef};
19+
use rand::{distributions::Alphanumeric, thread_rng, Rng};
1920
use reqwest::Url;
2021
use sqlx::{types::BigDecimal, PgPool};
2122
use tap_aggregator::server::run_server;
@@ -60,8 +61,6 @@ lazy_static! {
6061
tap_eip712_domain(1, Address::from([0x11u8; 20]),);
6162
}
6263

63-
pub static PREFIX_ID: AtomicU32 = AtomicU32::new(0);
64-
6564
pub const TRIGGER_VALUE: u128 = 500;
6665
pub const RECEIPT_LIMIT: u64 = 10000;
6766
pub const DUMMY_URL: &str = "http://localhost:1234";
@@ -74,6 +73,16 @@ const TAP_SENDER_TIMEOUT: Duration = Duration::from_secs(30);
7473
const RAV_REQUEST_BUFFER: Duration = Duration::from_secs(60);
7574
const ESCROW_POLLING_INTERVAL: Duration = Duration::from_secs(30);
7675

76+
/// Generates a random prefix to be used for actor registry
77+
pub fn generate_random_prefix() -> String {
78+
const SIZE: usize = 16;
79+
thread_rng()
80+
.sample_iter(&Alphanumeric)
81+
.take(SIZE)
82+
.map(char::from)
83+
.collect()
84+
}
85+
7786
pub fn get_sender_account_config() -> &'static SenderAccountConfig {
7887
Box::leak(Box::new(SenderAccountConfig {
7988
rav_request_buffer: RAV_REQUEST_BUFFER,
@@ -143,10 +152,7 @@ pub async fn create_sender_account(
143152
))
144153
.expect("Failed to update escrow_accounts channel");
145154

146-
let prefix = format!(
147-
"test-{}",
148-
PREFIX_ID.fetch_add(1, std::sync::atomic::Ordering::SeqCst)
149-
);
155+
let prefix = generate_random_prefix();
150156

151157
let aggregator_url = match aggregator_endpoint {
152158
Some(url) => url,
@@ -217,10 +223,7 @@ pub async fn create_sender_accounts_manager(
217223
))
218224
.expect("Failed to update escrow_accounts channel");
219225

220-
let prefix = format!(
221-
"test-{}",
222-
PREFIX_ID.fetch_add(1, std::sync::atomic::Ordering::SeqCst)
223-
);
226+
let prefix = generate_random_prefix();
224227
let args = SenderAccountsManagerArgs {
225228
config,
226229
domain_separator: TAP_EIP712_DOMAIN_SEPARATOR.clone(),

0 commit comments

Comments
 (0)