X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Forg%2Fldk%2FHumanObjectPeerTest.java;h=aa79ca6bec459c6ee3f34ab6e52ec870b2c90831;hb=346c8b8664a67c94842635b5d000a50406844691;hp=27ddc7c2a53e7f96f936651120ebc4cbc5f43737;hpb=3dcd430967b250ca9020d0f57a7fa5f8f5904aa9;p=ldk-java diff --git a/src/test/java/org/ldk/HumanObjectPeerTest.java b/src/test/java/org/ldk/HumanObjectPeerTest.java index 27ddc7c2..aa79ca6b 100644 --- a/src/test/java/org/ldk/HumanObjectPeerTest.java +++ b/src/test/java/org/ldk/HumanObjectPeerTest.java @@ -113,7 +113,7 @@ class HumanObjectPeerTestInstance { } @Override - public Result_ChanKeySignerDecodeErrorZ read_chan_signer(byte[] reader) { + public Result_ChannelKeysDecodeErrorZ read_chan_signer(byte[] reader) { return underlying_if.read_chan_signer(reader); } }); @@ -333,6 +333,20 @@ class HumanObjectPeerTestInstance { return null; } + Event[] get_monitor_events() { + if (chain_monitor != null) { + return chain_monitor.as_EventsProvider().get_and_clear_pending_events(); + } else { + synchronized (monitors) { + assert monitors.size() == 1; + for (ChannelMonitor mon : monitors.values()) { + return mon.get_and_clear_pending_events(); + } + return null; + } + } + } + Route get_route(byte[] dest_node, ChannelDetails[] our_chans) { try (LockedNetworkGraph netgraph = this.router.read_locked_graph()) { NetworkGraph graph = netgraph.graph(); @@ -379,7 +393,7 @@ class HumanObjectPeerTestInstance { if (use_nio_peer_handler) { peer1.nio_peer_handler.check_events(); peer2.nio_peer_handler.check_events(); - try { Thread.sleep(500); } catch (InterruptedException e) { assert false; } + try { Thread.sleep(400); } catch (InterruptedException e) { assert false; } } else { synchronized (runqueue) { ran = false; @@ -517,6 +531,18 @@ class HumanObjectPeerTestInstance { assert payment_res instanceof Result_NonePaymentSendFailureZ.Result_NonePaymentSendFailureZ_OK; wait_events_processed(peer1, peer2); + RouteHop[][] hops = new RouteHop[1][1]; + byte[] hop_pubkey = new byte[33]; + hop_pubkey[0] = 3; + hop_pubkey[1] = 42; + hops[0][0] = RouteHop.constructor_new(hop_pubkey, NodeFeatures.constructor_known(), 42, ChannelFeatures.constructor_known(), 100, 0); + Route r2 = Route.constructor_new(hops); + payment_res = peer1.chan_manager.send_payment(r2, payment_hash, new byte[32]); + assert payment_res instanceof Result_NonePaymentSendFailureZ.Result_NonePaymentSendFailureZ_Err; + + assert peer1.get_monitor_events().length == 0; + assert peer2.get_monitor_events().length == 0; + if (reload_peers) { if (use_nio_peer_handler) { peer1.nio_peer_handler.interrupt(); @@ -610,9 +636,16 @@ class HumanObjectPeerTestInstance { } if (use_nio_peer_handler) { + state.peer1.peer_manager.disconnect_by_node_id(state.peer2.chan_manager.get_our_node_id(), false); + wait_events_processed(state.peer1, state.peer2); + assert state.peer1.peer_manager.get_peer_node_ids().length == 0; + assert state.peer2.peer_manager.get_peer_node_ids().length == 0; state.peer1.nio_peer_handler.interrupt(); state.peer2.nio_peer_handler.interrupt(); } + + assert state.peer1.get_monitor_events().length == 0; + assert state.peer2.get_monitor_events().length == 0; } java.util.LinkedList> must_free_objs = new java.util.LinkedList();