github.com/decred/dcrlnd@v0.7.6/lntest/backend.go (about) 1 package lntest 2 3 import ( 4 "errors" 5 "fmt" 6 "os" 7 "testing" 8 9 "github.com/decred/dcrd/chaincfg/v3" 10 "github.com/decred/dcrlnd/internal/testutils" 11 rpctest "github.com/decred/dcrtest/dcrdtest" 12 "matheusd.com/testctx" 13 ) 14 15 // logDirPattern is the pattern of the temporary log directory. 16 const logDirPattern = "%s/.backendlogs" 17 18 // newBackend initializes a new dcrd rpctest backend. 19 // 20 //nolint:unused 21 func newBackend(t *testing.T, miner *rpctest.Harness) (*rpctest.Harness, func() error, error) { 22 baseLogDir := fmt.Sprintf(logDirPattern, GetLogDir()) 23 args := []string{ 24 "--rejectnonstd", 25 "--txindex", 26 "--debuglevel=debug", 27 "--logdir=" + baseLogDir, 28 "--maxorphantx=0", 29 "--nobanning", 30 "--rpcmaxclients=100", 31 "--rpcmaxwebsockets=100", 32 "--rpcmaxconcurrentreqs=100", 33 "--logsize=100M", 34 "--maxsameip=200", 35 } 36 netParams := chaincfg.SimNetParams() 37 chainBackend, err := testutils.NewSetupRPCTest( 38 testctx.New(t), 5, netParams, nil, args, false, 0, 39 ) 40 if err != nil { 41 return nil, nil, fmt.Errorf("unable to create dcrd node: %v", err) 42 } 43 44 cleanUp := func() error { 45 var errStr string 46 if err := chainBackend.TearDown(); err != nil { 47 errStr += err.Error() + "\n" 48 } 49 50 // After shutting down the chain backend, we'll make a copy of 51 // the log file before deleting the temporary log dir. 52 logFile := baseLogDir + "/" + netParams.Name + "/dcrd.log" 53 destLogFile := fmt.Sprintf("%s/output_dcrd_chainbackend.log", GetLogDir()) 54 err := CopyFile(destLogFile, logFile) 55 if err != nil { 56 errStr += fmt.Sprintf("unable to copy file: %v\n", err) 57 } 58 if err = os.RemoveAll(baseLogDir); err != nil { 59 errStr += fmt.Sprintf("Cannot remove dir %s: %v\n", baseLogDir, err) 60 } 61 if errStr != "" { 62 return errors.New(errStr) 63 } 64 return nil 65 } 66 67 return chainBackend, cleanUp, nil 68 }