refactor: update paych cli tests to use kit2
This commit is contained in:
parent
2d5b798763
commit
2267d15a0f
@ -30,5 +30,5 @@ func SendFunds(ctx context.Context, t *testing.T, sender TestFullNode, recipient
|
|||||||
res, err := sender.StateWaitMsg(ctx, sm.Cid(), 3, api.LookbackNoLimit, true)
|
res, err := sender.StateWaitMsg(ctx, sm.Cid(), 3, api.LookbackNoLimit, true)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
require.Equal(t, 0, res.Receipt.ExitCode, "did not successfully send funds")
|
require.EqualValues(t, 0, res.Receipt.ExitCode, "did not successfully send funds")
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/cli"
|
"github.com/filecoin-project/lotus/cli"
|
||||||
"github.com/filecoin-project/lotus/itests/kit"
|
"github.com/filecoin-project/lotus/itests/kit2"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
@ -37,18 +37,19 @@ func init() {
|
|||||||
// commands
|
// commands
|
||||||
func TestPaymentChannelsBasic(t *testing.T) {
|
func TestPaymentChannelsBasic(t *testing.T) {
|
||||||
_ = os.Setenv("BELLMAN_NO_GPU", "1")
|
_ = os.Setenv("BELLMAN_NO_GPU", "1")
|
||||||
kit.QuietMiningLogs()
|
kit2.QuietMiningLogs()
|
||||||
|
|
||||||
blocktime := 5 * time.Millisecond
|
blocktime := 5 * time.Millisecond
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
nodes, addrs := kit.StartTwoNodesOneMiner(ctx, t, blocktime)
|
|
||||||
paymentCreator := nodes[0]
|
var (
|
||||||
paymentReceiver := nodes[1]
|
paymentCreator kit2.TestFullNode
|
||||||
creatorAddr := addrs[0]
|
paymentReceiver kit2.TestFullNode
|
||||||
receiverAddr := addrs[1]
|
)
|
||||||
|
creatorAddr, receiverAddr := startPaychCreatorReceiverMiner(ctx, t, &paymentCreator, &paymentReceiver, blocktime)
|
||||||
|
|
||||||
// Create mock CLI
|
// Create mock CLI
|
||||||
mockCLI := kit.NewMockCLI(ctx, t, cli.Commands)
|
mockCLI := kit2.NewMockCLI(ctx, t, cli.Commands)
|
||||||
creatorCLI := mockCLI.Client(paymentCreator.ListenAddr)
|
creatorCLI := mockCLI.Client(paymentCreator.ListenAddr)
|
||||||
receiverCLI := mockCLI.Client(paymentReceiver.ListenAddr)
|
receiverCLI := mockCLI.Client(paymentReceiver.ListenAddr)
|
||||||
|
|
||||||
@ -70,12 +71,16 @@ func TestPaymentChannelsBasic(t *testing.T) {
|
|||||||
// creator: paych settle <channel>
|
// creator: paych settle <channel>
|
||||||
creatorCLI.RunCmd("paych", "settle", chAddr.String())
|
creatorCLI.RunCmd("paych", "settle", chAddr.String())
|
||||||
|
|
||||||
|
t.Log("wait for chain to reach settle height")
|
||||||
|
|
||||||
// Wait for the chain to reach the settle height
|
// Wait for the chain to reach the settle height
|
||||||
chState := getPaychState(ctx, t, paymentReceiver, chAddr)
|
chState := getPaychState(ctx, t, paymentReceiver, chAddr)
|
||||||
sa, err := chState.SettlingAt()
|
sa, err := chState.SettlingAt()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
waitForHeight(ctx, t, paymentReceiver, sa)
|
waitForHeight(ctx, t, paymentReceiver, sa)
|
||||||
|
|
||||||
|
t.Log("settle height reached")
|
||||||
|
|
||||||
// receiver: paych collect <channel>
|
// receiver: paych collect <channel>
|
||||||
receiverCLI.RunCmd("paych", "collect", chAddr.String())
|
receiverCLI.RunCmd("paych", "collect", chAddr.String())
|
||||||
}
|
}
|
||||||
@ -89,17 +94,18 @@ type voucherSpec struct {
|
|||||||
// TestPaymentChannelStatus tests the payment channel status CLI command
|
// TestPaymentChannelStatus tests the payment channel status CLI command
|
||||||
func TestPaymentChannelStatus(t *testing.T) {
|
func TestPaymentChannelStatus(t *testing.T) {
|
||||||
_ = os.Setenv("BELLMAN_NO_GPU", "1")
|
_ = os.Setenv("BELLMAN_NO_GPU", "1")
|
||||||
kit.QuietMiningLogs()
|
kit2.QuietMiningLogs()
|
||||||
|
|
||||||
blocktime := 5 * time.Millisecond
|
blocktime := 5 * time.Millisecond
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
nodes, addrs := kit.StartTwoNodesOneMiner(ctx, t, blocktime)
|
var (
|
||||||
paymentCreator := nodes[0]
|
paymentCreator kit2.TestFullNode
|
||||||
creatorAddr := addrs[0]
|
paymentReceiver kit2.TestFullNode
|
||||||
receiverAddr := addrs[1]
|
)
|
||||||
|
creatorAddr, receiverAddr := startPaychCreatorReceiverMiner(ctx, t, &paymentCreator, &paymentReceiver, blocktime)
|
||||||
|
|
||||||
// Create mock CLI
|
// Create mock CLI
|
||||||
mockCLI := kit.NewMockCLI(ctx, t, cli.Commands)
|
mockCLI := kit2.NewMockCLI(ctx, t, cli.Commands)
|
||||||
creatorCLI := mockCLI.Client(paymentCreator.ListenAddr)
|
creatorCLI := mockCLI.Client(paymentCreator.ListenAddr)
|
||||||
|
|
||||||
// creator: paych status-by-from-to <creator> <receiver>
|
// creator: paych status-by-from-to <creator> <receiver>
|
||||||
@ -168,18 +174,18 @@ func TestPaymentChannelStatus(t *testing.T) {
|
|||||||
// channel voucher commands
|
// channel voucher commands
|
||||||
func TestPaymentChannelVouchers(t *testing.T) {
|
func TestPaymentChannelVouchers(t *testing.T) {
|
||||||
_ = os.Setenv("BELLMAN_NO_GPU", "1")
|
_ = os.Setenv("BELLMAN_NO_GPU", "1")
|
||||||
kit.QuietMiningLogs()
|
kit2.QuietMiningLogs()
|
||||||
|
|
||||||
blocktime := 5 * time.Millisecond
|
blocktime := 5 * time.Millisecond
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
nodes, addrs := kit.StartTwoNodesOneMiner(ctx, t, blocktime)
|
var (
|
||||||
paymentCreator := nodes[0]
|
paymentCreator kit2.TestFullNode
|
||||||
paymentReceiver := nodes[1]
|
paymentReceiver kit2.TestFullNode
|
||||||
creatorAddr := addrs[0]
|
)
|
||||||
receiverAddr := addrs[1]
|
creatorAddr, receiverAddr := startPaychCreatorReceiverMiner(ctx, t, &paymentCreator, &paymentReceiver, blocktime)
|
||||||
|
|
||||||
// Create mock CLI
|
// Create mock CLI
|
||||||
mockCLI := kit.NewMockCLI(ctx, t, cli.Commands)
|
mockCLI := kit2.NewMockCLI(ctx, t, cli.Commands)
|
||||||
creatorCLI := mockCLI.Client(paymentCreator.ListenAddr)
|
creatorCLI := mockCLI.Client(paymentCreator.ListenAddr)
|
||||||
receiverCLI := mockCLI.Client(paymentReceiver.ListenAddr)
|
receiverCLI := mockCLI.Client(paymentReceiver.ListenAddr)
|
||||||
|
|
||||||
@ -300,17 +306,18 @@ func TestPaymentChannelVouchers(t *testing.T) {
|
|||||||
// is greater than what's left in the channel, voucher create fails
|
// is greater than what's left in the channel, voucher create fails
|
||||||
func TestPaymentChannelVoucherCreateShortfall(t *testing.T) {
|
func TestPaymentChannelVoucherCreateShortfall(t *testing.T) {
|
||||||
_ = os.Setenv("BELLMAN_NO_GPU", "1")
|
_ = os.Setenv("BELLMAN_NO_GPU", "1")
|
||||||
kit.QuietMiningLogs()
|
kit2.QuietMiningLogs()
|
||||||
|
|
||||||
blocktime := 5 * time.Millisecond
|
blocktime := 5 * time.Millisecond
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
nodes, addrs := kit.StartTwoNodesOneMiner(ctx, t, blocktime)
|
var (
|
||||||
paymentCreator := nodes[0]
|
paymentCreator kit2.TestFullNode
|
||||||
creatorAddr := addrs[0]
|
paymentReceiver kit2.TestFullNode
|
||||||
receiverAddr := addrs[1]
|
)
|
||||||
|
creatorAddr, receiverAddr := startPaychCreatorReceiverMiner(ctx, t, &paymentCreator, &paymentReceiver, blocktime)
|
||||||
|
|
||||||
// Create mock CLI
|
// Create mock CLI
|
||||||
mockCLI := kit.NewMockCLI(ctx, t, cli.Commands)
|
mockCLI := kit2.NewMockCLI(ctx, t, cli.Commands)
|
||||||
creatorCLI := mockCLI.Client(paymentCreator.ListenAddr)
|
creatorCLI := mockCLI.Client(paymentCreator.ListenAddr)
|
||||||
|
|
||||||
// creator: paych add-funds <creator> <receiver> <amount>
|
// creator: paych add-funds <creator> <receiver> <amount>
|
||||||
@ -378,7 +385,7 @@ func checkVoucherOutput(t *testing.T, list string, vouchers []voucherSpec) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// waitForHeight waits for the node to reach the given chain epoch
|
// waitForHeight waits for the node to reach the given chain epoch
|
||||||
func waitForHeight(ctx context.Context, t *testing.T, node kit.TestFullNode, height abi.ChainEpoch) {
|
func waitForHeight(ctx context.Context, t *testing.T, node kit2.TestFullNode, height abi.ChainEpoch) {
|
||||||
atHeight := make(chan struct{})
|
atHeight := make(chan struct{})
|
||||||
chainEvents := events.NewEvents(ctx, node)
|
chainEvents := events.NewEvents(ctx, node)
|
||||||
err := chainEvents.ChainAt(func(ctx context.Context, ts *types.TipSet, curH abi.ChainEpoch) error {
|
err := chainEvents.ChainAt(func(ctx context.Context, ts *types.TipSet, curH abi.ChainEpoch) error {
|
||||||
@ -396,7 +403,7 @@ func waitForHeight(ctx context.Context, t *testing.T, node kit.TestFullNode, hei
|
|||||||
}
|
}
|
||||||
|
|
||||||
// getPaychState gets the state of the payment channel with the given address
|
// getPaychState gets the state of the payment channel with the given address
|
||||||
func getPaychState(ctx context.Context, t *testing.T, node kit.TestFullNode, chAddr address.Address) paych.State {
|
func getPaychState(ctx context.Context, t *testing.T, node kit2.TestFullNode, chAddr address.Address) paych.State {
|
||||||
act, err := node.StateGetActor(ctx, chAddr, types.EmptyTSK)
|
act, err := node.StateGetActor(ctx, chAddr, types.EmptyTSK)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
@ -406,3 +413,25 @@ func getPaychState(ctx context.Context, t *testing.T, node kit.TestFullNode, chA
|
|||||||
|
|
||||||
return chState
|
return chState
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func startPaychCreatorReceiverMiner(ctx context.Context, t *testing.T, paymentCreator *kit2.TestFullNode, paymentReceiver *kit2.TestFullNode, blocktime time.Duration) (address.Address, address.Address) {
|
||||||
|
var miner kit2.TestMiner
|
||||||
|
opts := kit2.ThroughRPC()
|
||||||
|
kit2.NewEnsemble(t, kit2.MockProofs()).
|
||||||
|
FullNode(paymentCreator, opts).
|
||||||
|
FullNode(paymentReceiver, opts).
|
||||||
|
Miner(&miner, paymentCreator).
|
||||||
|
Start().
|
||||||
|
InterconnectAll().
|
||||||
|
BeginMining(blocktime)
|
||||||
|
|
||||||
|
// Send some funds to the second node
|
||||||
|
receiverAddr, err := paymentReceiver.WalletDefaultAddress(ctx)
|
||||||
|
require.NoError(t, err)
|
||||||
|
kit2.SendFunds(ctx, t, *paymentCreator, receiverAddr, abi.NewTokenAmount(1e18))
|
||||||
|
|
||||||
|
// Get the first node's address
|
||||||
|
creatorAddr, err := paymentCreator.WalletDefaultAddress(ctx)
|
||||||
|
require.NoError(t, err)
|
||||||
|
return creatorAddr, receiverAddr
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user