LCOV - code coverage report
Current view: top level - safekeeper/tests - random_test.rs (source / functions) Coverage Total Hit
Test: 6df3fc19ec669bcfbbf9aba41d1338898d24eaa0.info Lines: 100.0 % 32 32
Test Date: 2025-03-12 18:28:53 Functions: 100.0 % 2 2

            Line data    Source code
       1              : use rand::Rng;
       2              : use tracing::{info, warn};
       3              : 
       4              : use crate::walproposer_sim::log::{init_logger, init_tracing_logger};
       5              : use crate::walproposer_sim::simulation::{TestConfig, generate_network_opts, generate_schedule};
       6              : use crate::walproposer_sim::simulation_logs::validate_events;
       7              : 
       8              : pub mod walproposer_sim;
       9              : 
      10              : // Generates 500 random seeds and runs a schedule for each of them.
      11              : // If you see this test fail, please report the last seed to the
      12              : // @safekeeper team.
      13              : #[test]
      14            1 : fn test_random_schedules() -> anyhow::Result<()> {
      15            1 :     let clock = init_logger();
      16            1 :     let mut config = TestConfig::new(Some(clock));
      17              : 
      18          501 :     for _ in 0..500 {
      19          500 :         let seed: u64 = rand::thread_rng().r#gen();
      20          500 :         config.network = generate_network_opts(seed);
      21          500 : 
      22          500 :         let test = config.start(seed);
      23          500 :         warn!("Running test with seed {}", seed);
      24              : 
      25          500 :         let schedule = generate_schedule(seed);
      26          500 :         test.run_schedule(&schedule).unwrap();
      27          500 :         validate_events(test.world.take_events());
      28          500 :         test.world.deallocate();
      29              :     }
      30              : 
      31            1 :     Ok(())
      32            1 : }
      33              : 
      34              : // After you found a seed that fails, you can insert this seed here
      35              : // and run the test to see the full debug output.
      36              : #[test]
      37            1 : fn test_one_schedule() -> anyhow::Result<()> {
      38            1 :     let clock = init_tracing_logger(true);
      39            1 :     let mut config = TestConfig::new(Some(clock));
      40            1 : 
      41            1 :     let seed = 11047466935058776390;
      42            1 :     config.network = generate_network_opts(seed);
      43            1 :     info!("network: {:?}", config.network);
      44            1 :     let test = config.start(seed);
      45            1 :     warn!("Running test with seed {}", seed);
      46              : 
      47            1 :     let schedule = generate_schedule(seed);
      48            1 :     info!("schedule: {:?}", schedule);
      49            1 :     test.run_schedule(&schedule).unwrap();
      50            1 :     validate_events(test.world.take_events());
      51            1 :     test.world.deallocate();
      52            1 : 
      53            1 :     Ok(())
      54            1 : }
        

Generated by: LCOV version 2.1-beta