diff --git a/tests/cli/helpers.go b/tests/cli/helpers.go index 0350a6836f7c..ba332eda0192 100644 --- a/tests/cli/helpers.go +++ b/tests/cli/helpers.go @@ -18,6 +18,13 @@ import ( ) var ( + TotalCoins = sdk.NewCoins( + sdk.NewCoin(Fee2Denom, sdk.TokensFromConsensusPower(2000000)), + sdk.NewCoin(FeeDenom, sdk.TokensFromConsensusPower(2000000)), + sdk.NewCoin(FooDenom, sdk.TokensFromConsensusPower(2000)), + sdk.NewCoin(Denom, sdk.TokensFromConsensusPower(300).Add(sdk.NewInt(12))), // add coins from inflation + ) + StartCoins = sdk.NewCoins( sdk.NewCoin(Fee2Denom, sdk.TokensFromConsensusPower(1000000)), sdk.NewCoin(FeeDenom, sdk.TokensFromConsensusPower(1000000)), diff --git a/tests/cli/keys_test.go b/tests/cli/keys_test.go index 0a6c64ab3d3f..a661c98c57b6 100644 --- a/tests/cli/keys_test.go +++ b/tests/cli/keys_test.go @@ -6,8 +6,9 @@ import ( "fmt" "testing" - "github.com/cosmos/cosmos-sdk/tests/cli" "github.com/stretchr/testify/require" + + "github.com/cosmos/cosmos-sdk/tests/cli" ) func TestCLIKeysAddMultisig(t *testing.T) { diff --git a/x/bank/client/cli/cli_test.go b/x/bank/client/cli/cli_test.go index cc100e8a9edc..9bd74c6cdb8b 100644 --- a/x/bank/client/cli/cli_test.go +++ b/x/bank/client/cli/cli_test.go @@ -204,3 +204,20 @@ func TestCLIFeesDeduction(t *testing.T) { f.Cleanup() } + +func TestCLIQuerySupply(t *testing.T) { + t.Parallel() + f := cli.InitFixtures(t) + + // start simd server + proc := f.SDStart() + defer proc.Stop(false) + + totalSupply := testutil.QueryTotalSupply(f) + totalSupplyOf := testutil.QueryTotalSupplyOf(f, cli.FooDenom) + + require.Equal(t, cli.TotalCoins, totalSupply) + require.True(sdk.IntEq(t, cli.TotalCoins.AmountOf(cli.FooDenom), totalSupplyOf)) + + f.Cleanup() +} diff --git a/x/bank/client/testutil/helpers.go b/x/bank/client/testutil/helpers.go index 49c4611f669b..c09de98ac873 100644 --- a/x/bank/client/testutil/helpers.go +++ b/x/bank/client/testutil/helpers.go @@ -50,3 +50,26 @@ func QueryBalances(f *cli.Fixtures, address sdk.AccAddress, flags ...string) sdk return balances } + +// QueryTotalSupply returns the total supply of coins +func QueryTotalSupply(f *cli.Fixtures, flags ...string) (totalSupply sdk.Coins) { + cmd := fmt.Sprintf("%s query bank total %s", f.SimcliBinary, f.Flags()) + res, errStr := tests.ExecuteT(f.T, cmd, "") + require.Empty(f.T, errStr) + + err := f.Cdc.UnmarshalJSON([]byte(res), &totalSupply) + require.NoError(f.T, err) + return totalSupply +} + +// QueryTotalSupplyOf returns the total supply of a given coin denom +func QueryTotalSupplyOf(f *cli.Fixtures, denom string, flags ...string) sdk.Int { + cmd := fmt.Sprintf("%s query bank total %s %s", f.SimcliBinary, denom, f.Flags()) + res, errStr := tests.ExecuteT(f.T, cmd, "") + require.Empty(f.T, errStr) + + var supplyOf sdk.Int + err := f.Cdc.UnmarshalJSON([]byte(res), &supplyOf) + require.NoError(f.T, err) + return supplyOf +} diff --git a/x/slashing/client/cli/cli_test.go b/x/slashing/client/cli/cli_test.go new file mode 100644 index 000000000000..a39d2e77bfec --- /dev/null +++ b/x/slashing/client/cli/cli_test.go @@ -0,0 +1,33 @@ +// +build cli_test + +package cli_test + +import ( + "github.com/cosmos/cosmos-sdk/x/slashing/client/testutil" + "testing" + + "github.com/stretchr/testify/require" + + cli "github.com/cosmos/cosmos-sdk/tests/cli" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func TestCLISlashingGetParams(t *testing.T) { + t.Parallel() + f := cli.InitFixtures(t) + + // start simd server + proc := f.SDStart() + defer proc.Stop(false) + + params := testutil.QuerySlashingParams(f) + require.Equal(t, int64(100), params.SignedBlocksWindow) + require.Equal(t, sdk.NewDecWithPrec(5, 1), params.MinSignedPerWindow) + + sinfo := testutil.QuerySigningInfo(f, f.SDTendermint("show-validator")) + require.Equal(t, int64(0), sinfo.StartHeight) + require.False(t, sinfo.Tombstoned) + + // Cleanup testing directories + f.Cleanup() +} diff --git a/x/slashing/client/testutil/helpers.go b/x/slashing/client/testutil/helpers.go new file mode 100644 index 000000000000..c31f27a5ec2e --- /dev/null +++ b/x/slashing/client/testutil/helpers.go @@ -0,0 +1,33 @@ +package testutil + +import ( + "fmt" + "github.com/cosmos/cosmos-sdk/tests" + "github.com/cosmos/cosmos-sdk/tests/cli" + "github.com/cosmos/cosmos-sdk/x/slashing" + "github.com/stretchr/testify/require" +) + +// QuerySigningInfo returns the signing info for a validator +func QuerySigningInfo(f *cli.Fixtures, val string) slashing.ValidatorSigningInfo { + cmd := fmt.Sprintf("%s query slashing signing-info %s %s", f.SimcliBinary, val, f.Flags()) + res, errStr := tests.ExecuteT(f.T, cmd, "") + require.Empty(f.T, errStr) + + var sinfo slashing.ValidatorSigningInfo + err := f.Cdc.UnmarshalJSON([]byte(res), &sinfo) + require.NoError(f.T, err) + return sinfo +} + +// QuerySlashingParams returns query slashing params +func QuerySlashingParams(f *cli.Fixtures) slashing.Params { + cmd := fmt.Sprintf("%s query slashing params %s", f.SimcliBinary, f.Flags()) + res, errStr := tests.ExecuteT(f.T, cmd, "") + require.Empty(f.T, errStr) + + var params slashing.Params + err := f.Cdc.UnmarshalJSON([]byte(res), ¶ms) + require.NoError(f.T, err) + return params +}