diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index 14c2e55821..99c9e58719 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -130,11 +130,19 @@ jobs: - name: Run network tests (with encrypt-records) timeout-minutes: 25 - run: cargo test --release --package sn_networking --features="open-metrics, encrypt-records" + run: cargo test --release --package sn_networking --features="open-metrics, encrypt-records" -- --skip can_store_after_restart + + - name: Run network tests (with encrypt-records) + timeout-minutes: 5 + run: cargo test --release --package sn_networking --features="open-metrics, encrypt-records" can_store_after_restart - name: Run network tests (without encrypt-records) timeout-minutes: 25 - run: cargo test --release --package sn_networking --features="open-metrics" + run: cargo test --release --package sn_networking --features="open-metrics" -- --skip can_store_after_restart + + - name: Run network tests (without encrypt-records) + timeout-minutes: 5 + run: cargo test --release --package sn_networking --features="open-metrics" can_store_after_restart - name: Run protocol tests timeout-minutes: 25 diff --git a/sn_networking/src/record_store.rs b/sn_networking/src/record_store.rs index e3eb672d6c..d5101a7a23 100644 --- a/sn_networking/src/record_store.rs +++ b/sn_networking/src/record_store.rs @@ -1043,7 +1043,10 @@ mod tests { use bls::SecretKey; use xor_name::XorName; - use assert_fs::TempDir; + use assert_fs::{ + fixture::{PathChild, PathCreateDir}, + TempDir, + }; use bytes::Bytes; use eyre::{bail, ContextCompat}; use libp2p::kad::K_VALUE; @@ -1245,11 +1248,13 @@ mod tests { } #[tokio::test] - #[ignore = "fails on ci"] async fn can_store_after_restart() -> eyre::Result<()> { - let temp_dir = TempDir::new().expect("Should be able to create a temp dir."); + let tmp_dir = TempDir::new()?; + let current_test_dir = tmp_dir.child("can_store_after_restart"); + current_test_dir.create_dir_all()?; + let store_config = NodeRecordStoreConfig { - storage_dir: temp_dir.to_path_buf(), + storage_dir: current_test_dir.to_path_buf(), encryption_seed: [1u8; 16], ..Default::default() }; @@ -1290,7 +1295,7 @@ mod tests { assert!(stored_record.is_some(), "Chunk should be stored"); // Sleep a while to let OS completes the flush to disk - sleep(Duration::from_secs(1)).await; + sleep(Duration::from_secs(5)).await; // Restart the store with same encrypt_seed drop(store); @@ -1311,7 +1316,7 @@ mod tests { // Restart the store with different encrypt_seed let self_id_diff = PeerId::random(); let store_config_diff = NodeRecordStoreConfig { - storage_dir: temp_dir.to_path_buf(), + storage_dir: current_test_dir.to_path_buf(), encryption_seed: [2u8; 16], ..Default::default() };