Skip to content

Commit 90e7aac

Browse files
committed
Test peer configuration scenarios.
1 parent 3b54b42 commit 90e7aac

File tree

5 files changed

+93
-16
lines changed

5 files changed

+93
-16
lines changed

ci/LDKSwift/Tests/LDKSwiftTests/HumanObjectPeerTestInstance.swift

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import LDKHeaders
1111

1212
public class HumanObjectPeerTestInstance {
1313

14-
/*
15-
1614
private let nice_close: Bool;
1715
private let use_km_wrapper: Bool;
1816
private let use_manual_watch: Bool;
@@ -121,10 +119,10 @@ public class HumanObjectPeerTestInstance {
121119

122120
fileprivate class TestPersister: Persist {
123121
override func persist_new_channel(id: OutPoint, data: ChannelMonitor) -> Result_NoneChannelMonitorUpdateErrZ {
124-
return Result_NoneChannelMonitorUpdateErrZ()
122+
return Result_NoneChannelMonitorUpdateErrZ.ok()
125123
}
126124
override func update_persisted_channel(id: OutPoint, update: ChannelMonitorUpdate, data: ChannelMonitor) -> Result_NoneChannelMonitorUpdateErrZ {
127-
return Result_NoneChannelMonitorUpdateErrZ()
125+
return Result_NoneChannelMonitorUpdateErrZ.ok()
128126
}
129127
}
130128

@@ -217,7 +215,7 @@ public class HumanObjectPeerTestInstance {
217215
return
218216
}
219217
self.tcpSocketHandler = TCPPeerHandler(peerManager: self.peerManager)
220-
for i in 0...10000 {
218+
for i in 1...10000 {
221219
let port = UInt16(i)
222220
let bound = self.tcpSocketHandler!.bind(address: "127.0.0.1", port: port)
223221
if bound {
@@ -255,7 +253,5 @@ public class HumanObjectPeerTestInstance {
255253
connectPeers(peerA: peer1, peerB: peer2)
256254
}
257255

258-
*/
259-
260256
}
261257

ci/LDKSwift/Tests/LDKSwiftTests/LDKSwiftTest.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ class LDKSwiftTest: XCTestCase {
7777
channel_manager_constructor.interrupt()
7878
}
7979

80-
/*
8180

82-
func xtestExtendedActivity() {
81+
82+
func testExtendedActivity() {
8383
// for i in 0...(1 << 7) {
8484
for i in 0..<1 { // only do one test run initially
8585
let nice_close = (i & (1 << 0)) != 0;
@@ -132,8 +132,6 @@ class LDKSwiftTest: XCTestCase {
132132

133133
}
134134

135-
*/
136-
137135

138136
func testPerformanceExample() throws {
139137
// This is an example of a performance test case.

xcode/DirectBindingsApp/DirectBindingsApp.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,6 +554,8 @@
554554
07BBCE7526D03B49000D96C4 /* TestFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07BBCE6626D03B49000D96C4 /* TestFilter.swift */; };
555555
07BBCE7626D03B49000D96C4 /* TestBroadcasterInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07BBCE6726D03B49000D96C4 /* TestBroadcasterInterface.swift */; };
556556
07BBCE7726D03B49000D96C4 /* TestBroadcasterInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07BBCE6726D03B49000D96C4 /* TestBroadcasterInterface.swift */; };
557+
07C753E026D6BE4E00081BF8 /* HumanObjectPeerTestInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07C753DF26D6BE4E00081BF8 /* HumanObjectPeerTestInstance.swift */; };
558+
07C753E126D6BE4E00081BF8 /* HumanObjectPeerTestInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07C753DF26D6BE4E00081BF8 /* HumanObjectPeerTestInstance.swift */; };
557559
/* End PBXBuildFile section */
558560

