Skip to content

Commit a673dec

Browse files
committed
itest: use status server to determine when Lit is ready
1 parent 0f53f43 commit a673dec

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

itest/litd_node.go

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/lightninglabs/faraday/frdrpc"
2727
terminal "github.com/lightninglabs/lightning-terminal"
2828
"github.com/lightninglabs/lightning-terminal/litrpc"
29+
"github.com/lightninglabs/lightning-terminal/subservers"
2930
"github.com/lightninglabs/loop/looprpc"
3031
"github.com/lightninglabs/pool/poolrpc"
3132
"github.com/lightninglabs/taproot-assets/taprpc"
@@ -723,7 +724,37 @@ func (hn *HarnessNode) Start(litdBinary string, litdError chan<- error,
723724
func (hn *HarnessNode) WaitUntilStarted(conn grpc.ClientConnInterface,
724725
timeout time.Duration) error {
725726

726-
err := hn.waitForState(conn, timeout, func(s lnrpc.WalletState) bool {
727+
// First wait for Litd status server to show that LND has started.
728+
ctx := context.Background()
729+
rawConn, err := connectLitRPC(
730+
ctx, hn.Cfg.LitAddr(), hn.Cfg.LitTLSCertPath, "",
731+
)
732+
if err != nil {
733+
return err
734+
}
735+
736+
litConn := litrpc.NewStatusClient(rawConn)
737+
738+
err = wait.NoError(func() error {
739+
states, err := litConn.SubServerStatus(
740+
ctx, &litrpc.SubServerStatusReq{},
741+
)
742+
if err != nil {
743+
return err
744+
}
745+
746+
lndStatus, ok := states.SubServers[subservers.LND]
747+
if !ok || !lndStatus.Running {
748+
return fmt.Errorf("LND has not yet started")
749+
}
750+
751+
return nil
752+
}, lntest.DefaultTimeout)
753+
if err != nil {
754+
return err
755+
}
756+
757+
err = hn.waitForState(conn, timeout, func(s lnrpc.WalletState) bool {
727758
return s >= lnrpc.WalletState_SERVER_ACTIVE
728759
})
729760
if err != nil {

0 commit comments

Comments
 (0)