Skip to content

Commit d44cf8f

Browse files
committed
tests related to on memory storage removed, we understand that it taste the same operations as the diskstoragemanager. next time use generics pls
1 parent 25f5700 commit d44cf8f

File tree

6 files changed

+47
-388
lines changed

6 files changed

+47
-388
lines changed

dash-spv/src/main.rs

Lines changed: 22 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -307,65 +307,29 @@ async fn run() -> Result<(), Box<dyn std::error::Error>> {
307307
}
308308
};
309309

310-
// Create and start the client based on storage type
311-
if config.enable_persistence {
312-
if let Some(path) = &config.storage_path {
313-
let storage_manager =
314-
match dash_spv::storage::DiskStorageManager::new(path.clone()).await {
315-
Ok(sm) => sm,
316-
Err(e) => {
317-
eprintln!("Failed to create disk storage manager: {}", e);
318-
process::exit(1);
319-
}
320-
};
321-
run_client(
322-
config,
323-
network_manager,
324-
storage_manager,
325-
wallet,
326-
enable_terminal_ui,
327-
&matches,
328-
wallet_id,
329-
)
330-
.await?;
331-
} else {
332-
let storage_manager = match dash_spv::storage::DiskStorageManager::new_tmp().awai {
333-
Ok(sm) => sm,
334-
Err(e) => {
335-
eprintln!("Failed to create memory storage manager: {}", e);
336-
process::exit(1);
337-
}
338-
};
339-
run_client(
340-
config,
341-
network_manager,
342-
storage_manager,
343-
wallet,
344-
enable_terminal_ui,
345-
&matches,
346-
wallet_id,
347-
)
348-
.await?;
349-
}
310+
let path = if let Some(path) = &config.storage_path {
311+
path.clone()
350312
} else {
351-
let storage_manager = match dash_spv::storage::DiskStorageManager::new_tmp().awai {
352-
Ok(sm) => sm,
353-
Err(e) => {
354-
eprintln!("Failed to create memory storage manager: {}", e);
355-
process::exit(1);
356-
}
357-
};
358-
run_client(
359-
config,
360-
network_manager,
361-
storage_manager,
362-
wallet,
363-
enable_terminal_ui,
364-
&matches,
365-
wallet_id,
366-
)
367-
.await?;
368-
}
313+
"./.tmp/main-exec-storage"
314+
};
315+
316+
let storage_manager = match dash_spv::storage::DiskStorageManager::new(path.clone()).await {
317+
Ok(sm) => sm,
318+
Err(e) => {
319+
eprintln!("Failed to create disk storage manager: {}", e);
320+
process::exit(1);
321+
}
322+
};
323+
run_client(
324+
config,
325+
network_manager,
326+
storage_manager,
327+
wallet,
328+
enable_terminal_ui,
329+
&matches,
330+
wallet_id,
331+
)
332+
.await?;
369333

370334
Ok(())
371335
}

dash-spv/tests/block_download_test.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
1010
use std::collections::HashSet;
1111
use std::sync::Arc;
12+
use tempfile::TempDir;
1213
use tokio::sync::Mutex;
1314
use tokio::sync::RwLock;
1415

