Skip to content

Commit

Permalink
test: run the address::set_network test in a new process
Browse files Browse the repository at this point in the history
This prevents it from messing with the other tests.

fixes #1924
  • Loading branch information
Stebalien authored and fridrik01 committed Nov 20, 2023
1 parent 0731f70 commit f631076
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 23 deletions.
18 changes: 18 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions shared/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ multihash = { workspace = true, features = ["multihash-impl", "sha2", "sha3", "r
quickcheck_macros = "1"

fvm_shared = { path = ".", features = ["arb"] }
rusty-fork = { version = "0.3.0", default-features = false }

[features]
default = []
Expand Down
50 changes: 27 additions & 23 deletions shared/src/address/network.rs
Original file line number Diff line number Diff line change
Expand Up @@ -75,28 +75,32 @@ mod tests {
use super::*;
use crate::address::Address;

#[test]
fn set_network() {
assert_eq!(current_network(), Network::default());
assert_eq!(Network::default(), Network::Mainnet);

// We're in mainnet mode.
let addr1 = Address::from_str("f01");
Address::from_str("t01").expect_err("should have failed to parse testnet address");
assert_eq!(
addr1,
Network::Testnet.parse_address("t01"),
"parsing an explicit address should still work"
);

// Switch to testnet mode.
set_current_network(Network::Testnet);

// Now we're in testnet mode.
let addr2 = Address::from_str("t01");
Address::from_str("f01").expect_err("should have failed to parse testnet address");

// Networks are relevent for parsing only.
assert_eq!(addr1, addr2)
// We fork this test into a new process because it messes with global state.
use rusty_fork::rusty_fork_test;
rusty_fork_test! {
#[test]
fn set_network() {
assert_eq!(current_network(), Network::default());
assert_eq!(Network::default(), Network::Mainnet);

// We're in mainnet mode.
let addr1 = Address::from_str("f01");
Address::from_str("t01").expect_err("should have failed to parse testnet address");
assert_eq!(
addr1,
Network::Testnet.parse_address("t01"),
"parsing an explicit address should still work"
);

// Switch to testnet mode.
set_current_network(Network::Testnet);

// Now we're in testnet mode.
let addr2 = Address::from_str("t01");
Address::from_str("f01").expect_err("should have failed to parse testnet address");

// Networks are relevent for parsing only.
assert_eq!(addr1, addr2)
}
}
}

0 comments on commit f631076

Please sign in to comment.