559561
/* Begin PBXContainerItemProxy section */
@@ -867,6 +869,7 @@
867869
07BBCE6526D03B49000D96C4 /* TestFeeEstimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestFeeEstimator.swift; sourceTree = "<group>"; };
868870
07BBCE6626D03B49000D96C4 /* TestFilter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestFilter.swift; sourceTree = "<group>"; };
869871
07BBCE6726D03B49000D96C4 /* TestBroadcasterInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestBroadcasterInterface.swift; sourceTree = "<group>"; };
872+
07C753DF26D6BE4E00081BF8 /* HumanObjectPeerTestInstance.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HumanObjectPeerTestInstance.swift; sourceTree = "<group>"; };
870873
/* End PBXFileReference section */
871874

872875
/* Begin PBXFrameworksBuildPhase section */
@@ -945,6 +948,7 @@
945948
children = (
946949
07BBCE5F26D03B49000D96C4 /* test-batteries */,
947950
07BBC77B26D0272D000D96C4 /* DirectBindingsAppTests.swift */,
951+
07C753DF26D6BE4E00081BF8 /* HumanObjectPeerTestInstance.swift */,
948952
07BBC77D26D0272D000D96C4 /* Info.plist */,
949953
);
950954
path = DirectBindingsAppTests;
@@ -1468,6 +1472,7 @@
14681472
07BBCD3C26D036BA000D96C4 /* Result_NetAddressu8Z.swift in Sources */,
14691473
07BBCE3626D036BB000D96C4 /* FundingSigned.swift in Sources */,
14701474
07BBCD6026D036BB000D96C4 /* Result_NodeAnnouncementInfoDecodeErrorZ.swift in Sources */,
1475+
07C753E026D6BE4E00081BF8 /* HumanObjectPeerTestInstance.swift in Sources */,
14711476
07BBCC8026D036BA000D96C4 /* Listen.swift in Sources */,
14721477
07BBCD6426D036BB000D96C4 /* Result_ExpiryTimeCreationErrorZ.swift in Sources */,
14731478
07BBCE3A26D036BB000D96C4 /* Init.swift in Sources */,
@@ -1837,6 +1842,7 @@
18371842
07BBCCB326D036BA000D96C4 /* Result_TxCreationKeysErrorZ.swift in Sources */,
18381843
07BBC77C26D0272D000D96C4 /* DirectBindingsAppTests.swift in Sources */,
18391844
07BBCDC326D036BB000D96C4 /* ChannelAnnouncement.swift in Sources */,
1845+
07C753E126D6BE4E00081BF8 /* HumanObjectPeerTestInstance.swift in Sources */,
18401846
07BBCD6F26D036BB000D96C4 /* Result_NoneChannelMonitorUpdateErrZ.swift in Sources */,
18411847
07BBCCD126D036BA000D96C4 /* Result_PaymentSecretAPIErrorZ.swift in Sources */,
18421848
07BBCC8126D036BA000D96C4 /* Listen.swift in Sources */,

xcode/DirectBindingsApp/DirectBindingsApp.xcodeproj/xcuserdata/arik.xcuserdatad/xcschemes/xcschememanagement.plist

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,23 @@
1010
<integer>0</integer>
1111
</dict>
1212
</dict>
13+
<key>SuppressBuildableAutocreation</key>
14+
<dict>
15+
<key>07BBC76526D02727000D96C4</key>
16+
<dict>
17+
<key>primary</key>
18+
<true/>
19+
</dict>
20+
<key>07BBC77626D0272D000D96C4</key>
21+
<dict>
22+
<key>primary</key>
23+
<true/>
24+
</dict>
25+
<key>07BBC78126D0272D000D96C4</key>
26+
<dict>
27+
<key>primary</key>
28+
<true/>
29+
</dict>
30+
</dict>
1331
</dict>
1432
</plist>

xcode/DirectBindingsApp/DirectBindingsAppTests/DirectBindingsAppTests.swift

Lines changed: 64 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
import XCTest
99
@testable import DirectBindingsApp
1010

