Skip to content

Commit 9af4e64

Browse files
feat: update test configurations for improved initialization
1 parent 3333e7b commit 9af4e64

28 files changed

+157
-128
lines changed

dash-spv/src/bloom/tests.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
//! Comprehensive unit tests for bloom filter module
22
33
#[cfg(test)]
4+
#[allow(clippy::module_inception)]
45
mod tests {
56
use crate::bloom::{
67
builder::BloomFilterBuilder,
@@ -667,16 +668,16 @@ mod tests {
667668

668669
#[test]
669670
fn test_config_validation() {
670-
let mut config = BloomFilterConfig::default();
671+
// Construct with desired custom fields instead of reassigning after Default
672+
let config = BloomFilterConfig {
673+
false_positive_rate: 0.0001,
674+
elements: 1,
675+
max_false_positive_rate: 0.1,
676+
..Default::default()
677+
};
671678

672-
// Valid configurations
673-
config.false_positive_rate = 0.0001;
674679
assert!(config.false_positive_rate > 0.0 && config.false_positive_rate < 1.0);
675-
676-
config.elements = 1;
677680
assert!(config.elements > 0);
678-
679-
config.max_false_positive_rate = 0.1;
680681
assert!(config.max_false_positive_rate > config.false_positive_rate);
681682
}
682683

dash-spv/src/chain/chain_tip.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ mod tests {
272272
let new_work = ChainWork::from_bytes(work_bytes);
273273

274274
// The extend operation should succeed
275-
let result = manager.extend_tip(&tip1_hash, new_header.clone(), new_work);
275+
let result = manager.extend_tip(&tip1_hash, new_header, new_work);
276276
assert!(result.is_ok());
277277

278278
// The old tip should be gone
@@ -315,7 +315,7 @@ mod tests {
315315
work_bytes[31] = 6;
316316
let new_work = ChainWork::from_bytes(work_bytes);
317317

318-
let result = manager.extend_tip(&tip1_hash, new_header.clone(), new_work);
318+
let result = manager.extend_tip(&tip1_hash, new_header, new_work);
319319
assert!(result.is_ok());
320320

321321
// Verify final state - old tip gone, new tip present

dash-spv/src/chain/chainlock_test.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@ mod tests {
9797
chainlock_manager
9898
.process_chain_lock(chainlock, &chain_state, &mut storage)
9999
.await
100-
.expect(&format!("ChainLock at height {} should process successfully", height));
100+
.unwrap_or_else(|_| {
101+
panic!("ChainLock at height {} should process successfully", height)
102+
});
101103
}
102104

103105
// Test reorganization protection

dash-spv/src/chain/checkpoints.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,7 @@ fn parse_block_hash_safe(s: &str) -> BlockHash {
424424
}
425425

426426
/// Helper to create a checkpoint with common defaults
427+
#[allow(clippy::too_many_arguments)]
427428
fn create_checkpoint(
428429
height: u32,
429430
hash: &str,

dash-spv/src/chain/fork_detector.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ mod tests {
257257
// Add genesis
258258
let genesis = genesis_block(Network::Dash).header;
259259
storage.store_header(&genesis, 0).expect("Failed to store genesis header");
260-
chain_state.add_header(genesis.clone());
260+
chain_state.add_header(genesis);
261261

262262
// Header that extends main chain
263263
let header1 = create_test_header(genesis.block_hash(), 1);
@@ -266,7 +266,7 @@ mod tests {
266266

267267
// Add header1 to chain
268268
storage.store_header(&header1, 1).expect("Failed to store header1");
269-
chain_state.add_header(header1.clone());
269+
chain_state.add_header(header1);
270270

271271
// Header that creates a fork from genesis
272272
let fork_header = create_test_header(genesis.block_hash(), 2);
@@ -307,12 +307,12 @@ mod tests {
307307
// Add genesis
308308
let genesis = genesis_block(Network::Dash).header;
309309
storage.store_header(&genesis, 0).expect("Failed to store genesis header");
310-
chain_state.add_header(genesis.clone());
310+
chain_state.add_header(genesis);
311311

312312
// Add a header to extend the main chain past genesis
313313
let header1 = create_test_header(genesis.block_hash(), 1);
314314
storage.store_header(&header1, 1).expect("Failed to store header1");
315-
chain_state.add_header(header1.clone());
315+
chain_state.add_header(header1);
316316

317317
// Create 3 forks from genesis, should only keep 2
318318
for i in 0..3 {

dash-spv/src/chain/fork_detector_test.rs

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@ mod tests {
3838
// Add a checkpoint header at height 1000
3939
let checkpoint_header = create_test_header(BlockHash::from([0u8; 32]), 1000);
4040
storage.store_header(&checkpoint_header, 1000).expect("Failed to store checkpoint");
41-
chain_state.add_header(checkpoint_header.clone());
41+
chain_state.add_header(checkpoint_header);
4242

4343
// Add more headers building on checkpoint
4444
let mut prev_hash = checkpoint_header.block_hash();
4545
for i in 1..5 {
4646
let header = create_test_header(prev_hash, 1000 + i);
4747
storage.store_header(&header, 1000 + i).expect("Failed to store header");
48-
chain_state.add_header(header.clone());
48+
chain_state.add_header(header);
4949
prev_hash = header.block_hash();
5050
}
5151

@@ -70,14 +70,14 @@ mod tests {
7070
// Setup genesis and main chain
7171
let genesis = genesis_block(Network::Dash).header;
7272
storage.store_header(&genesis, 0).expect("Failed to store genesis");
73-
chain_state.add_header(genesis.clone());
73+
chain_state.add_header(genesis);
7474

7575
// Build main chain
7676
let mut main_chain_tip = genesis.block_hash();
7777
for i in 1..10 {
7878
let header = create_test_header(main_chain_tip, i);
7979
storage.store_header(&header, i).expect("Failed to store header");
80-
chain_state.add_header(header.clone());
80+
chain_state.add_header(header);
8181
main_chain_tip = header.block_hash();
8282
}
8383

@@ -122,12 +122,12 @@ mod tests {
122122
// Setup genesis and build a main chain
123123
let genesis = genesis_block(Network::Dash).header;
124124
storage.store_header(&genesis, 0).expect("Failed to store genesis");
125-
chain_state.add_header(genesis.clone());
125+
chain_state.add_header(genesis);
126126

127127
// Build main chain past genesis
128128
let header1 = create_test_header(genesis.block_hash(), 1);
129129
storage.store_header(&header1, 1).expect("Failed to store header");
130-
chain_state.add_header(header1.clone());
130+
chain_state.add_header(header1);
131131

132132
// Create more forks than the limit from genesis (not tip)
133133
let mut created_forks = Vec::new();
@@ -149,7 +149,7 @@ mod tests {
149149
// Since all forks have equal work, eviction order is not guaranteed
150150
// Just verify we have 3 unique forks
151151
assert_eq!(fork_nonces.len(), 3);
152-
assert!(fork_nonces.iter().all(|&n| n >= 100 && n <= 104));
152+
assert!(fork_nonces.iter().all(|&n| (100..=104).contains(&n)));
153153
}
154154

155155
#[test]
@@ -161,12 +161,12 @@ mod tests {
161161
// Setup genesis and build a main chain
162162
let genesis = genesis_block(Network::Dash).header;
163163
storage.store_header(&genesis, 0).expect("Failed to store genesis");
164-
chain_state.add_header(genesis.clone());
164+
chain_state.add_header(genesis);
165165

166166
// Build main chain past genesis
167167
let header1 = create_test_header(genesis.block_hash(), 1);
168168
storage.store_header(&header1, 1).expect("Failed to store header");
169-
chain_state.add_header(header1.clone());
169+
chain_state.add_header(header1);
170170

171171
// Create two forks from genesis (not tip)
172172
let fork1_header = create_test_header(genesis.block_hash(), 100);
@@ -207,14 +207,14 @@ mod tests {
207207
// Setup genesis
208208
let genesis = genesis_block(Network::Dash).header;
209209
storage.store_header(&genesis, 0).expect("Failed to store genesis");
210-
chain_state.lock().unwrap().add_header(genesis.clone());
210+
chain_state.lock().unwrap().add_header(genesis);
211211

212212
// Build a base chain
213213
let mut prev_hash = genesis.block_hash();
214214
for i in 1..20 {
215215
let header = create_test_header(prev_hash, i);
216216
storage.store_header(&header, i).expect("Failed to store header");
217-
chain_state.lock().unwrap().add_header(header.clone());
217+
chain_state.lock().unwrap().add_header(header);
218218
prev_hash = header.block_hash();
219219
}
220220

@@ -229,7 +229,7 @@ mod tests {
229229
let handle = thread::spawn(move || {
230230
// Each thread creates forks at different heights
231231
for i in 0..10 {
232-
let fork_height = (thread_id * 3 + i % 3) as u32;
232+
let fork_height = thread_id * 3 + i % 3;
233233
let chain_state_lock = chain_state_clone.lock().unwrap();
234234

235235
if let Some(fork_point_header) = chain_state_lock.header_at_height(fork_height)
@@ -262,12 +262,12 @@ mod tests {
262262
let forks = detector_lock.get_forks();
263263

264264
// Should have multiple forks but within the limit
265-
assert!(forks.len() > 0);
265+
assert!(!forks.is_empty());
266266
assert!(forks.len() <= 50);
267267

268268
// All forks should have valid structure
269269
for fork in forks {
270-
assert!(fork.headers.len() > 0);
270+
assert!(!fork.headers.is_empty());
271271
assert_eq!(fork.tip_hash, fork.headers.last().unwrap().block_hash());
272272
assert_eq!(fork.tip_height, fork.fork_height + fork.headers.len() as u32);
273273
}
@@ -287,7 +287,7 @@ mod tests {
287287
// Add genesis
288288
let genesis = genesis_block(Network::Dash).header;
289289
storage.store_header(&genesis, 0).expect("Failed to store genesis");
290-
chain_state.add_header(genesis.clone());
290+
chain_state.add_header(genesis);
291291

292292
// Test 2: Header connecting to non-existent block
293293
let phantom_hash = BlockHash::from_raw_hash(dashcore_hashes::hash_x11::Hash::hash(&[42u8]));
@@ -310,12 +310,12 @@ mod tests {
310310
// Setup genesis and build a main chain
311311
let genesis = genesis_block(Network::Dash).header;
312312
storage.store_header(&genesis, 0).expect("Failed to store genesis");
313-
chain_state.add_header(genesis.clone());
313+
chain_state.add_header(genesis);
314314

315315
// Build main chain past genesis
316316
let header1 = create_test_header(genesis.block_hash(), 1);
317317
storage.store_header(&header1, 1).expect("Failed to store header");
318-
chain_state.add_header(header1.clone());
318+
chain_state.add_header(header1);
319319

320320
// Create multiple forks from genesis (not tip)
321321
let mut fork_tips = Vec::new();
@@ -328,16 +328,16 @@ mod tests {
328328
assert_eq!(detector.get_forks().len(), 5);
329329

330330
// Remove specific forks
331-
for i in 0..3 {
332-
let removed = detector.remove_fork(&fork_tips[i]);
331+
for tip in fork_tips.iter().take(3) {
332+
let removed = detector.remove_fork(tip);
333333
assert!(removed.is_some());
334334
}
335335

336336
assert_eq!(detector.get_forks().len(), 2);
337337

338338
// Verify removed forks can't be found
339-
for i in 0..3 {
340-
assert!(detector.get_fork(&fork_tips[i]).is_none());
339+
for tip in fork_tips.iter().take(3) {
340+
assert!(detector.get_fork(tip).is_none());
341341
}
342342

343343
// Clear all remaining forks
@@ -355,7 +355,7 @@ mod tests {
355355
// Add genesis to storage and chain state
356356
let genesis = genesis_block(Network::Dash).header;
357357
storage.store_header(&genesis, 0).expect("Failed to store genesis");
358-
chain_state.add_header(genesis.clone());
358+
chain_state.add_header(genesis);
359359

360360
// Chain state tip is at genesis (height 0)
361361
assert_eq!(chain_state.tip_height(), 0);
@@ -374,13 +374,13 @@ mod tests {
374374

375375
// Add headers to chain state but not storage (simulating sync issue)
376376
let genesis = genesis_block(Network::Dash).header;
377-
chain_state.add_header(genesis.clone());
377+
chain_state.add_header(genesis);
378378

379379
let header1 = create_test_header(genesis.block_hash(), 1);
380-
chain_state.add_header(header1.clone());
380+
chain_state.add_header(header1);
381381

382382
let header2 = create_test_header(header1.block_hash(), 2);
383-
chain_state.add_header(header2.clone());
383+
chain_state.add_header(header2);
384384

385385
// Try to extend from header1 (in chain state but not storage)
386386
let header3 = create_test_header(header1.block_hash(), 3);

dash-spv/src/chain/orphan_pool.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ mod tests {
254254
let header = create_test_header(genesis, 1);
255255
let block_hash = header.block_hash();
256256

257-
assert!(pool.add_orphan(header.clone()));
257+
assert!(pool.add_orphan(header));
258258
assert!(pool.contains(&block_hash));
259259
assert_eq!(pool.len(), 1);
260260

@@ -269,7 +269,7 @@ mod tests {
269269
let header = create_test_header(BlockHash::from([0u8; 32]), 1);
270270
let block_hash = header.block_hash();
271271

272-
pool.add_orphan(header.clone());
272+
pool.add_orphan(header);
273273
assert!(pool.contains(&block_hash));
274274

275275
let removed = pool.remove_orphan(&block_hash);
@@ -300,7 +300,7 @@ mod tests {
300300
let mut pool = OrphanPool::new();
301301
let header = create_test_header(BlockHash::from([0u8; 32]), 1);
302302

303-
assert!(pool.add_orphan(header.clone()));
303+
assert!(pool.add_orphan(header));
304304
assert!(!pool.add_orphan(header)); // Should not add duplicate
305305
assert_eq!(pool.len(), 1);
306306
}
@@ -317,8 +317,8 @@ mod tests {
317317
let hash2 = header2.block_hash();
318318
let header3 = create_test_header(hash2, 3);
319319

320-
pool.add_orphan(header1.clone());
321-
pool.add_orphan(header2.clone());
320+
pool.add_orphan(header1);
321+
pool.add_orphan(header2);
322322
pool.add_orphan(header3);
323323

324324
assert_eq!(pool.len(), 3);

dash-spv/src/chain/orphan_pool_test.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ mod tests {
7272
let header_d = create_test_header(hash_c, 4);
7373

7474
// Add them out of order (A is not an orphan since it connects to genesis)
75-
pool.add_orphan(header_d.clone());
76-
pool.add_orphan(header_b.clone());
77-
pool.add_orphan(header_c.clone());
75+
pool.add_orphan(header_d);
76+
pool.add_orphan(header_b);
77+
pool.add_orphan(header_c);
7878

7979
assert_eq!(pool.len(), 3);
8080

@@ -151,13 +151,13 @@ mod tests {
151151
assert_eq!(pool.len(), 5);
152152

153153
// First 5 should have been evicted
154-
for i in 0..5 {
155-
assert!(!pool.contains(&all_hashes[i]));
154+
for h in all_hashes.iter().take(5) {
155+
assert!(!pool.contains(h));
156156
}
157157

158158
// Last 5 should still be present
159-
for i in 5..10 {
160-
assert!(pool.contains(&all_hashes[i]));
159+
for h in all_hashes.iter().skip(5).take(5) {
160+
assert!(pool.contains(h));
161161
}
162162
}
163163

@@ -170,7 +170,7 @@ mod tests {
170170
let mut headers = Vec::new();
171171
for i in 0..5 {
172172
let header = create_test_header(parent, i);
173-
headers.push(header.clone());
173+
headers.push(header);
174174
pool.add_orphan(header);
175175
}
176176

@@ -349,7 +349,7 @@ mod tests {
349349
let hash = header.block_hash();
350350
let original_time = Instant::now();
351351

352-
pool.add_orphan(header.clone());
352+
pool.add_orphan(header);
353353

354354
// Process a few times to increment attempts
355355
for _ in 0..3 {

0 commit comments

Comments
 (0)