LCOV - code coverage report
Current view: top level - safekeeper/tests - random_test.rs (source / functions) Coverage Total Hit
Test: d0feeceb9d5ee9c8e73bee7d4ffcced539793178.info Lines: 100.0 % 32 32
Test Date: 2024-06-26 15:19:01 Functions: 100.0 % 2 2

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

Generated by: LCOV version 2.1-beta