mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-11-27 07:48:44 +00:00
55 lines
1.1 KiB
Go
55 lines
1.1 KiB
Go
package common
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"sync/atomic"
|
|
"syscall"
|
|
"testing"
|
|
|
|
"github.com/c4ei/YunSeokYeol/domain/dagconfig"
|
|
)
|
|
|
|
// RunKaspadForTesting runs kaspad for testing purposes
|
|
func RunKaspadForTesting(t *testing.T, testName string, rpcAddress string) func() {
|
|
appDir, err := TempDir(testName)
|
|
if err != nil {
|
|
t.Fatalf("TempDir: %s", err)
|
|
}
|
|
|
|
kaspadRunCommand, err := StartCmd("KASPAD",
|
|
"kaspad",
|
|
NetworkCliArgumentFromNetParams(&dagconfig.DevnetParams),
|
|
"--appdir", appDir,
|
|
"--rpclisten", rpcAddress,
|
|
"--loglevel", "debug",
|
|
)
|
|
if err != nil {
|
|
t.Fatalf("StartCmd: %s", err)
|
|
}
|
|
t.Logf("Kaspad started with --appdir=%s", appDir)
|
|
|
|
isShutdown := uint64(0)
|
|
go func() {
|
|
err := kaspadRunCommand.Wait()
|
|
if err != nil {
|
|
if atomic.LoadUint64(&isShutdown) == 0 {
|
|
panic(fmt.Sprintf("Kaspad closed unexpectedly: %s. See logs at: %s", err, appDir))
|
|
}
|
|
}
|
|
}()
|
|
|
|
return func() {
|
|
err := kaspadRunCommand.Process.Signal(syscall.SIGTERM)
|
|
if err != nil {
|
|
t.Fatalf("Signal: %s", err)
|
|
}
|
|
err = os.RemoveAll(appDir)
|
|
if err != nil {
|
|
t.Fatalf("RemoveAll: %s", err)
|
|
}
|
|
atomic.StoreUint64(&isShutdown, 1)
|
|
t.Logf("Kaspad stopped")
|
|
}
|
|
}
|