1
1
use crate :: builder:: NodeBuilder ;
2
+ use crate :: io:: test_utils:: TestSyncStore ;
2
3
use crate :: test:: utils:: * ;
3
- use crate :: test:: utils:: { expect_event, random_config} ;
4
+ use crate :: test:: utils:: { expect_event, random_config, setup_two_nodes } ;
4
5
use crate :: { Error , Event , Node , PaymentDirection , PaymentStatus } ;
5
6
6
7
use bitcoin:: Amount ;
7
8
use electrsd:: bitcoind:: BitcoinD ;
8
9
use electrsd:: ElectrsD ;
9
10
use lightning:: util:: persist:: KVStore ;
10
11
12
+ use std:: sync:: Arc ;
13
+
11
14
#[ test]
12
15
fn channel_full_cycle ( ) {
13
16
let ( bitcoind, electrsd) = setup_bitcoind_and_electrsd ( ) ;
14
- println ! ( "== Node A ==" ) ;
15
- let esplora_url = format ! ( "http://{}" , electrsd. esplora_url. as_ref( ) . unwrap( ) ) ;
16
- let config_a = random_config ( ) ;
17
- let mut builder_a = NodeBuilder :: from_config ( config_a) ;
18
- builder_a. set_esplora_server ( esplora_url. clone ( ) ) ;
19
- let node_a = builder_a. build ( ) . unwrap ( ) ;
20
- node_a. start ( ) . unwrap ( ) ;
21
-
22
- println ! ( "\n == Node B ==" ) ;
23
- let config_b = random_config ( ) ;
24
- let mut builder_b = NodeBuilder :: from_config ( config_b) ;
25
- builder_b. set_esplora_server ( esplora_url) ;
26
- let node_b = builder_b. build ( ) . unwrap ( ) ;
27
- node_b. start ( ) . unwrap ( ) ;
28
-
17
+ let ( node_a, node_b) = setup_two_nodes ( & electrsd, false ) ;
29
18
do_channel_full_cycle ( node_a, node_b, & bitcoind, & electrsd, false ) ;
30
19
}
31
20
32
21
#[ test]
33
22
fn channel_full_cycle_0conf ( ) {
34
23
let ( bitcoind, electrsd) = setup_bitcoind_and_electrsd ( ) ;
35
- println ! ( "== Node A ==" ) ;
36
- let esplora_url = format ! ( "http://{}" , electrsd. esplora_url. as_ref( ) . unwrap( ) ) ;
37
- let config_a = random_config ( ) ;
38
- let mut builder_a = NodeBuilder :: from_config ( config_a) ;
39
- builder_a. set_esplora_server ( esplora_url. clone ( ) ) ;
40
- let node_a = builder_a. build ( ) . unwrap ( ) ;
41
- node_a. start ( ) . unwrap ( ) ;
42
-
43
- println ! ( "\n == Node B ==" ) ;
44
- let mut config_b = random_config ( ) ;
45
- config_b. trusted_peers_0conf . push ( node_a. node_id ( ) ) ;
46
-
47
- let mut builder_b = NodeBuilder :: from_config ( config_b) ;
48
- builder_b. set_esplora_server ( esplora_url. clone ( ) ) ;
49
- let node_b = builder_b. build ( ) . unwrap ( ) ;
50
-
51
- node_b. start ( ) . unwrap ( ) ;
52
-
24
+ let ( node_a, node_b) = setup_two_nodes ( & electrsd, true ) ;
53
25
do_channel_full_cycle ( node_a, node_b, & bitcoind, & electrsd, true )
54
26
}
55
27
@@ -314,21 +286,9 @@ fn do_channel_full_cycle<K: KVStore + Sync + Send>(
314
286
#[ test]
315
287
fn channel_open_fails_when_funds_insufficient ( ) {
316
288
let ( bitcoind, electrsd) = setup_bitcoind_and_electrsd ( ) ;
317
- println ! ( "== Node A ==" ) ;
318
- let esplora_url = format ! ( "http://{}" , electrsd. esplora_url. as_ref( ) . unwrap( ) ) ;
319
- let config_a = random_config ( ) ;
320
- let mut builder_a = NodeBuilder :: from_config ( config_a) ;
321
- builder_a. set_esplora_server ( esplora_url. clone ( ) ) ;
322
- let node_a = builder_a. build ( ) . unwrap ( ) ;
323
- node_a. start ( ) . unwrap ( ) ;
324
- let addr_a = node_a. new_onchain_address ( ) . unwrap ( ) ;
289
+ let ( node_a, node_b) = setup_two_nodes ( & electrsd, false ) ;
325
290
326
- println ! ( "\n == Node B ==" ) ;
327
- let config_b = random_config ( ) ;
328
- let mut builder_b = NodeBuilder :: from_config ( config_b) ;
329
- builder_b. set_esplora_server ( esplora_url) ;
330
- let node_b = builder_b. build ( ) . unwrap ( ) ;
331
- node_b. start ( ) . unwrap ( ) ;
291
+ let addr_a = node_a. new_onchain_address ( ) . unwrap ( ) ;
332
292
let addr_b = node_b. new_onchain_address ( ) . unwrap ( ) ;
333
293
334
294
let premine_amount_sat = 100_000 ;
@@ -372,81 +332,33 @@ fn connect_to_public_testnet_esplora() {
372
332
#[ test]
373
333
fn start_stop_reinit ( ) {
374
334
let ( bitcoind, electrsd) = setup_bitcoind_and_electrsd ( ) ;
375
- let esplora_url = format ! ( "http://{}" , electrsd. esplora_url. as_ref( ) . unwrap( ) ) ;
376
335
let config = random_config ( ) ;
377
- let mut builder = NodeBuilder :: from_config ( config. clone ( ) ) ;
378
- builder. set_esplora_server ( esplora_url. clone ( ) ) ;
379
- let node = builder. build ( ) . unwrap ( ) ;
380
- let expected_node_id = node. node_id ( ) ;
381
-
382
- let funding_address = node. new_onchain_address ( ) . unwrap ( ) ;
383
- let expected_amount = Amount :: from_sat ( 100000 ) ;
384
-
385
- premine_and_distribute_funds ( & bitcoind, & electrsd, vec ! [ funding_address] , expected_amount) ;
386
- assert_eq ! ( node. total_onchain_balance_sats( ) . unwrap( ) , 0 ) ;
387
-
388
- node. start ( ) . unwrap ( ) ;
389
- assert_eq ! ( node. start( ) , Err ( Error :: AlreadyRunning ) ) ;
390
336
391
- node. sync_wallets ( ) . unwrap ( ) ;
392
- assert_eq ! ( node. spendable_onchain_balance_sats( ) . unwrap( ) , expected_amount. to_sat( ) ) ;
337
+ let esplora_url = format ! ( "http://{}" , electrsd. esplora_url. as_ref( ) . unwrap( ) ) ;
393
338
394
- let log_file_symlink = format ! ( "{}/logs/ldk_node_latest.log" , config. storage_dir_path) ;
395
- assert ! ( std:: path:: Path :: new( & log_file_symlink) . is_symlink( ) ) ;
339
+ let test_sync_store = Arc :: new ( TestSyncStore :: new ( config. storage_dir_path . clone ( ) . into ( ) ) ) ;
396
340
397
- node . stop ( ) . unwrap ( ) ;
398
- assert_eq ! ( node . stop ( ) , Err ( Error :: NotRunning ) ) ;
341
+ let mut builder = NodeBuilder :: from_config ( config . clone ( ) ) ;
342
+ builder . set_esplora_server ( esplora_url . clone ( ) ) ;
399
343
344
+ let node = builder. build_with_store ( Arc :: clone ( & test_sync_store) ) . unwrap ( ) ;
400
345
node. start ( ) . unwrap ( ) ;
401
- assert_eq ! ( node. start( ) , Err ( Error :: AlreadyRunning ) ) ;
402
-
403
- node. stop ( ) . unwrap ( ) ;
404
- assert_eq ! ( node. stop( ) , Err ( Error :: NotRunning ) ) ;
405
- drop ( node) ;
406
-
407
- let mut new_builder = NodeBuilder :: from_config ( config) ;
408
- new_builder. set_esplora_server ( esplora_url) ;
409
- let reinitialized_node = builder. build ( ) . unwrap ( ) ;
410
- assert_eq ! ( reinitialized_node. node_id( ) , expected_node_id) ;
411
346
412
- reinitialized_node. start ( ) . unwrap ( ) ;
413
-
414
- assert_eq ! (
415
- reinitialized_node. spendable_onchain_balance_sats( ) . unwrap( ) ,
416
- expected_amount. to_sat( )
417
- ) ;
418
-
419
- reinitialized_node. sync_wallets ( ) . unwrap ( ) ;
420
- assert_eq ! (
421
- reinitialized_node. spendable_onchain_balance_sats( ) . unwrap( ) ,
422
- expected_amount. to_sat( )
423
- ) ;
424
-
425
- reinitialized_node. stop ( ) . unwrap ( ) ;
426
- }
427
-
428
- #[ test]
429
- fn start_stop_reinit_fs_store ( ) {
430
- let ( bitcoind, electrsd) = setup_bitcoind_and_electrsd ( ) ;
431
- let esplora_url = format ! ( "http://{}" , electrsd. esplora_url. as_ref( ) . unwrap( ) ) ;
432
- let config = random_config ( ) ;
433
- let mut builder = NodeBuilder :: from_config ( config. clone ( ) ) ;
434
- builder. set_esplora_server ( esplora_url. clone ( ) ) ;
435
- let node = builder. build_with_fs_store ( ) . unwrap ( ) ;
436
347
let expected_node_id = node. node_id ( ) ;
348
+ assert_eq ! ( node. start( ) , Err ( Error :: AlreadyRunning ) ) ;
437
349
438
350
let funding_address = node. new_onchain_address ( ) . unwrap ( ) ;
439
351
let expected_amount = Amount :: from_sat ( 100000 ) ;
440
352
441
353
premine_and_distribute_funds ( & bitcoind, & electrsd, vec ! [ funding_address] , expected_amount) ;
442
354
assert_eq ! ( node. total_onchain_balance_sats( ) . unwrap( ) , 0 ) ;
443
355
444
- node. start ( ) . unwrap ( ) ;
445
- assert_eq ! ( node. start( ) , Err ( Error :: AlreadyRunning ) ) ;
446
-
447
356
node. sync_wallets ( ) . unwrap ( ) ;
448
357
assert_eq ! ( node. spendable_onchain_balance_sats( ) . unwrap( ) , expected_amount. to_sat( ) ) ;
449
358
359
+ let log_file_symlink = format ! ( "{}/logs/ldk_node_latest.log" , config. clone( ) . storage_dir_path) ;
360
+ assert ! ( std:: path:: Path :: new( & log_file_symlink) . is_symlink( ) ) ;
361
+
450
362
node. stop ( ) . unwrap ( ) ;
451
363
assert_eq ! ( node. stop( ) , Err ( Error :: NotRunning ) ) ;
452
364
@@ -457,12 +369,12 @@ fn start_stop_reinit_fs_store() {
457
369
assert_eq ! ( node. stop( ) , Err ( Error :: NotRunning ) ) ;
458
370
drop ( node) ;
459
371
460
- let mut new_builder = NodeBuilder :: from_config ( config) ;
461
- new_builder. set_esplora_server ( esplora_url) ;
462
- let reinitialized_node = builder. build_with_fs_store ( ) . unwrap ( ) ;
463
- assert_eq ! ( reinitialized_node. node_id( ) , expected_node_id) ;
372
+ let mut builder = NodeBuilder :: from_config ( config. clone ( ) ) ;
373
+ builder. set_esplora_server ( esplora_url. clone ( ) ) ;
464
374
375
+ let reinitialized_node = builder. build_with_store ( Arc :: clone ( & test_sync_store) ) . unwrap ( ) ;
465
376
reinitialized_node. start ( ) . unwrap ( ) ;
377
+ assert_eq ! ( reinitialized_node. node_id( ) , expected_node_id) ;
466
378
467
379
assert_eq ! (
468
380
reinitialized_node. spendable_onchain_balance_sats( ) . unwrap( ) ,
@@ -481,20 +393,9 @@ fn start_stop_reinit_fs_store() {
481
393
#[ test]
482
394
fn onchain_spend_receive ( ) {
483
395
let ( bitcoind, electrsd) = setup_bitcoind_and_electrsd ( ) ;
484
- let esplora_url = format ! ( "http://{}" , electrsd . esplora_url . as_ref ( ) . unwrap ( ) ) ;
396
+ let ( node_a , node_b ) = setup_two_nodes ( & electrsd , false ) ;
485
397
486
- let config_a = random_config ( ) ;
487
- let mut builder_a = NodeBuilder :: from_config ( config_a) ;
488
- builder_a. set_esplora_server ( esplora_url. clone ( ) ) ;
489
- let node_a = builder_a. build ( ) . unwrap ( ) ;
490
- node_a. start ( ) . unwrap ( ) ;
491
398
let addr_a = node_a. new_onchain_address ( ) . unwrap ( ) ;
492
-
493
- let config_b = random_config ( ) ;
494
- let mut builder_b = NodeBuilder :: from_config ( config_b) ;
495
- builder_b. set_esplora_server ( esplora_url) ;
496
- let node_b = builder_b. build ( ) . unwrap ( ) ;
497
- node_b. start ( ) . unwrap ( ) ;
498
399
let addr_b = node_b. new_onchain_address ( ) . unwrap ( ) ;
499
400
500
401
premine_and_distribute_funds (
@@ -537,13 +438,8 @@ fn onchain_spend_receive() {
537
438
#[ test]
538
439
fn sign_verify_msg ( ) {
539
440
let ( _bitcoind, electrsd) = setup_bitcoind_and_electrsd ( ) ;
540
- let esplora_url = format ! ( "http://{}" , electrsd. esplora_url. as_ref( ) . unwrap( ) ) ;
541
441
let config = random_config ( ) ;
542
- let mut builder = NodeBuilder :: from_config ( config. clone ( ) ) ;
543
- builder. set_esplora_server ( esplora_url. clone ( ) ) ;
544
- let node = builder. build ( ) . unwrap ( ) ;
545
-
546
- node. start ( ) . unwrap ( ) ;
442
+ let node = setup_node ( & electrsd, config) ;
547
443
548
444
// Tests arbitrary message signing and later verification
549
445
let msg = "OK computer" . as_bytes ( ) ;
0 commit comments