Break into two tests
This commit is contained in:
parent
47e0cf9f69
commit
59358787eb
|
@ -1331,7 +1331,7 @@ fn test_mark_unreachable() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn test_blockage_migration() {
|
||||
fn test_blockage_migration_level_3() {
|
||||
let mut th = TestHarness::new();
|
||||
|
||||
// Join an untrusted user
|
||||
|
@ -1363,22 +1363,84 @@ fn test_blockage_migration() {
|
|||
println!("cred3 = {:?}", cred3);
|
||||
assert!(th.ba.verify_lox(&cred3));
|
||||
|
||||
// If true, level up one more time, causing blockage migration to fail
|
||||
let migrate_from_level_4 = false;
|
||||
// Get our bridges
|
||||
let (id, key) = bridge_table::from_scalar(cred3.bucket).unwrap();
|
||||
let encbuckets = th.ba.enc_bridge_table();
|
||||
let bucket =
|
||||
bridge_table::BridgeTable::decrypt_bucket(id, &key, encbuckets.get(&id).unwrap()).unwrap();
|
||||
// We should have a Bridge Reachability credential
|
||||
assert!(bucket.1.is_some());
|
||||
|
||||
let cred4 = if migrate_from_level_4 {
|
||||
// Time passes
|
||||
th.advance_days(56);
|
||||
// Oh, no! Two of our bridges are blocked!
|
||||
th.ba.bridge_blocked(&bucket.0[0], &mut th.bdb);
|
||||
th.ba.bridge_blocked(&bucket.0[2], &mut th.bdb);
|
||||
|
||||
// Go up to level 4
|
||||
let (_four_perf_stat, cred4) = th.level_up(&cred3);
|
||||
assert!(scalar_u32(&cred4.trust_level).unwrap() == 4);
|
||||
println!("cred4 = {:?}", cred4);
|
||||
assert!(th.ba.verify_lox(&cred4));
|
||||
cred4
|
||||
} else {
|
||||
cred3
|
||||
};
|
||||
println!("spares = {:?}", th.ba.bridge_table.spares);
|
||||
println!("tmig = {:?}", th.ba.trustup_migration_table.table);
|
||||
println!("bmig = {:?}", th.ba.blockage_migration_table.table);
|
||||
println!("openinv = {:?}\n", th.bdb.openinv_buckets);
|
||||
|
||||
// Time passes
|
||||
th.advance_days(1);
|
||||
let encbuckets2 = th.ba.enc_bridge_table();
|
||||
let bucket2 =
|
||||
bridge_table::BridgeTable::decrypt_bucket(id, &key, encbuckets2.get(&id).unwrap()).unwrap();
|
||||
// We should no longer have a Bridge Reachability credential
|
||||
assert!(bucket2.1.is_none());
|
||||
|
||||
// See about getting a Migration credential for the blockage
|
||||
let (_block_perf_stat, migration) = th.check_blockage(&cred3);
|
||||
|
||||
println!("migration = {:?}", migration);
|
||||
|
||||
// Migrate
|
||||
let (_four_perf_stat, cred4) = th.blockage_migration(&cred3, &migration);
|
||||
|
||||
println!("cred4 = {:?}", cred4);
|
||||
assert!(th.ba.verify_lox(&cred4));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_blockage_migration_level_4() {
|
||||
let mut th = TestHarness::new();
|
||||
|
||||
// Join an untrusted user
|
||||
let cred = th.open_invite().1 .0;
|
||||
|
||||
// Time passes
|
||||
th.advance_days(47);
|
||||
|
||||
// Go up to level 1
|
||||
let (_mperf_stat, migcred) = th.trust_promotion(&cred);
|
||||
let (_perf_stat, cred1) = th.level0_migration(&cred, &migcred);
|
||||
assert!(scalar_u32(&cred1.trust_level).unwrap() == 1);
|
||||
|
||||
// Time passes
|
||||
th.advance_days(20);
|
||||
|
||||
// Go up to level 2
|
||||
let (_two_perf_stat, cred2) = th.level_up(&cred1);
|
||||
assert!(scalar_u32(&cred2.trust_level).unwrap() == 2);
|
||||
println!("cred2 = {:?}", cred2);
|
||||
assert!(th.ba.verify_lox(&cred2));
|
||||
|
||||
// Time passes
|
||||
th.advance_days(29);
|
||||
|
||||
// Go up to level 3
|
||||
let (_three_perf_stat, cred3) = th.level_up(&cred2);
|
||||
assert!(scalar_u32(&cred3.trust_level).unwrap() == 3);
|
||||
println!("cred3 = {:?}", cred3);
|
||||
assert!(th.ba.verify_lox(&cred3));
|
||||
|
||||
// Time passes
|
||||
th.advance_days(56);
|
||||
|
||||
// Go up to level 4
|
||||
let (_four_perf_stat, cred4) = th.level_up(&cred3);
|
||||
assert!(scalar_u32(&cred4.trust_level).unwrap() == 4);
|
||||
println!("cred4 = {:?}", cred4);
|
||||
assert!(th.ba.verify_lox(&cred4));
|
||||
|
||||
// Get our bridges
|
||||
let (id, key) = bridge_table::from_scalar(cred4.bucket).unwrap();
|
||||
|
|
Loading…
Reference in New Issue