From e30b350e325e7d517ea744578876d473839ad495 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Thu, 25 Nov 2021 02:32:57 +0000 Subject: [PATCH] Update tests to new logger API As of this commit, leaks for a full run are down to: 17 allocations remained for 1115062 bytes. --- src/test/java/org/ldk/HumanObjectPeerTest.java | 10 +++++++++- src/test/java/org/ldk/ManualMsgHandlingPeerTest.java | 6 ++++-- src/test/java/org/ldk/PeerTest.java | 5 ++++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/test/java/org/ldk/HumanObjectPeerTest.java b/src/test/java/org/ldk/HumanObjectPeerTest.java index eb3d43f2..80c7cf61 100644 --- a/src/test/java/org/ldk/HumanObjectPeerTest.java +++ b/src/test/java/org/ldk/HumanObjectPeerTest.java @@ -7,6 +7,7 @@ import org.ldk.batteries.ChannelManagerConstructor; import org.ldk.batteries.NioPeerHandler; import org.ldk.enums.AccessError; import org.ldk.enums.Currency; +import org.ldk.enums.Level; import org.ldk.enums.Network; import org.ldk.structs.*; import org.ldk.util.TwoTuple; @@ -201,7 +202,12 @@ class HumanObjectPeerTestInstance { } private Peer(Object _dummy, byte seed) { - logger = Logger.new_impl((String arg) -> System.out.println(seed + ": " + arg)); + logger = Logger.new_impl((Record arg)->{ + if (arg.get_level() == Level.LDKLevel_Error) + System.err.println(seed + ": " + arg.get_module_path() + " - " + arg.get_args()); + else + System.out.println(seed + ": " + arg.get_module_path() + " - " + arg.get_args()); + }); fee_estimator = FeeEstimator.new_impl((confirmation_target -> 253)); tx_broadcaster = BroadcasterInterface.new_impl(tx -> { synchronized (broadcast_set) { @@ -1025,6 +1031,8 @@ class HumanObjectPeerTestInstance { t.interrupt(); + state.peer1.router.write(); + // Construct the only Option_Enum::Variant(OpaqueStruct) we have in the codebase as this used to cause double-frees: byte[] serd = new byte[] {(byte)0xd9,(byte)0x77,(byte)0xcb,(byte)0x9b,(byte)0x53,(byte)0xd9,(byte)0x3a,(byte)0x6f,(byte)0xf6,(byte)0x4b,(byte)0xb5,(byte)0xf1,(byte)0xe1,(byte)0x58,(byte)0xb4,(byte)0x09,(byte)0x4b,(byte)0x66,(byte)0xe7,(byte)0x98,(byte)0xfb,(byte)0x12,(byte)0x91,(byte)0x11,(byte)0x68,(byte)0xa3,(byte)0xcc,(byte)0xdf,(byte)0x80,(byte)0xa8,(byte)0x30,(byte)0x96,(byte)0x34,(byte)0x0a,(byte)0x6a,(byte)0x95,(byte)0xda,(byte)0x0a,(byte)0xe8,(byte)0xd9,(byte)0xf7,(byte)0x76,(byte)0x52,(byte)0x8e,(byte)0xec,(byte)0xdb,(byte)0xb7,(byte)0x47,(byte)0xeb,(byte)0x6b,(byte)0x54,(byte)0x54,(byte)0x95,(byte)0xa4,(byte)0x31,(byte)0x9e,(byte)0xd5,(byte)0x37,(byte)0x8e,(byte)0x35,(byte)0xb2,(byte)0x1e,(byte)0x07,(byte)0x3a,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x19,(byte)0xd6,(byte)0x68,(byte)0x9c,(byte)0x08,(byte)0x5a,(byte)0xe1,(byte)0x65,(byte)0x83,(byte)0x1e,(byte)0x93,(byte)0x4f,(byte)0xf7,(byte)0x63,(byte)0xae,(byte)0x46,(byte)0xa2,(byte)0xa6,(byte)0xc1,(byte)0x72,(byte)0xb3,(byte)0xf1,(byte)0xb6,(byte)0x0a,(byte)0x8c,(byte)0xe2,(byte)0x6f,(byte)0x00,(byte)0x08,(byte)0x3a,(byte)0x84,(byte)0x00,(byte)0x00,(byte)0x03,(byte)0x4d,(byte)0x01,(byte)0x34,(byte)0x13,(byte)0xa7,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x90,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x0f,(byte)0x42,(byte)0x40,(byte)0x00,(byte)0x00,(byte)0x27,(byte)0x10,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x14,}; Result_ChannelUpdateDecodeErrorZ upd_msg = ChannelUpdate.read(serd); diff --git a/src/test/java/org/ldk/ManualMsgHandlingPeerTest.java b/src/test/java/org/ldk/ManualMsgHandlingPeerTest.java index 90320d4b..ed01a847 100644 --- a/src/test/java/org/ldk/ManualMsgHandlingPeerTest.java +++ b/src/test/java/org/ldk/ManualMsgHandlingPeerTest.java @@ -3,12 +3,14 @@ package org.ldk; import org.junit.jupiter.api.Test; import org.ldk.impl.bindings; import org.ldk.enums.*; +import org.ldk.structs.Record; public class ManualMsgHandlingPeerTest { @Test void test_message_handler() { - long logger = bindings.LDKLogger_new((String arg)->{ - System.out.println(arg); + long logger = bindings.LDKLogger_new((long arg)->{ + System.out.println(bindings.Record_get_args(arg)); + bindings.Record_free(arg); }); long chan_handler = bindings.LDKChannelMessageHandler_new(new bindings.LDKChannelMessageHandler() { @Override diff --git a/src/test/java/org/ldk/PeerTest.java b/src/test/java/org/ldk/PeerTest.java index fe157b95..28b5c75e 100644 --- a/src/test/java/org/ldk/PeerTest.java +++ b/src/test/java/org/ldk/PeerTest.java @@ -37,7 +37,10 @@ public class PeerTest { bindings.LDKWatch watcher; Peer(byte seed) { - this.log_trait = (String arg)-> System.out.println(seed + ": " + arg); + this.log_trait = (long arg) -> { + System.out.println(seed + ": " + bindings.Record_get_args(arg)); + bindings.Record_free(arg); + }; logger = bindings.LDKLogger_new(this.log_trait); this.fee_est = confirmation_target -> 0; this.fee_estimator = bindings.LDKFeeEstimator_new(this.fee_est); -- 2.30.2