@@ -340,7 +341,9 @@ async fn test_sync_manager_integration() {}
340341
#[tokio::test]
341342
async fn test_filter_match_and_download_workflow() {
342343
let config = create_test_config();
343-
let _storage = DiskStorageManager::new_tmp().await.expect("Failed to create tmp storage");
344+
let _storage = DiskStorageManager::new(TempDir::new().unwrap().path().to_path_buf())
345+
.await
346+
.expect("Failed to create tmp storage");
344347
let received_heights = Arc::new(Mutex::new(HashSet::new()));
345348
let mut filter_sync: FilterSyncManager<DiskStorageManager, MockNetworkManager> =
346349
FilterSyncManager::new(&config, received_heights);

dash-spv/tests/edge_case_filter_sync_test.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
1010
use std::collections::HashSet;
1111
use std::sync::Arc;
12+
use tempfile::TempDir;
1213
use tokio::sync::Mutex;
1314

1415
use dash_spv::{
@@ -121,7 +122,9 @@ async fn test_filter_sync_at_tip_edge_case() {
121122
let mut filter_sync: FilterSyncManager<DiskStorageManager, MockNetworkManager> =
122123
FilterSyncManager::new(&config, received_heights);
123124

124-
let mut storage = DiskStorageManager::new_tmp().await.expect("Failed to create tmp storage");
125+
let mut storage = DiskStorageManager::new(TempDir::new().unwrap().path().to_path_buf())
126+
.await
127+
.expect("Failed to create tmp storage");
125128
let mut network = MockNetworkManager::new();
126129

127130
// Set up storage with headers and filter headers at the same height (tip)
@@ -164,7 +167,9 @@ async fn test_no_invalid_getcfheaders_at_tip() {
164167
let mut filter_sync: FilterSyncManager<DiskStorageManager, MockNetworkManager> =
165168
FilterSyncManager::new(&config, received_heights);
166169

167-
let mut storage = DiskStorageManager::new_tmp().await.expect("Failed to create tmp storage");
170+
let mut storage = DiskStorageManager::new(TempDir::new().unwrap().path().to_path_buf())
171+
.await
172+
.expect("Failed to create tmp storage");
168173
let mut network = MockNetworkManager::new();
169174

170175
// Create a scenario where we're one block behind

dash-spv/tests/filter_header_verification_test.rs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ use dashcore::{
3333
use dashcore_hashes::{sha256d, Hash};
3434
use std::collections::HashSet;
3535
use std::sync::Arc;
36+
use tempfile::TempDir;
3637
use tokio::sync::Mutex;
3738

3839
/// Mock network manager for testing filter sync
@@ -181,7 +182,9 @@ async fn test_filter_header_verification_failure_reproduction() {
181182
println!("=== Testing Filter Header Chain Verification Failure ===");
182183

183184
// Create storage and sync manager
184-
let mut storage = DiskStorageManager::new_tmp().await.expect("Failed to create tmp storage");
185+
let mut storage = DiskStorageManager::new(TempDir::new().unwrap().path().to_path_buf())
186+
.await
187+
.expect("Failed to create tmp storage");
185188
let mut network = MockNetworkManager::new();
186189

187190
let config = ClientConfig::new(Network::Dash);
@@ -343,7 +346,9 @@ async fn test_overlapping_batches_from_different_peers() {
343346
// The system should handle this gracefully, but currently it crashes.
344347
// This test will FAIL until we implement the fix.
345348

346-
let mut storage = DiskStorageManager::new_tmp().await.expect("Failed to create tmp storage");
349+
let mut storage = DiskStorageManager::new(TempDir::new().unwrap().path().to_path_buf())
350+
.await
351+
.expect("Failed to create tmp storage");
347352
let mut network = MockNetworkManager::new();
348353

349354
let config = ClientConfig::new(Network::Dash);
@@ -517,7 +522,9 @@ async fn test_filter_header_verification_overlapping_batches() {
517522
// This test simulates what happens when we receive overlapping filter header batches
518523
// due to recovery/retry mechanisms or multiple peers
519524

520-
let mut storage = DiskStorageManager::new_tmp().await.expect("Failed to create tmp storage");
525+
let mut storage = DiskStorageManager::new(TempDir::new().unwrap().path().to_path_buf())
526+
.await
527+
.expect("Failed to create tmp storage");
521528
let mut network = MockNetworkManager::new();
522529

523530
let config = ClientConfig::new(Network::Dash);
@@ -613,7 +620,9 @@ async fn test_filter_header_verification_race_condition_simulation() {
613620
// This test simulates the race condition that might occur when multiple
614621
// filter header requests are in flight simultaneously
615622

616-
let mut storage = DiskStorageManager::new_tmp().await.expect("Failed to create tmp storage");
623+
let mut storage = DiskStorageManager::new(TempDir::new().unwrap().path().to_path_buf())
624+
.await
625+
.expect("Failed to create tmp storage");
617626
let mut network = MockNetworkManager::new();
618627

619628
let config = ClientConfig::new(Network::Dash);

dash-spv/tests/reverse_index_test.rs

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,6 @@ use dashcore_hashes::Hash;
44
use std::path::PathBuf;
55
use tempfile::TempDir;
66

7-
#[tokio::test]
8-
async fn test_reverse_index_memory_storage() {
9-
let mut storage =
10-
DiskStorageManager::new(TempDir::new().expect("Failed to create tmp dir").path().into())
11-
.await
12-
.expect("Failed to create tmp storage");
13-
14-
// Create some test headers
15-
let mut headers = Vec::new();
16-
for i in 0..10 {
17-
let header = create_test_header(i);
18-
headers.push(header);
19-
}
20-
21-
// Store headers
22-
storage.store_headers(&headers).await.unwrap();
23-
24-
// Test reverse lookups
25-
for (i, header) in headers.iter().enumerate() {
26-
let hash = header.block_hash();
27-
let height = storage.get_header_height_by_hash(&hash).await.unwrap();
28-
assert_eq!(height, Some(i as u32), "Height mismatch for header {}", i);
29-
}
30-
31-
// Test non-existent hash
32-
let fake_hash = dashcore::BlockHash::from_byte_array([0xFF; 32]);
33-
let height = storage.get_header_height_by_hash(&fake_hash).await.unwrap();
34-
assert_eq!(height, None, "Should return None for non-existent hash");
35-
}
36-
377
#[tokio::test]
388
async fn test_reverse_index_disk_storage() {
399
let temp_dir = tempfile::tempdir().unwrap();

0 commit comments

Comments
 (0)