cosmos-sdk/scripts
Facundo Medica a8a52d0775
refactor: use mocks for x/auth testing + ante tests refactor (#12568)
## Description

Main changes:
#### `x/auth` and `x/auth/ante` stopped depending on simapp
Some usages are left but this PR grew too much, so we might want to do it in a separate.

#### Removed all usages of the `suite` in `ante`
This makes tests way more verbose but helps keep the test cases self-contained and easier to understand (before you would need to mentally track the state of the suite throughout the test cases to understand them).
Also, it's easier to test, given that all tests are converted to standard Go unit tests (`func TestSomething(t *testing.T){`) and at least VSCode recognizes them and lets you run a single one instead of the entire suite.
I think this can/should be replicated in other modules.

Closes: #12502



---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [x] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/main/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/main/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/main/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [x] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
2022-07-27 17:49:19 +00:00
..
go-mod-tidy-all.sh build: add scripts to update all go.mod's at once (#10901) 2022-01-07 17:05:07 +00:00
go-update-dep-all.sh build: add scripts to update all go.mod's at once (#10901) 2022-01-07 17:05:07 +00:00
linkify_changelog.py Merge PR #4902: Changelog Flow Updates 2019-08-13 16:00:28 -04:00
mockgen.sh refactor: use mocks for x/auth testing + ante tests refactor (#12568) 2022-07-27 17:49:19 +00:00
module-tests.sh feat: ADR-040: Add RootStore implementation (#10430) 2021-12-16 13:09:57 +00:00
protoc-swagger-gen.sh chore: fix and regenerate swagger yaml #12109 2022-06-01 09:38:29 -04:00
protocgen2.sh feat(scripts): wipe API directory before generating (#11342) 2022-03-10 10:29:42 +00:00
protocgen-any.sh All Makefile proto commands use Docker (#7931) 2020-11-13 16:36:58 +00:00
protocgen.sh fix: dockerfile for building proto (#11452) (#11703) 2022-04-22 16:11:30 +02:00
README.md docs: Code blocks in SDK docs are broken (#11189) 2022-02-14 23:39:35 +01:00
update-swagger-ui-statik.sh disable url parameter in swagger-ui page (#11202) 2022-02-16 14:58:36 +01:00
validate-gentxs.sh feat: bump Go version to 1.17 (#9987) 2021-09-17 13:31:46 +02:00

Scripts

Generally we should avoid shell scripting and write tests purely in Golang. However, some libraries are not Goroutine-safe (e.g. app simulations cannot be run safely in parallel), and OS-native threading may be more efficient for many parallel simulations, so we use shell scripts here.

Validate Gentxs

A custom utility script is available to validate gentxs. Though we have ValidateBasic() for validating gentx data, it cannot validate signatures. This custom script helps to validate all the gentxs by collecting them one by one and starting a local network. It requires the following env settings.

export DAEMON=gaiad
export CHAIN_ID=cosmoshub-1
export DENOM=uatom
export GH_URL=https://github.com/cosmos/gaia
export BINARY_VERSION=v1.0.0
export GO_VERSION=1.17
export PRELAUNCH_GENESIS_URL=https://raw.githubusercontent.com/cosmos/mainnet/main/cosmoshub-1/genesis-prelaunch.json
export GENTXS_DIR=~/go/src/github.com/cosmos/mainnet/$CHAIN_ID/gentxs

Though this script is handy for verifying the gentxs locally, it is advised to use Github Action to validate gentxs. An example can be found here: 0bcd387671/.github/workflows/validate-gentx.yml