@@ -31,7 +31,7 @@ class DirectBindingsAppTests: XCTestCase {
31
31
func testVersionSanity( ) throws {
32
32
check_get_ldk_version ( )
33
33
check_get_ldk_bindings_version ( )
34
- check_platform ( )
34
+ // check_platform()
35
35
}
36
36
37
37
private func incrementalMemoryLeakTest( ) throws {
@@ -44,6 +44,14 @@ class DirectBindingsAppTests: XCTestCase {
44
44
let filterOption = Option_FilterZ ( value: filter)
45
45
let chainMonitor = ChainMonitor ( chain_source: filterOption, broadcaster: broadcaster, logger: logger, feeest: feeEstimator, persister: persister)
46
46
47
+
48
+ var keyData = Data ( count: 32 )
49
+ keyData. withUnsafeMutableBytes {
50
+ // returns 0 on success
51
+ let didCopySucceed = SecRandomCopyBytes ( kSecRandomDefault, 32 , $0. baseAddress!)
52
+ assert ( didCopySucceed == 0 )
53
+ }
54
+
47
55
let seed : [ UInt8 ] = [ UInt8] ( Data ( base64Encoded: " //////////////////////////////////////////8= " ) !)
48
56
let timestamp_seconds = UInt64 ( NSDate ( ) . timeIntervalSince1970)
49
57
let timestamp_nanos = UInt32 ( truncating: NSNumber ( value: timestamp_seconds * 1000 * 1000 ) )
@@ -59,14 +67,15 @@ class DirectBindingsAppTests: XCTestCase {
59
67
60
68
var monitors : [ LDKChannelMonitor ] = [ ]
61
69
70
+ let graph = NetworkGraph ( genesis_hash: [ UInt8] ( repeating: 0 , count: 32 ) )
62
71
let channel_manager_constructor = try ChannelManagerConstructor (
63
72
channel_manager_serialized: serialized_channel_manager,
64
73
channel_monitors_serialized: serializedChannelMonitors,
65
74
keys_interface: keysInterface,
66
75
fee_estimator: feeEstimator,
67
76
chain_monitor: chainMonitor,
68
77
filter: filter,
69
- net_graph: nil ,
78
+ net_graph: graph ,
70
79
tx_broadcaster: broadcaster,
71
80
logger: logger
72
81
)
@@ -82,7 +91,25 @@ class DirectBindingsAppTests: XCTestCase {
82
91
channel_manager. as_Confirm ( ) . transactions_confirmed ( header: header, txdata: txdata, height: 525 )
83
92
84
93
85
- channel_manager_constructor. chain_sync_completed ( persister: cmPersister, scorer: nil )
94
+
95
+ let scorer = MultiThreadedLockableScore ( score: Scorer ( ) . as_Score ( ) )
96
+ channel_manager_constructor. chain_sync_completed ( persister: cmPersister, scorer: scorer)
97
+
98
+ let payer = channel_manager_constructor. payer!
99
+ let parsedInvoice = Invoice . from_str ( s: " lnbc30n1p3ry9kvpp5xxr7s4hj808x0z0zsqr3pdsgdynffz5fax804jfh52h4r2sm996qdzygf5hgun9ve5kcmpqg3jhqmmnd96zqd3jxverzdnrvvcrgc3hvserqvp58yck2e34xyuqcqzpgxqyz5vqsp5e969dx5ux24rsfnvth98y2l65kzp0rx6f3kqakktrh6nygudyp5s9qyyssq4m8watzx5hqpayadjt9m53jy2mzgmwuxpd2pzmjq3x0aqmck68dzrzgr0lhm8ud3z06zz3w3350f24hdew4rq6cq0qfy8gwss9y93zgqvajpek " )
100
+
101
+ assert ( parsedInvoice. isOk ( ) )
102
+ let parsedInvoiceValue = parsedInvoice. getValue ( ) !
103
+
104
+ let amtSat : NSNumber = 2
105
+ let sendRes = payer. pay_invoice ( invoice: parsedInvoiceValue)
106
+ if amtSat != 0 {
107
+ let sendRes = payer. pay_zero_value_invoice ( invoice: parsedInvoiceValue, amount_msats: UInt64 ( truncating: amtSat) * 1000 )
108
+ assert ( sendRes. isOk ( ) )
109
+ } else {
110
+ let sendRes = payer. pay_invoice ( invoice: parsedInvoiceValue)
111
+ assert ( sendRes. isOk ( ) )
112
+ }
86
113
87
114
channel_manager_constructor. interrupt ( )
88
115
@@ -124,11 +151,11 @@ class DirectBindingsAppTests: XCTestCase {
124
151
path. append ( extraHop)
125
152
}
126
153
127
- let payee = Payee ( pubkey : Self . hexStringToBytes ( hexString: destPubkeyHex) !)
128
- let route = Route ( paths_arg: [ path] , payee_arg : payee )
154
+ let paymentParams = PaymentParameters ( payee_pubkey : Self . hexStringToBytes ( hexString: destPubkeyHex) !)
155
+ let route = Route ( paths_arg: [ path] , payment_params_arg : paymentParams )
129
156
}
130
157
131
- func testExtendedActivity( ) throws {
158
+ func testExtendedActivity( ) async throws {
132
159
// for i in 0...(1 << 7) {
133
160
for i in 0 ..< 1 { // only do one test run initially
134
161
let nice_close = ( i & ( 1 << 0 ) ) != 0 ;
@@ -150,24 +177,24 @@ class DirectBindingsAppTests: XCTestCase {
150
177
}
151
178
152
179
print ( " Running test with flags \( i) " ) ;
153
- 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)
180
+ try await 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)
154
181
}
155
182
156
183
}
157
184
158
185
fileprivate class SimulationRunner {
159
186
160
- 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 {
187
+ 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 ) async throws {
161
188
162
- 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)
189
+ let instance = await 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)
163
190
164
191
}
165
192
166
- 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 {
193
+ 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 ) async -> HumanObjectPeerTestInstance {
167
194
168
195
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)
169
196
170
- instance. do_test_message_handler ( )
197
+ await instance. do_test_message_handler ( )
171
198
return instance
172
199
}
173
200
0 commit comments