56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
package cli
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/filecoin-project/go-address"
|
|
"github.com/filecoin-project/lotus/api/test"
|
|
clitest "github.com/filecoin-project/lotus/cli/test"
|
|
builder "github.com/filecoin-project/lotus/node/test"
|
|
)
|
|
|
|
// TestMultisig does a basic test to exercise the multisig CLI
|
|
// commands
|
|
func TestMultisig(t *testing.T) {
|
|
_ = os.Setenv("BELLMAN_NO_GPU", "1")
|
|
|
|
blocktime := 5 * time.Millisecond
|
|
ctx := context.Background()
|
|
nodes, _ := startNodes(ctx, t, blocktime)
|
|
clientNode := nodes[0]
|
|
clitest.RunMultisigTest(t, Commands, clientNode)
|
|
}
|
|
|
|
func startNodes(ctx context.Context, t *testing.T, blocktime time.Duration) ([]test.TestNode, []address.Address) {
|
|
n, sn := builder.RPCMockSbBuilder(t, test.OneFull, test.OneMiner)
|
|
|
|
full := n[0]
|
|
miner := sn[0]
|
|
|
|
// Get everyone connected
|
|
addrs, err := full.NetAddrsListen(ctx)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if err := miner.NetConnect(ctx, addrs); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Start mining blocks
|
|
bm := test.NewBlockMiner(ctx, t, miner, blocktime)
|
|
bm.MineBlocks()
|
|
|
|
// Get the creator's address
|
|
creatorAddr, err := full.WalletDefaultAddress(ctx)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Create mock CLI
|
|
return n, []address.Address{creatorAddr}
|
|
}
|