hiero-ledger / hiero-ledger/hiero-consensus-node

HAPI XTS Review and Speedup

Open
#22,940 0 comments 0 reactions 0 assignees View on GitHub
Epic
Dominant language
Java
Stars
406
Forks
226
Avg merge
3d 4h
Merged PRs (30d)
210

Description

### Background

We would like to reduce the time it takes to complete the XTS run. This epic will track the progress on each of the initiatives, required for the XTS speedup.

The objective of this effort is to enable parallel test execution where supported and migrate the majority of tests from XTS to PR checks / MATS. This shift allows us to detect issues earlier - directly within pull requests - before changes are merged to main.
The new execution model, along with changes introduced across the PRs associated with this epic, ensures that each modified test tag completes in under 20 minutes during PR checks. Our target is for all checks - at minimum the test execution tasks at this stage - to complete within 20 minutes, while also making more efficient use of CI runners. As a potential follow-up improvement, PR checks could also be configured for manual triggering on a per-PR basis.
During this transition, we have begun surfacing flaky tests that previously occurred only infrequently. Because these tests now run more often and under higher concurrency, existing instabilities are exposed more readily. All such failures are tracked in newly created issues labeled "PR gate failure”. See https://github.com/hiero-ledger/hiero-consensus-node/issues/24396.

Tags for conversion:
- Crypto
- Misc
- Misc Records
- Token
- Time Consuming (split into two tags, with State Throttling added)
- Simple Fees
- Smart Contracts
- Atomic Batch

All converted tags are intended to be disabled in XTS and enabled in MATS without relying on different subsets. Should there be a need to also run them in XTS (which would introduce duplication) - this can be achieved by toggling the configuration flag to re-enable them.
No changes have been made to any "required" configurations. The new State Throttling tag diverges from Time Consuming and should inherit the same required status.

### Acceptance Criteria

Sub issues completed

### Dependencies

_No response_

### Definition of Ready (DoR) Checklist

- [ ] Clear acceptance criteria
- [ ] Clear and detailed description
- [ ] Dependencies identified
- [ ] Links to documentation
- [ ] Should be completable in 2-3 Days
- [ ] Initial draft of Low-level design document
- [ ] At least high level test plan
- [ ] Groomed/Estimated

### Definition of Done (DoD) Checklist

- [ ] Acceptance Criteria complete
- [ ] No Codacy issues greater than minor (in new code)
- [ ] JavaDocs updated/created
- [ ] Code commented
- [ ] Unit tests created/updated
- [ ] 80% test code coverage (in new code)
- [ ] Happy Path and major negative cases in HAPI tests as applicable

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the XTS and MATS test execution setup, the listed tags for conversion, and the associated sub-issues. Confirm which tags can run in PR checks or MATS, how the configuration flag controls XTS duplication, and how State Throttling inherits the required status. Done means all sub-issues are completed and the stated execution-time and migration goals are met.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
ci-cd, performance, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.