Break into two tests
This commit is contained in:
parent
47e0cf9f69
commit
59358787eb
|
@ -1331,7 +1331,7 @@ fn test_mark_unreachable() {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_blockage_migration() {
|
fn test_blockage_migration_level_3() {
|
||||||
let mut th = TestHarness::new();
|
let mut th = TestHarness::new();
|
||||||
|
|
||||||
// Join an untrusted user
|
// Join an untrusted user
|
||||||
|
@ -1363,22 +1363,84 @@ fn test_blockage_migration() {
|
||||||
println!("cred3 = {:?}", cred3);
|
println!("cred3 = {:?}", cred3);
|
||||||
assert!(th.ba.verify_lox(&cred3));
|
assert!(th.ba.verify_lox(&cred3));
|
||||||
|
|
||||||
// If true, level up one more time, causing blockage migration to fail
|
// Get our bridges
|
||||||
let migrate_from_level_4 = false;
|
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 {
|
// Oh, no! Two of our bridges are blocked!
|
||||||
// Time passes
|
th.ba.bridge_blocked(&bucket.0[0], &mut th.bdb);
|
||||||
th.advance_days(56);
|
th.ba.bridge_blocked(&bucket.0[2], &mut th.bdb);
|
||||||
|
|
||||||
// Go up to level 4
|
println!("spares = {:?}", th.ba.bridge_table.spares);
|
||||||
let (_four_perf_stat, cred4) = th.level_up(&cred3);
|
println!("tmig = {:?}", th.ba.trustup_migration_table.table);
|
||||||
assert!(scalar_u32(&cred4.trust_level).unwrap() == 4);
|
println!("bmig = {:?}", th.ba.blockage_migration_table.table);
|
||||||
println!("cred4 = {:?}", cred4);
|
println!("openinv = {:?}\n", th.bdb.openinv_buckets);
|
||||||
assert!(th.ba.verify_lox(&cred4));
|
|
||||||
cred4
|
// Time passes
|
||||||
} else {
|
th.advance_days(1);
|
||||||
cred3
|
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
|
// Get our bridges
|
||||||
let (id, key) = bridge_table::from_scalar(cred4.bucket).unwrap();
|
let (id, key) = bridge_table::from_scalar(cred4.bucket).unwrap();
|
||||||
|
|
Loading…
Reference in New Issue