diff --git a/cli/paych_test.go b/cli/paych_test.go index 777574105..fcd9c99a3 100644 --- a/cli/paych_test.go +++ b/cli/paych_test.go @@ -37,6 +37,7 @@ func init() { // commands func TestPaymentChannels(t *testing.T) { _ = os.Setenv("BELLMAN_NO_GPU", "1") + clitest.QuietMiningLogs() blocktime := 5 * time.Millisecond ctx := context.Background() @@ -53,8 +54,7 @@ func TestPaymentChannels(t *testing.T) { // creator: paych add-funds channelAmt := "100000" - cmd := []string{"paych", "add-funds", creatorAddr.String(), receiverAddr.String(), channelAmt} - chstr := creatorCLI.RunCmd(cmd) + chstr := creatorCLI.RunCmd("paych", "add-funds", creatorAddr.String(), receiverAddr.String(), channelAmt) chAddr, err := address.NewFromString(chstr) require.NoError(t, err) @@ -62,16 +62,13 @@ func TestPaymentChannels(t *testing.T) { // creator: paych voucher create voucherAmt := 100 vamt := strconv.Itoa(voucherAmt) - cmd = []string{"paych", "voucher", "create", chAddr.String(), vamt} - voucher := creatorCLI.RunCmd(cmd) + voucher := creatorCLI.RunCmd("paych", "voucher", "create", chAddr.String(), vamt) // receiver: paych voucher add - cmd = []string{"paych", "voucher", "add", chAddr.String(), voucher} - receiverCLI.RunCmd(cmd) + receiverCLI.RunCmd("paych", "voucher", "add", chAddr.String(), voucher) // creator: paych settle - cmd = []string{"paych", "settle", chAddr.String()} - creatorCLI.RunCmd(cmd) + creatorCLI.RunCmd("paych", "settle", chAddr.String()) // Wait for the chain to reach the settle height chState := getPaychState(ctx, t, paymentReceiver, chAddr) @@ -80,8 +77,7 @@ func TestPaymentChannels(t *testing.T) { waitForHeight(ctx, t, paymentReceiver, sa) // receiver: paych collect - cmd = []string{"paych", "collect", chAddr.String()} - receiverCLI.RunCmd(cmd) + receiverCLI.RunCmd("paych", "collect", chAddr.String()) } type voucherSpec struct { @@ -93,6 +89,7 @@ type voucherSpec struct { // TestPaymentChannelStatus tests the payment channel status CLI command func TestPaymentChannelStatus(t *testing.T) { _ = os.Setenv("BELLMAN_NO_GPU", "1") + clitest.QuietMiningLogs() blocktime := 5 * time.Millisecond ctx := context.Background() @@ -106,8 +103,7 @@ func TestPaymentChannelStatus(t *testing.T) { creatorCLI := mockCLI.Client(paymentCreator.ListenAddr) // creator: paych status-by-from-to - cmd := []string{"paych", "status-by-from-to", creatorAddr.String(), receiverAddr.String()} - out := creatorCLI.RunCmd(cmd) + out := creatorCLI.RunCmd("paych", "status-by-from-to", creatorAddr.String(), receiverAddr.String()) fmt.Println(out) noChannelState := "Channel does not exist" require.Regexp(t, regexp.MustCompile(noChannelState), out) @@ -116,14 +112,17 @@ func TestPaymentChannelStatus(t *testing.T) { create := make(chan string) go func() { // creator: paych add-funds - cmd := []string{"paych", "add-funds", creatorAddr.String(), receiverAddr.String(), fmt.Sprintf("%d", channelAmt)} - create <- creatorCLI.RunCmd(cmd) + create <- creatorCLI.RunCmd( + "paych", + "add-funds", + creatorAddr.String(), + receiverAddr.String(), + fmt.Sprintf("%d", channelAmt)) }() // Wait for the output to stop being "Channel does not exist" for regexp.MustCompile(noChannelState).MatchString(out) { - cmd := []string{"paych", "status-by-from-to", creatorAddr.String(), receiverAddr.String()} - out = creatorCLI.RunCmd(cmd) + out = creatorCLI.RunCmd("paych", "status-by-from-to", creatorAddr.String(), receiverAddr.String()) } fmt.Println(out) @@ -143,8 +142,7 @@ func TestPaymentChannelStatus(t *testing.T) { // Wait for create channel to complete chstr := <-create - cmd = []string{"paych", "status", chstr} - out = creatorCLI.RunCmd(cmd) + out = creatorCLI.RunCmd("paych", "status", chstr) fmt.Println(out) // Output should have the channel address require.Regexp(t, regexp.MustCompile("Channel.*"+chstr), out) @@ -156,11 +154,9 @@ func TestPaymentChannelStatus(t *testing.T) { // creator: paych voucher create voucherAmt := uint64(10) - cmd = []string{"paych", "voucher", "create", chAddr.String(), fmt.Sprintf("%d", voucherAmt)} - creatorCLI.RunCmd(cmd) + creatorCLI.RunCmd("paych", "voucher", "create", chAddr.String(), fmt.Sprintf("%d", voucherAmt)) - cmd = []string{"paych", "status", chstr} - out = creatorCLI.RunCmd(cmd) + out = creatorCLI.RunCmd("paych", "status", chstr) fmt.Println(out) voucherAmtAtto := types.BigMul(types.NewInt(voucherAmt), types.NewInt(build.FilecoinPrecision)) voucherAmtStr := fmt.Sprintf("%d", voucherAmtAtto) @@ -172,6 +168,7 @@ func TestPaymentChannelStatus(t *testing.T) { // channel voucher commands func TestPaymentChannelVouchers(t *testing.T) { _ = os.Setenv("BELLMAN_NO_GPU", "1") + clitest.QuietMiningLogs() blocktime := 5 * time.Millisecond ctx := context.Background() @@ -188,8 +185,7 @@ func TestPaymentChannelVouchers(t *testing.T) { // creator: paych add-funds channelAmt := "100000" - cmd := []string{"paych", "add-funds", creatorAddr.String(), receiverAddr.String(), channelAmt} - chstr := creatorCLI.RunCmd(cmd) + chstr := creatorCLI.RunCmd("paych", "add-funds", creatorAddr.String(), receiverAddr.String(), channelAmt) chAddr, err := address.NewFromString(chstr) require.NoError(t, err) @@ -199,39 +195,33 @@ func TestPaymentChannelVouchers(t *testing.T) { // creator: paych voucher create // Note: implied --lane=0 voucherAmt1 := 100 - cmd = []string{"paych", "voucher", "create", chAddr.String(), strconv.Itoa(voucherAmt1)} - voucher1 := creatorCLI.RunCmd(cmd) + voucher1 := creatorCLI.RunCmd("paych", "voucher", "create", chAddr.String(), strconv.Itoa(voucherAmt1)) vouchers = append(vouchers, voucherSpec{serialized: voucher1, lane: 0, amt: voucherAmt1}) // creator: paych voucher create --lane=5 lane5 := "--lane=5" voucherAmt2 := 50 - cmd = []string{"paych", "voucher", "create", lane5, chAddr.String(), strconv.Itoa(voucherAmt2)} - voucher2 := creatorCLI.RunCmd(cmd) + voucher2 := creatorCLI.RunCmd("paych", "voucher", "create", lane5, chAddr.String(), strconv.Itoa(voucherAmt2)) vouchers = append(vouchers, voucherSpec{serialized: voucher2, lane: 5, amt: voucherAmt2}) // creator: paych voucher create --lane=5 voucherAmt3 := 70 - cmd = []string{"paych", "voucher", "create", lane5, chAddr.String(), strconv.Itoa(voucherAmt3)} - voucher3 := creatorCLI.RunCmd(cmd) + voucher3 := creatorCLI.RunCmd("paych", "voucher", "create", lane5, chAddr.String(), strconv.Itoa(voucherAmt3)) vouchers = append(vouchers, voucherSpec{serialized: voucher3, lane: 5, amt: voucherAmt3}) // creator: paych voucher create --lane=5 voucherAmt4 := 80 - cmd = []string{"paych", "voucher", "create", lane5, chAddr.String(), strconv.Itoa(voucherAmt4)} - voucher4 := creatorCLI.RunCmd(cmd) + voucher4 := creatorCLI.RunCmd("paych", "voucher", "create", lane5, chAddr.String(), strconv.Itoa(voucherAmt4)) vouchers = append(vouchers, voucherSpec{serialized: voucher4, lane: 5, amt: voucherAmt4}) // creator: paych voucher list --export - cmd = []string{"paych", "voucher", "list", "--export", chAddr.String()} - list := creatorCLI.RunCmd(cmd) + list := creatorCLI.RunCmd("paych", "voucher", "list", "--export", chAddr.String()) // Check that voucher list output is correct on creator checkVoucherOutput(t, list, vouchers) // creator: paych voucher best-spendable - cmd = []string{"paych", "voucher", "best-spendable", "--export", chAddr.String()} - bestSpendable := creatorCLI.RunCmd(cmd) + bestSpendable := creatorCLI.RunCmd("paych", "voucher", "best-spendable", "--export", chAddr.String()) // Check that best spendable output is correct on creator bestVouchers := []voucherSpec{ @@ -241,31 +231,25 @@ func TestPaymentChannelVouchers(t *testing.T) { checkVoucherOutput(t, bestSpendable, bestVouchers) // receiver: paych voucher add - cmd = []string{"paych", "voucher", "add", chAddr.String(), voucher1} - receiverCLI.RunCmd(cmd) + receiverCLI.RunCmd("paych", "voucher", "add", chAddr.String(), voucher1) // receiver: paych voucher add - cmd = []string{"paych", "voucher", "add", chAddr.String(), voucher2} - receiverCLI.RunCmd(cmd) + receiverCLI.RunCmd("paych", "voucher", "add", chAddr.String(), voucher2) // receiver: paych voucher add - cmd = []string{"paych", "voucher", "add", chAddr.String(), voucher3} - receiverCLI.RunCmd(cmd) + receiverCLI.RunCmd("paych", "voucher", "add", chAddr.String(), voucher3) // receiver: paych voucher add - cmd = []string{"paych", "voucher", "add", chAddr.String(), voucher4} - receiverCLI.RunCmd(cmd) + receiverCLI.RunCmd("paych", "voucher", "add", chAddr.String(), voucher4) // receiver: paych voucher list --export - cmd = []string{"paych", "voucher", "list", "--export", chAddr.String()} - list = receiverCLI.RunCmd(cmd) + list = receiverCLI.RunCmd("paych", "voucher", "list", "--export", chAddr.String()) // Check that voucher list output is correct on receiver checkVoucherOutput(t, list, vouchers) // receiver: paych voucher best-spendable - cmd = []string{"paych", "voucher", "best-spendable", "--export", chAddr.String()} - bestSpendable = receiverCLI.RunCmd(cmd) + bestSpendable = receiverCLI.RunCmd("paych", "voucher", "best-spendable", "--export", chAddr.String()) // Check that best spendable output is correct on receiver bestVouchers = []voucherSpec{ @@ -275,12 +259,10 @@ func TestPaymentChannelVouchers(t *testing.T) { checkVoucherOutput(t, bestSpendable, bestVouchers) // receiver: paych voucher submit - cmd = []string{"paych", "voucher", "submit", chAddr.String(), voucher1} - receiverCLI.RunCmd(cmd) + receiverCLI.RunCmd("paych", "voucher", "submit", chAddr.String(), voucher1) // receiver: paych voucher best-spendable - cmd = []string{"paych", "voucher", "best-spendable", "--export", chAddr.String()} - bestSpendable = receiverCLI.RunCmd(cmd) + bestSpendable = receiverCLI.RunCmd("paych", "voucher", "best-spendable", "--export", chAddr.String()) // Check that best spendable output no longer includes submitted voucher bestVouchers = []voucherSpec{ @@ -291,12 +273,10 @@ func TestPaymentChannelVouchers(t *testing.T) { // There are three vouchers in lane 5: 50, 70, 80 // Submit the voucher for 50. Best spendable should still be 80. // receiver: paych voucher submit - cmd = []string{"paych", "voucher", "submit", chAddr.String(), voucher2} - receiverCLI.RunCmd(cmd) + receiverCLI.RunCmd("paych", "voucher", "submit", chAddr.String(), voucher2) // receiver: paych voucher best-spendable - cmd = []string{"paych", "voucher", "best-spendable", "--export", chAddr.String()} - bestSpendable = receiverCLI.RunCmd(cmd) + bestSpendable = receiverCLI.RunCmd("paych", "voucher", "best-spendable", "--export", chAddr.String()) // Check that best spendable output still includes the voucher for 80 bestVouchers = []voucherSpec{ @@ -306,12 +286,10 @@ func TestPaymentChannelVouchers(t *testing.T) { // Submit the voucher for 80 // receiver: paych voucher submit - cmd = []string{"paych", "voucher", "submit", chAddr.String(), voucher4} - receiverCLI.RunCmd(cmd) + receiverCLI.RunCmd("paych", "voucher", "submit", chAddr.String(), voucher4) // receiver: paych voucher best-spendable - cmd = []string{"paych", "voucher", "best-spendable", "--export", chAddr.String()} - bestSpendable = receiverCLI.RunCmd(cmd) + bestSpendable = receiverCLI.RunCmd("paych", "voucher", "best-spendable", "--export", chAddr.String()) // Check that best spendable output no longer includes submitted voucher bestVouchers = []voucherSpec{} @@ -322,6 +300,7 @@ func TestPaymentChannelVouchers(t *testing.T) { // is greater than what's left in the channel, voucher create fails func TestPaymentChannelVoucherCreateShortfall(t *testing.T) { _ = os.Setenv("BELLMAN_NO_GPU", "1") + clitest.QuietMiningLogs() blocktime := 5 * time.Millisecond ctx := context.Background() @@ -336,8 +315,12 @@ func TestPaymentChannelVoucherCreateShortfall(t *testing.T) { // creator: paych add-funds channelAmt := 100 - cmd := []string{"paych", "add-funds", creatorAddr.String(), receiverAddr.String(), fmt.Sprintf("%d", channelAmt)} - chstr := creatorCLI.RunCmd(cmd) + chstr := creatorCLI.RunCmd( + "paych", + "add-funds", + creatorAddr.String(), + receiverAddr.String(), + fmt.Sprintf("%d", channelAmt)) chAddr, err := address.NewFromString(chstr) require.NoError(t, err) @@ -345,15 +328,25 @@ func TestPaymentChannelVoucherCreateShortfall(t *testing.T) { // creator: paych voucher create --lane=1 voucherAmt1 := 60 lane1 := "--lane=1" - cmd = []string{"paych", "voucher", "create", lane1, chAddr.String(), strconv.Itoa(voucherAmt1)} - voucher1 := creatorCLI.RunCmd(cmd) + voucher1 := creatorCLI.RunCmd( + "paych", + "voucher", + "create", + lane1, + chAddr.String(), + strconv.Itoa(voucherAmt1)) fmt.Println(voucher1) // creator: paych voucher create --lane=2 lane2 := "--lane=2" voucherAmt2 := 70 - cmd = []string{"paych", "voucher", "create", lane2, chAddr.String(), strconv.Itoa(voucherAmt2)} - _, err = creatorCLI.RunCmdRaw(cmd) + _, err = creatorCLI.RunCmdRaw( + "paych", + "voucher", + "create", + lane2, + chAddr.String(), + strconv.Itoa(voucherAmt2)) // Should fail because channel doesn't have required amount require.Error(t, err) diff --git a/cli/test/client.go b/cli/test/client.go index aefc97479..c74f881b0 100644 --- a/cli/test/client.go +++ b/cli/test/client.go @@ -37,10 +37,7 @@ func RunClientTest(t *testing.T, cmds []*lcli.Command, clientNode test.TestNode) fmt.Println("Miner:", minerAddr) // client query-ask - cmd := []string{ - "client", "query-ask", minerAddr.String(), - } - out := clientCLI.RunCmd(cmd) + out := clientCLI.RunCmd("client", "query-ask", minerAddr.String()) require.Regexp(t, regexp.MustCompile("Ask:"), out) // Create a deal (non-interactive) @@ -50,10 +47,7 @@ func RunClientTest(t *testing.T, cmds []*lcli.Command, clientNode test.TestNode) dataCid := res.Root price := "1000000attofil" duration := fmt.Sprintf("%d", build.MinDealDuration) - cmd = []string{ - "client", "deal", dataCid.String(), minerAddr.String(), price, duration, - } - out = clientCLI.RunCmd(cmd) + out = clientCLI.RunCmd("client", "deal", dataCid.String(), minerAddr.String(), price, duration) fmt.Println("client deal", out) // Create a deal (interactive) @@ -67,9 +61,7 @@ func RunClientTest(t *testing.T, cmds []*lcli.Command, clientNode test.TestNode) require.NoError(t, err) dataCid2 := res.Root duration = fmt.Sprintf("%d", build.MinDealDuration/builtin.EpochsInDay) - cmd = []string{ - "client", "deal", - } + cmd := []string{"client", "deal"} interactiveCmds := []string{ dataCid2.String(), duration, @@ -84,8 +76,7 @@ func RunClientTest(t *testing.T, cmds []*lcli.Command, clientNode test.TestNode) dealStatus := "" for dealStatus != "StorageDealSealing" { // client list-deals - cmd = []string{"client", "list-deals"} - out = clientCLI.RunCmd(cmd) + out = clientCLI.RunCmd("client", "list-deals") fmt.Println("list-deals:\n", out) lines := strings.Split(out, "\n") @@ -106,10 +97,7 @@ func RunClientTest(t *testing.T, cmds []*lcli.Command, clientNode test.TestNode) tmpdir, err := ioutil.TempDir(os.TempDir(), "test-cli-client") require.NoError(t, err) path := filepath.Join(tmpdir, "outfile.dat") - cmd = []string{ - "client", "retrieve", dataCid.String(), path, - } - out = clientCLI.RunCmd(cmd) + out = clientCLI.RunCmd("client", "retrieve", dataCid.String(), path) fmt.Println("retrieve:\n", out) require.Regexp(t, regexp.MustCompile("Success"), out) } diff --git a/cli/test/mockcli.go b/cli/test/mockcli.go index dc6d6fd4a..65b0bc30a 100644 --- a/cli/test/mockcli.go +++ b/cli/test/mockcli.go @@ -52,22 +52,8 @@ type MockCLIClient struct { out *bytes.Buffer } -func (c *MockCLIClient) run(cmd []string, params []string, args []string) string { - // Add parameter --api-url= - apiFlag := "--api-url=" + c.addr.String() - params = append([]string{apiFlag}, params...) - - err := c.cctx.App.Run(append(append(cmd, params...), args...)) - require.NoError(c.t, err) - - // Get the output - str := strings.TrimSpace(c.out.String()) - c.out.Reset() - return str -} - -func (c *MockCLIClient) RunCmd(input []string) string { - out, err := c.RunCmdRaw(input) +func (c *MockCLIClient) RunCmd(input ...string) string { + out, err := c.RunCmdRaw(input...) require.NoError(c.t, err) return out @@ -102,7 +88,7 @@ func (c *MockCLIClient) findSubcommand(cmd *lcli.Command, input []string) (*lcli return nil, []string{} } -func (c *MockCLIClient) RunCmdRaw(input []string) (string, error) { +func (c *MockCLIClient) RunCmdRaw(input ...string) (string, error) { cmd, input := c.cmdByNameSub(input) if cmd == nil { panic("Could not find command " + input[0] + " " + input[1]) @@ -145,7 +131,7 @@ func (c *MockCLIClient) flagSet(cmd *lcli.Command) *flag.FlagSet { func (c *MockCLIClient) RunInteractiveCmd(cmd []string, interactive []string) string { c.toStdin(strings.Join(interactive, "\n") + "\n") - return c.RunCmd(cmd) + return c.RunCmd(cmd...) } func (c *MockCLIClient) toStdin(s string) { diff --git a/cli/test/multisig.go b/cli/test/multisig.go index f7c0d88d7..dd867d0b5 100644 --- a/cli/test/multisig.go +++ b/cli/test/multisig.go @@ -39,7 +39,7 @@ func RunMultisigTest(t *testing.T, cmds []*lcli.Command, clientNode test.TestNod paramDuration := "--duration=50" paramRequired := fmt.Sprintf("--required=%d", threshold) paramValue := fmt.Sprintf("--value=%dattofil", amtAtto) - cmd := []string{ + out := clientCLI.RunCmd( "msig", "create", paramRequired, paramDuration, @@ -47,8 +47,7 @@ func RunMultisigTest(t *testing.T, cmds []*lcli.Command, clientNode test.TestNod walletAddrs[0].String(), walletAddrs[1].String(), walletAddrs[2].String(), - } - out := clientCLI.RunCmd(cmd) + ) fmt.Println(out) // Extract msig robust address from output @@ -62,18 +61,16 @@ func RunMultisigTest(t *testing.T, cmds []*lcli.Command, clientNode test.TestNod // Propose to add a new address to the msig // msig add-propose --from= paramFrom := fmt.Sprintf("--from=%s", walletAddrs[0]) - cmd = []string{ + out = clientCLI.RunCmd( "msig", "add-propose", paramFrom, msigRobustAddr, walletAddrs[3].String(), - } - out = clientCLI.RunCmd(cmd) + ) fmt.Println(out) // msig inspect - cmd = []string{"msig", "inspect", "--vesting", "--decode-params", msigRobustAddr} - out = clientCLI.RunCmd(cmd) + out = clientCLI.RunCmd("msig", "inspect", "--vesting", "--decode-params", msigRobustAddr) fmt.Println(out) // Expect correct balance @@ -87,7 +84,7 @@ func RunMultisigTest(t *testing.T, cmds []*lcli.Command, clientNode test.TestNod // msig add-approve --from= 0 false txnID := "0" paramFrom = fmt.Sprintf("--from=%s", walletAddrs[1]) - cmd = []string{ + out = clientCLI.RunCmd( "msig", "add-approve", paramFrom, msigRobustAddr, @@ -95,7 +92,6 @@ func RunMultisigTest(t *testing.T, cmds []*lcli.Command, clientNode test.TestNod txnID, walletAddrs[3].String(), "false", - } - out = clientCLI.RunCmd(cmd) + ) fmt.Println(out) }