Skip to content

Conversation

@lamb356
Copy link

@lamb356 lamb356 commented Dec 15, 2025

Summary

Implements code coverage reporting for gno test with three new flags:

  • -cover - Enable coverage analysis
  • -coverprofile=<file> - Write coverage profile to file
  • -covermode=<mode> - Set coverage mode (set, count, or atomic)

Closes #1121
Closes #2907
Closes #2908

Changes

  • Add -cover, -covermode, -coverprofile flags to gno test command
  • Add coverage.go with CoverageCollector, CoverageData, CoverBlock types
  • Track statement execution during test runs via op_exec.go
  • Output Go-compatible coverage profiles (works with go tool cover)
  • Add 40 unit tests with >80% coverage on all new code

Usage

gno test -cover ./examples/gno.land/p/demo/avl
# Output: coverage: 88.4% of statements

gno test -cover -coverprofile=coverage.out ./path/to/package

Testing

  • 40 unit tests added
  • 80% coverage on all new code

  • Output compatible with Go's coverage profile format

Implements gnolang#1121

- Add -cover, -covermode, -coverprofile flags to gno test
- Add coverage.go with CoverageCollector, CoverageData, CoverBlock types
- Track statement execution during test runs
- Output Go-compatible coverage profiles
- Add 40 unit tests with >80% coverage on all new code

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@github-actions github-actions bot added the 📦 🤖 gnovm Issues or PRs gnovm related label Dec 15, 2025
@Gno2D2 Gno2D2 added the review/triage-pending PRs opened by external contributors that are waiting for the 1st review label Dec 15, 2025
@Gno2D2
Copy link
Collaborator

Gno2D2 commented Dec 15, 2025

🛠 PR Checks Summary

🔴 Pending initial approval by a review team member, or review from tech-staff

Manual Checks (for Reviewers):
  • IGNORE the bot requirements for this PR (force green CI check)
  • The pull request description provides enough details
Read More

🤖 This bot helps streamline PR reviews by verifying automated checks and providing guidance for contributors and reviewers.

✅ Automated Checks (for Contributors):

🟢 Maintainers must be able to edit this pull request (more info)
🔴 Pending initial approval by a review team member, or review from tech-staff

☑️ Contributor Actions:
  1. Fix any issues flagged by automated checks.
  2. Follow the Contributor Checklist to ensure your PR is ready for review.
    • Add new tests, or document why they are unnecessary.
    • Provide clear examples/screenshots, if necessary.
    • Update documentation, if required.
    • Ensure no breaking changes, or include BREAKING CHANGE notes.
    • Link related issues/PRs, where applicable.
☑️ Reviewer Actions:
  1. Complete manual checks for the PR, including the guidelines and additional checks if applicable.
📚 Resources:
Debug
Automated Checks
Maintainers must be able to edit this pull request (more info)

If

🟢 Condition met
└── 🟢 And
    ├── 🟢 The base branch matches this pattern: ^master$
    └── 🟢 The pull request was created from a fork (head branch repo: lamb356/gno)

Then

🟢 Requirement satisfied
└── 🟢 Maintainer can modify this pull request

Pending initial approval by a review team member, or review from tech-staff

If

🟢 Condition met
└── 🟢 And
    ├── 🟢 The base branch matches this pattern: ^master$
    └── 🟢 Not (🔴 Pull request author is a member of the team: tech-staff)

Then

🔴 Requirement not satisfied
└── 🔴 If
    ├── 🔴 Condition
    │   └── 🔴 Or
    │       ├── 🔴 At least one of these user(s) reviewed the pull request: [jefft0 leohhhn n0izn0iz notJoon omarsy x1unix] (with state "APPROVED")
    │       ├── 🔴 At least 1 user(s) of the team tech-staff reviewed pull request
    │       └── 🔴 This pull request is a draft
    └── 🔴 Else
        └── 🔴 And
            ├── 🟢 This label is applied to pull request: review/triage-pending
            └── 🔴 On no pull request

Manual Checks
**IGNORE** the bot requirements for this PR (force green CI check)

If

🟢 Condition met
└── 🟢 On every pull request

Can be checked by

  • Any user with comment edit permission
The pull request description provides enough details

If

🟢 Condition met
└── 🟢 And
    ├── 🟢 Not (🔴 Pull request author is a member of the team: core-contributors)
    └── 🟢 Not (🔴 Pull request author is user: dependabot[bot])

Can be checked by

  • team core-contributors

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📦 🤖 gnovm Issues or PRs gnovm related review/triage-pending PRs opened by external contributors that are waiting for the 1st review

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

gno test -covermode gno test -coverprofile gno test -cover ...

2 participants