gaia icon indicating copy to clipboard operation
gaia copied to clipboard

tests: compatibility, e2e, github action

Open yaruwangway opened this issue 2 years ago • 4 comments

Summary

In gaia repo, there will be three types of tests:

  • e2e tests: which will cover hermes relayer tests, new module tests, tx tests.
  • github action: test simulation, lint, etc
  • compatibility tests: patch releases should be compatible

Testing plan:

  • Part I: set up 3 nodes, two node (on chain 1) of the same minor but different patch versions, the third node (on chain 2) can choose any version. Use Hermes relayer to create connection between chain 1 and 2. Testing the following txs:

    • bank send
    • liquidity
    • create validator
    • delegation and redelegation
    • withdraw rewards
    • submit proposal
    • ibc tx and ica tx
  • Part II: create a node to join in live cosmoshub by the gaiad version we want to test, let it sync for 24h.

PLEASE NOTE: The version compatibility test should be before tag the version!

Problem Definition

Proposal


For Admin Use

  • [ ] Not duplicate issue
  • [ ] Appropriate labels applied
  • [ ] Appropriate contributors tagged
  • [ ] Contributor assigned/self-assigned

yaruwangway avatar Mar 02 '22 10:03 yaruwangway

Modules in Gaia with list of gaiad tx <command> commands

  • [ ] liquidity Liquidity transaction subcommands #1633
    • [ ] create-pool Create liquidity pool and deposit coins
    • [ ] deposit Deposit coins to a liquidity pool
    • [ ] swap Swap offer coin with demand coin from the liquidity pool with the given order price
    • [ ] withdraw Withdraw pool coin from the specified liquidity pool
  • [ ] authz Authorization transactions subcommands #1632
    • [ ] exec execute tx on behalf of granter account
    • [ ] grant Grant authorization to an address
    • [ ] revoke revoke authorization
  • [x] vesting Vesting transaction subcommands #1631
    • [x] create-vesting-account Create a new vesting account funded with an allocation of tokens.
  • [x] staking Staking transaction subcommands #1630
    • [ ] create-validator create new validator initialized with a self-delegation to it
    • [x] delegate Delegate liquid tokens to a validator
    • [ ] edit-validator edit an existing validator account
    • [x] redelegate Redelegate illiquid tokens from one validator to another
    • [ ] unbond Unbond shares from a validator
  • [x] bank Bank transaction subcommands
    • [x] send Send funds from one account to another. Note, the'--from' flag is
  • [ ] broadcast Broadcast transactions generated offline
    • [ ] broadcast [file_path] [flags]
  • [ ] crisis Crisis transactions subcommands
    • [ ] invariant-broken Submit proof that an invariant broken to halt the chain
  • [ ] decode Decode a binary encoded transaction string
    • [ ] gaiad tx decode [amino-byte-string] [flags]
  • [x] distribution Distribution transactions subcommands #1678
    • [x] fund-community-pool Funds the community pool with the specified amount
    • [x] set-withdraw-addr change the default withdraw address for rewards associated with an address
    • [x] withdraw-all-rewards withdraw all delegations rewards for a delegator
    • [x] withdraw-rewards Withdraw rewards from a given delegation address, and optionally withdraw validator commission if the delegation address given is a validator operator
  • [ ] encode Encode transactions generated offline #1677
    • [ ] gaiad tx encode [file] [flags]
  • [x] evidence Evidence transaction subcommands #1676
    • [ ] gaiad tx evidence [flags]
  • [x] feegrant Feegrant transactions subcommands #1675
    • [x] grant Grant Fee allowance to an address
    • [x] revoke revoke fee-grant
  • [x] groups Groups transactions subcommands #1423
    • [x] create-group Create a group
    • [x] update-group-members Add a group member
    • [x] update-group-members Remove a group member
    • [x] create-group-policy Create threshold decision policy
    • [x] create-group-policy Create percentage decision policy
    • [x] submit-proposal Submit MsgSend proposal
    • [x] vote Vote on proposal
    • [x] exec Execute proposal
    • [ ] leave-group Remove member from the group
    • [ ] update-group-metadata Update a group's metadata
    • [ ] update-group-policy-admin Update a group policy admin
    • [ ] update-group-policy-decision-policy Update a group policy's decision policy
    • [ ] update-group-policy-metadata Update a group policy metadata
  • [x] gov Governance transactions subcommands #1424
    • [x] deposit Deposit tokens for an active proposal
    • [x] submit-proposal Submit a proposal along with an initial deposit
    • [x] submit-legacy-proposal Submit legacy proposal
      • [x] param-change Submit param change proposal for chain
      • [x] software-upgrade Submit an upgrade proposal
      • [x] cancel-software-upgrade Cancel the current software upgrade proposal
      • [x] community-pool-spend Submit proposal to send tokens from the community pool
      • [ ] ibc-upgrade Submit an IBC upgrade proposal
      • [ ] update-client Submit an update IBC client proposal
    • [x] vote Vote for an active proposal, options: yes/no/no_with_veto/abstain
    • [x] weighted-vote Vote for an active proposal, options: yes/no/no_with_veto/abstain
  • [ ] ibc IBC transaction subcommands
    • [ ] channel IBC channel transaction subcommands
    • [ ] client IBC client transaction subcommands
  • [x] ibc-transfer IBC fungible token transfer transaction subcommands
    • [x] transfer Transfer a fungible token through IBC
  • [x] inter-tx Interchain Accounts
    • [x] register-account Register Account
    • [x] Normal send bank transfer
    • [ ] Vote on a tx with gov
  • [ ] multisign Generate multisig signatures for transactions generated offline
    • [ ] gaiad tx multisign [file] [name] [[signature]...] [flags]
  • [ ] multisign-batch Assemble multisig transactions in batch from batch signatures
    • [ ] gaiad tx multisign-batch [file] [name] [[signature-file]...] [flags]
  • [ ] sign Sign a transaction generated offline
    • [ ] gaiad tx sign [file] [flags]
  • [ ] sign-batch Sign transaction batch files
    • [ ] gaiad tx sign-batch [file] [flags]
  • [x] slashing Slashing transaction subcommands #1679
    • [x] unjail unjail validator previously jailed for downtime
  • [ ] validate-signatures validate transactions signatures
    • [ ] gaiad tx validate-signatures [file] [flags]
  • [ ] Upgrades
    • [ ] upgrade locally with "fresh" genesis file
    • [ ] upgrade locally with exported genesis from livehub
    • [ ] cosmovisor upgrades
  • [ ] gov propose globalfee, query global fee (yaru)

okwme avatar Mar 07 '22 16:03 okwme

The following tests should be done in order before propose upgrade in livehub:

upgrade locally with "fresh" genesis file -> upgrade locally with exported genesis from livehub -> upgrade in dev testnet -> cut rc -> upgrade in public testnet -> cut final release -> propose in mainnet

@mmulji-ic

yaruwangway avatar Mar 09 '22 11:03 yaruwangway

e2e tests can be also used to test compatibility, set up two nodes of the same major version with different minor version, and execute the different msg types @okwme created

yaruwangway avatar Mar 09 '22 11:03 yaruwangway

@yaruwangway hey i remember we were waiting on the IBC team for a test scenario. Is it resolved?

tokamak-git avatar May 03 '22 18:05 tokamak-git

This is not valid anymore.

yaruwangway avatar Sep 29 '23 11:09 yaruwangway