11use crate :: builder:: NodeBuilder ;
2+ use crate :: io:: test_utils:: TestSyncStore ;
23use crate :: test:: utils:: * ;
3- use crate :: test:: utils:: { expect_event, random_config} ;
4+ use crate :: test:: utils:: { expect_event, random_config, setup_two_nodes } ;
45use crate :: { Error , Event , Node , PaymentDirection , PaymentStatus } ;
56
67use bitcoin:: Amount ;
78use electrsd:: bitcoind:: BitcoinD ;
89use electrsd:: ElectrsD ;
910use lightning:: util:: persist:: KVStore ;
1011
12+ use std:: sync:: Arc ;
13+
1114#[ test]
1215fn channel_full_cycle ( ) {
1316 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 ) ;
2918 do_channel_full_cycle ( node_a, node_b, & bitcoind, & electrsd, false ) ;
3019}
3120
3221#[ test]
3322fn channel_full_cycle_0conf ( ) {
3423 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 ) ;
5325 do_channel_full_cycle ( node_a, node_b, & bitcoind, & electrsd, true )
5426}
5527
@@ -314,21 +286,9 @@ fn do_channel_full_cycle<K: KVStore + Sync + Send>(
314286#[ test]
315287fn channel_open_fails_when_funds_insufficient ( ) {
316288 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 ) ;
325290
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 ( ) ;
332292 let addr_b = node_b. new_onchain_address ( ) . unwrap ( ) ;
333293
334294 let premine_amount_sat = 100_000 ;
@@ -372,81 +332,33 @@ fn connect_to_public_testnet_esplora() {
372332#[ test]
373333fn start_stop_reinit ( ) {
374334 let ( bitcoind, electrsd) = setup_bitcoind_and_electrsd ( ) ;
375- let esplora_url = format ! ( "http://{}" , electrsd. esplora_url. as_ref( ) . unwrap( ) ) ;
376335 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 ) ) ;
390336
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( ) ) ;
393338
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 ( ) ) ) ;
396340
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 ( ) ) ;
399343
344+ let node = builder. build_with_store ( Arc :: clone ( & test_sync_store) ) . unwrap ( ) ;
400345 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) ;
411346
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 ( ) ;
436347 let expected_node_id = node. node_id ( ) ;
348+ assert_eq ! ( node. start( ) , Err ( Error :: AlreadyRunning ) ) ;
437349
438350 let funding_address = node. new_onchain_address ( ) . unwrap ( ) ;
439351 let expected_amount = Amount :: from_sat ( 100000 ) ;
440352
441353 premine_and_distribute_funds ( & bitcoind, & electrsd, vec ! [ funding_address] , expected_amount) ;
442354 assert_eq ! ( node. total_onchain_balance_sats( ) . unwrap( ) , 0 ) ;
443355
444- node. start ( ) . unwrap ( ) ;
445- assert_eq ! ( node. start( ) , Err ( Error :: AlreadyRunning ) ) ;
446-
447356 node. sync_wallets ( ) . unwrap ( ) ;
448357 assert_eq ! ( node. spendable_onchain_balance_sats( ) . unwrap( ) , expected_amount. to_sat( ) ) ;
449358
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+
450362 node. stop ( ) . unwrap ( ) ;
451363 assert_eq ! ( node. stop( ) , Err ( Error :: NotRunning ) ) ;
452364
@@ -457,12 +369,12 @@ fn start_stop_reinit_fs_store() {
457369 assert_eq ! ( node. stop( ) , Err ( Error :: NotRunning ) ) ;
458370 drop ( node) ;
459371
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 ( ) ) ;
464374
375+ let reinitialized_node = builder. build_with_store ( Arc :: clone ( & test_sync_store) ) . unwrap ( ) ;
465376 reinitialized_node. start ( ) . unwrap ( ) ;
377+ assert_eq ! ( reinitialized_node. node_id( ) , expected_node_id) ;
466378
467379 assert_eq ! (
468380 reinitialized_node. spendable_onchain_balance_sats( ) . unwrap( ) ,
@@ -481,20 +393,9 @@ fn start_stop_reinit_fs_store() {
481393#[ test]
482394fn onchain_spend_receive ( ) {
483395 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 ) ;
485397
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 ( ) ;
491398 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 ( ) ;
498399 let addr_b = node_b. new_onchain_address ( ) . unwrap ( ) ;
499400
500401 premine_and_distribute_funds (
@@ -537,13 +438,8 @@ fn onchain_spend_receive() {
537438#[ test]
538439fn sign_verify_msg ( ) {
539440 let ( _bitcoind, electrsd) = setup_bitcoind_and_electrsd ( ) ;
540- let esplora_url = format ! ( "http://{}" , electrsd. esplora_url. as_ref( ) . unwrap( ) ) ;
541441 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) ;
547443
548444 // Tests arbitrary message signing and later verification
549445 let msg = "OK computer" . as_bytes ( ) ;
0 commit comments