11+
12+
13+
14+
1115
class DirectBindingsAppTests: XCTestCase {
1216

1317
override func setUpWithError() throws {
@@ -21,9 +25,11 @@ class DirectBindingsAppTests: XCTestCase {
2125
func testExample() throws {
2226
// This is an example of a functional test case.
2327
// Use XCTAssert and related functions to verify your tests produce the correct results.
28+
29+
2430
}
2531

26-
func testIncrementalMemoryLeaks() throws {
32+
func testMemoryLeaksIncrementally() throws {
2733
let filter = TestFilter()
2834
let broadcaster = TestBroadcasterInterface()
2935
let logger = TestLogger()
@@ -62,11 +68,64 @@ class DirectBindingsAppTests: XCTestCase {
6268
tx_broadcaster: broadcaster,
6369
logger: logger
6470
)
65-
/*
66-
let channel_manager = channel_manager_constructor.channelManager;
67-
let cmPersister = TestChannelManagerPersister(channelManager: channel_manager)
71+
72+
var channel_manager = channel_manager_constructor.channelManager;
73+
var cmPersister = TestChannelManagerPersister(channelManager: channel_manager)
6874
channel_manager_constructor.chain_sync_completed(persister: cmPersister)
69-
*/
75+
channel_manager_constructor.interrupt()
76+
}
77+
78+
func testExtendedActivity() {
79+
// for i in 0...(1 << 7) {
80+
for i in 0..<1 { // only do one test run initially
81+
let nice_close = (i & (1 << 0)) != 0;
82+
let use_km_wrapper = (i & (1 << 1)) != 0;
83+
let use_manual_watch = (i & (1 << 2)) != 0;
84+
let reload_peers = (i & (1 << 3)) != 0;
85+
let break_cross_refs = (i & (1 << 4)) != 0;
86+
let nio_peer_handler = true // (i & (1 << 5)) != 0;
87+
let use_chan_manager_constructor = true // (i & (1 << 6)) != 0;
88+
89+
if (break_cross_refs && !reload_peers) {
90+
// There are no cross refs to break without reloading peers.
91+
continue;
92+
}
93+
94+
if (use_chan_manager_constructor && (use_manual_watch || !nio_peer_handler)) {
95+
// ChannelManagerConstructor requires a ChainMonitor as the Watch and creates a NioPeerHandler for us.
96+
continue;
97+
}
98+
99+
print("Running test with flags \(i)");
100+
try? SimulationRunner.do_test(nice_close: nice_close, use_km_wrapper: use_km_wrapper, use_manual_watch: use_manual_watch, reload_peers: reload_peers, break_cross_peer_refs: break_cross_refs, nio_peer_handler: nio_peer_handler, use_chan_manager_constructor: use_chan_manager_constructor)
101+
}
102+
103+
// avoid early termination
104+
105+
print("Press enter to stop running test.")
106+
// let keyboard = FileHandle.standardInput
107+
// let inputData = keyboard.availableData
108+
// let strData = String(data: inputData, encoding: String.Encoding.utf8)!
109+
110+
111+
}
112+
113+
fileprivate class SimulationRunner {
114+
115+
class func do_test(nice_close: Bool, use_km_wrapper: Bool, use_manual_watch: Bool, reload_peers: Bool, break_cross_peer_refs: Bool, nio_peer_handler: Bool, use_chan_manager_constructor: Bool) throws {
116+
117+
let instance = do_test_run(nice_close: nice_close, use_km_wrapper: use_km_wrapper, use_manual_watch: use_manual_watch, reload_peers: reload_peers, break_cross_peer_refs: break_cross_peer_refs, nio_peer_handler: nio_peer_handler, use_chan_manager_constructor: use_chan_manager_constructor)
118+
119+
}
120+
121+
class func do_test_run(nice_close: Bool, use_km_wrapper: Bool, use_manual_watch: Bool, reload_peers: Bool, break_cross_peer_refs: Bool, nio_peer_handler: Bool, use_chan_manager_constructor: Bool) -> HumanObjectPeerTestInstance {
122+
123+
let instance = HumanObjectPeerTestInstance(nice_close: nice_close, use_km_wrapper: use_km_wrapper, use_manual_watch: use_manual_watch, reload_peers: reload_peers, break_cross_peer_refs: break_cross_peer_refs, use_nio_peer_handler: nio_peer_handler, use_filter: !nio_peer_handler, use_chan_manager_constructor: use_chan_manager_constructor)
124+
125+
instance.do_test_message_handler()
126+
return instance
127+
}
128+
70129
}
71130

72131
func testPerformanceExample() throws {

0 commit comments

Comments
 (0)