}
fn mine_blocks(&self, n: u64) -> Vec<bitcoin::Block> {
let blocks = self.bitcoin_rpc_server.mine_blocks(n);
self.index.update().unwrap();
blocks
}
fn mine_blocks_with_subsidy(&self, n: u64, subsidy: u64) -> Vec<Block> {
let blocks = self.bitcoin_rpc_server.mine_blocks_with_subsidy(n, subsidy);
self.index.update().unwrap();
blocks
}
}
impl Drop for TestServer {
fn drop(&mut self) {
self.ord_server_handle.shutdown();
}
}
fn parse_server_args(args: &str) -> (Options, Server) {
match Arguments::try_parse_from(args.split_whitespace()) {
Ok(arguments) => match arguments.subcommand {
Subcommand::Server(server) => (arguments.options, server),
subcommand => panic!("unexpected subcommand: {subcommand:?}"),
},
Err(err) => panic!("error parsing arguments: {err}"),
}
}
#[test]
fn http_and_https_port_dont_conflict() {
parse_server_args(
"ord server --http-port 0 --https-port 0 --acme-cache foo --acme-contact bar --acme-domain baz",