use halfin::bitcoind::BitcoinD;
use halfin::utreexod::UtreexoD;
use halfin::wait_for_height;
#[test]
fn test_bitcoind_utreexod_addnode() {
let bitcoind = BitcoinD::download_new().unwrap();
let utreexod = UtreexoD::download_new().unwrap();
assert_eq!(bitcoind.get_peer_count().unwrap(), 0);
assert_eq!(utreexod.get_peer_count().unwrap(), 0);
bitcoind.add_peer(utreexod.get_p2p_socket()).unwrap();
assert_eq!(bitcoind.get_peer_count().unwrap(), 1);
assert_eq!(utreexod.get_peer_count().unwrap(), 1);
}
#[test]
fn test_bitcoind_blocks_propagate_to_utreexod() {
let bitcoind = BitcoinD::download_new().unwrap();
let utreexod = UtreexoD::download_new().unwrap();
bitcoind.generate(21).unwrap();
assert_eq!(bitcoind.get_height().unwrap(), 21);
utreexod.add_peer(bitcoind.get_p2p_socket()).unwrap();
wait_for_height(&utreexod, 21).unwrap();
assert_eq!(utreexod.get_height().unwrap(), 21);
}
#[test]
#[ignore]
fn test_bitcoind_utreexod_chain_sync() {
let bitcoind = BitcoinD::download_new().unwrap();
let utreexod = UtreexoD::download_new().unwrap();
bitcoind.add_peer(utreexod.get_p2p_socket()).unwrap();
let bitcoind_peers = bitcoind
.get_rpc_client()
.call::<serde_json::Value>("getpeerinfo", &[])
.unwrap();
let utreexod_peers = utreexod
.get_rpc_client()
.call::<serde_json::Value>("getpeerinfo", &[])
.unwrap();
println!("bitcoind peers: {:#?}", bitcoind_peers);
println!("utreexod peers: {:#?}", utreexod_peers);
bitcoind.generate(10).unwrap();
wait_for_height(&utreexod, 10).unwrap();
assert_eq!(utreexod.get_height().unwrap(), 10);
bitcoind.generate(10).unwrap();
wait_for_height(&utreexod, 20).unwrap();
assert_eq!(utreexod.get_height().unwrap(), 20);
}