-
Notifications
You must be signed in to change notification settings - Fork 381
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into hariom/gno-test-patterns
- Loading branch information
Showing
49 changed files
with
2,156 additions
and
184 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
version: 3 | ||
|
||
# https://github.com/fossas/fossa-cli/blob/master/docs/references/files/fossa-yml.md | ||
|
||
project: | ||
id: github.com/gnolang/gno | ||
name: gno | ||
|
||
targets: | ||
only: | ||
- type: gomod | ||
|
||
paths: | ||
exclude: | ||
- ./misc/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
name: Dependency License Scanning | ||
|
||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
paths: | ||
- ".github/.fossa.yml" | ||
- ".github/workflows/fossa.yml" | ||
schedule: | ||
- cron: '0 0 * * 6' # At 00:00 on saturdays | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
fossa: | ||
name: Fossa | ||
runs-on: ubuntu-latest | ||
if: github.repository == 'gnolang/gno' | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
# we don't know what commit the last tag was it's safer to get entire repo so previousStableVersion resolves | ||
fetch-depth: 0 | ||
|
||
- name: Move .fossa.yml to root dir | ||
run: mv .github/.fossa.yml . | ||
|
||
- name: Cache Coursier cache | ||
uses: coursier/cache-action@v6.4.0 | ||
|
||
- name: Set up JDK 17 | ||
uses: coursier/setup-action@v1.3.0 | ||
with: | ||
jvm: temurin:1.17 | ||
|
||
- name: Set up fossa CLI | ||
run: "curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install-latest.sh | bash" | ||
|
||
- name: FOSSA analyze | ||
run: fossa analyze | ||
env: | ||
FOSSA_API_KEY: "${{secrets.FOSSA_API_KEY}}" | ||
|
||
- name: FOSSA test | ||
run: fossa test | ||
env: | ||
FOSSA_API_KEY: "${{secrets.FOSSA_API_KEY}}" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
# Gnoland Testing Guide | ||
|
||
This guide provides an overview of our testing practices and conventions. While most of our testing aligns with typical Go practices, there are exceptions and specifics you should be aware of. | ||
|
||
## Standard Package Testing | ||
|
||
For most packages, tests are written and executed in the standard Go manner: | ||
|
||
- Tests are located alongside the code they test. | ||
- The `go test` command can be used to execute tests. | ||
|
||
However, as mentioned earlier, there are some exceptions. In the following sections, we will explore our specialized tests and how to work with them. | ||
|
||
## Gno Filetests | ||
|
||
**Location:** `gnovm/test/files` | ||
|
||
These are our custom file-based tests tailored specifically for this project. | ||
|
||
**Execution:** | ||
|
||
From the gnovm directory, There are two main commands to run Gno filetests: | ||
|
||
1. To test native files, use: | ||
``` | ||
make _test.gnolang.native | ||
``` | ||
|
||
2. To test standard libraries, use: | ||
``` | ||
make _test.gnolang.stdlibs | ||
``` | ||
|
||
**Golden Files Update:** | ||
|
||
Golden files are references for expected outputs. Sometimes, after certain updates, these need to be synchronized. To do so: | ||
|
||
1. For native tests: | ||
``` | ||
make _test.gnolang.native.sync | ||
``` | ||
|
||
2. For standard library tests: | ||
``` | ||
make _test.gnolang.stdlibs.sync | ||
``` | ||
|
||
## Integration Tests | ||
|
||
**Location:** `gno.land/**/testdata` | ||
|
||
From the gno.land directory, Integration tests are designed to ensure different parts of the project work cohesively. Specifically: | ||
|
||
1. **InMemory Node Integration Testing:** | ||
Found in `gno.land/cmd/gnoland/testdata`, these are dedicated to running integration tests against a genuine `gnoland` node. | ||
|
||
2. **Integration Features Testing:** | ||
Located in `gno.land/pkg/integration/testdata`, these tests target integrations specific commands. | ||
|
||
These integration tests utilize the `testscript` package and follow the `txtar` file specifications. | ||
|
||
**Documentation:** | ||
|
||
- For general `testscript` package documentation, refer to: [testscript documentation](https://github.com/rogpeppe/go-internal/blob/v1.11.0/testscript/doc.go) | ||
|
||
- For more specific details about our integration tests, consult our extended documentation: [gnoland integration documentation](https://github.com/gnolang/gno/blob/master/gno.land/pkg/integration/doc.go) | ||
|
||
**Execution:** | ||
|
||
To run the integration tests (alongside other packages): | ||
|
||
``` | ||
make _test.pkgs | ||
``` | ||
|
||
**Golden Files Update within txtar:** | ||
|
||
For tests utilizing the `cmp` command inside `txtar` files, golden files can be synchronized using: | ||
|
||
``` | ||
make _test.pkgs.sync | ||
``` | ||
|
||
--- | ||
|
||
As the project evolves, this guide might be updated. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
package main | ||
|
||
import ( | ||
"testing" | ||
|
||
"github.com/gnolang/gno/gno.land/pkg/integration" | ||
"github.com/rogpeppe/go-internal/testscript" | ||
) | ||
|
||
func TestTestdata(t *testing.T) { | ||
testscript.Run(t, integration.SetupGnolandTestScript(t, "testdata")) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# test for add package | ||
|
||
## start a new node | ||
gnoland start | ||
|
||
## add bar.gno package located in $WORK directory as gno.land/r/foobar/bar | ||
gnokey maketx addpkg -pkgdir $WORK -pkgpath gno.land/r/foobar/bar -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1 | ||
|
||
## execute Render | ||
gnokey maketx call -pkgpath gno.land/r/foobar/bar -func Render -gas-fee 1000000ugnot -gas-wanted 2000000 -args '' -broadcast -chainid=tendermint_test test1 | ||
|
||
## compare render | ||
cmp stdout stdout.golden | ||
|
||
-- bar.gno -- | ||
package bar | ||
|
||
func Render(path string) string { | ||
return "hello from foo" | ||
} | ||
|
||
-- stdout.golden -- | ||
("hello from foo" string) | ||
OK! | ||
GAS WANTED: 2000000 | ||
GAS USED: 69163 |
Oops, something went wrong.