Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: added E2E test for preemtive rate limit #2753

Conversation

quiet-node
Copy link
Member

Description:
PR#2751 added a preemptive check for the HBAR rate limit as a hotfix but did not include E2E test to cover the solution. This PR adds the necessary E2E test to ensure comprehensive coverage.

Related issue(s):

Fixes #2745

Notes for reviewer:

Checklist

  • Documented (Code comments, README, etc.)
  • Tested (unit, integration, etc.)

@quiet-node quiet-node added the process Build, test and deployment-process related tasks label Jul 24, 2024
@quiet-node quiet-node added this to the 0.53.0 milestone Jul 24, 2024
@quiet-node quiet-node self-assigned this Jul 24, 2024
@quiet-node quiet-node changed the title test: added E2E test fir preemtive rate limit test: added E2E test for preemtive rate limit Jul 24, 2024
Nana-EC
Nana-EC previously approved these changes Jul 24, 2024
Copy link

github-actions bot commented Jul 24, 2024

Tests

    2 files  161 suites   11s ⏱️
868 tests 867 ✔️ 1 💤 0
881 runs  880 ✔️ 1 💤 0

Results for commit fa6d8f9.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jul 24, 2024

Acceptance Tests

     23 files     272 suites   41m 7s ⏱️
   612 tests    605 ✔️ 4 💤 3
1 070 runs  1 057 ✔️ 5 💤 8

Results for commit fa6d8f9.

♻️ This comment has been updated with latest results.

@quiet-node quiet-node force-pushed the 2745-calculate-the-cost-of-an-eth_sendrawtransaction-based-on-calldata-byte-size-II branch from fa08200 to 99e16fb Compare July 25, 2024 20:55
Signed-off-by: Logan Nguyen <[email protected]>
Copy link

sonarcloud bot commented Jul 25, 2024

Copy link
Collaborator

@ebadiere ebadiere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LG.

Copy link
Contributor

@acuarica acuarica left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lg

@quiet-node quiet-node merged commit cfba1b1 into main Jul 26, 2024
34 checks passed
@quiet-node quiet-node deleted the 2745-calculate-the-cost-of-an-eth_sendrawtransaction-based-on-calldata-byte-size-II branch July 26, 2024 14:49
@quiet-node quiet-node modified the milestones: 0.53.0, 0.52.0 Jul 26, 2024
ebadiere pushed a commit that referenced this pull request Aug 1, 2024
* test: added E2E test fir preemtive rate limit

Signed-off-by: Logan Nguyen <[email protected]>

* Update hbarLimiter.spec.ts

Signed-off-by: Logan Nguyen <[email protected]>

---------

Signed-off-by: Logan Nguyen <[email protected]>
Signed-off-by: ebadiere <[email protected]>
ebadiere pushed a commit that referenced this pull request Aug 1, 2024
* test: added E2E test fir preemtive rate limit

Signed-off-by: Logan Nguyen <[email protected]>

* Update hbarLimiter.spec.ts

Signed-off-by: Logan Nguyen <[email protected]>

---------

Signed-off-by: Logan Nguyen <[email protected]>
Signed-off-by: ebadiere <[email protected]>
ebadiere added a commit that referenced this pull request Aug 1, 2024
* test: added E2E test for preemtive rate limit (#2753)

* test: added E2E test fir preemtive rate limit

Signed-off-by: Logan Nguyen <[email protected]>

* Update hbarLimiter.spec.ts

Signed-off-by: Logan Nguyen <[email protected]>

---------

Signed-off-by: Logan Nguyen <[email protected]>
Signed-off-by: ebadiere <[email protected]>

* test: expand integration tests for SDK client (#2756)

* test: expand integration tests for SDK client

Signed-off-by: Victor Yanev <[email protected]>

* chore: minor improvements to sdkClient.ts

Signed-off-by: Victor Yanev <[email protected]>

* fix: typescript error

Signed-off-by: Victor Yanev <[email protected]>

* fix: simplify test data

Signed-off-by: Victor Yanev <[email protected]>

* chore: formatting

Signed-off-by: Victor Yanev <[email protected]>

* chore: fix typescript errors and warnings

Signed-off-by: Victor Yanev <[email protected]>

* chore: optimize imports

Signed-off-by: Victor Yanev <[email protected]>

* chore: address comments

Signed-off-by: Victor Yanev <[email protected]>

* chore: improve readability of tests

Signed-off-by: Victor Yanev <[email protected]>

* test: fix wrong MIRROR_NODE_LIMIT_PARAM in relay tests

Signed-off-by: Victor Yanev <[email protected]>

* fix: wrong env file loaded

Signed-off-by: Victor Yanev <[email protected]>

* test: remove hardcoded usages of MIRROR_NODE_LIMIT_PARAM in relay tests

Signed-off-by: Victor Yanev <[email protected]>

* test: revert changes to rpc_batch1.spec.ts

Signed-off-by: Victor Yanev <[email protected]>

* chore: remove unused import

Signed-off-by: Victor Yanev <[email protected]>

* chore: fix test after merge

Signed-off-by: Victor Yanev <[email protected]>

* chore: fix test after merge

Signed-off-by: Victor Yanev <[email protected]>

* chore: revert changes to usages of MIRROR_NODE_LIMIT_PARAM

Signed-off-by: Victor Yanev <[email protected]>

* chore: revert changes to usages of MIRROR_NODE_LIMIT_PARAM

Signed-off-by: Victor Yanev <[email protected]>

---------

Signed-off-by: Victor Yanev <[email protected]>
Signed-off-by: ebadiere <[email protected]>

* feat: search contract logs only by transaction hash (#2762)

* chore: refactor eth.ts

Signed-off-by: nikolay <[email protected]>

* chore: bump hedera-local version

Signed-off-by: nikolay <[email protected]>

---------

Signed-off-by: nikolay <[email protected]>
Signed-off-by: ebadiere <[email protected]>

* chore: Implement memory leak detection in tests (#2695)

* chore: Implement memory leak detection in tests

Signed-off-by: Victor Yanev <[email protected]>

* chore: Implement memory leak detection in tests

Signed-off-by: Victor Yanev <[email protected]>

* chore: Implement memory leak detection in tests

Signed-off-by: Victor Yanev <[email protected]>

* chore: Implement memory leak detection in tests

Signed-off-by: Victor Yanev <[email protected]>

* chore: Implement memory leak detection in tests

Signed-off-by: Victor Yanev <[email protected]>

* chore: add docs

Signed-off-by: Victor Yanev <[email protected]>

* chore: fix sonar issues

Signed-off-by: Victor Yanev <[email protected]>

* chore: formatting

Signed-off-by: Victor Yanev <[email protected]>

* chore: small fix

Signed-off-by: Victor Yanev <[email protected]>

* chore: trace GC and write snapshot if memory leak > 0.5 MB

Signed-off-by: Victor Yanev <[email protected]>

* chore: revert false changes to eth.ts

Signed-off-by: Victor Yanev <[email protected]>

* chore: optimize code

Signed-off-by: Victor Yanev <[email protected]>

* Merge branch 'main' into 2260-Implement-a-Memory-Leak-detection-Test

Signed-off-by: Victor Yanev <[email protected]>

# Conflicts:
#	package-lock.json
#	package.json
#	packages/server/tsconfig.json

* fix: Do not write heap snapshots for acceptance tests

Signed-off-by: Victor Yanev <[email protected]>

* fix: add TODO for removing --trace_gc flag

Signed-off-by: Victor Yanev <[email protected]>

* test: add github comment in cases a test is having memory leaks

Signed-off-by: Victor Yanev <[email protected]>

* test: add github context env variables

Signed-off-by: Victor Yanev <[email protected]>

* test: extract common logic for github api calls

Signed-off-by: Victor Yanev <[email protected]>

* test: console.debug -> console.log for successful PR comments

Signed-off-by: Victor Yanev <[email protected]>

* test: fix request to github API

Signed-off-by: Victor Yanev <[email protected]>

* Merge branch 'main' into 2260-Implement-a-Memory-Leak-detection-Test

Signed-off-by: Victor Yanev <[email protected]>

# Conflicts:
#	packages/server/tests/acceptance/index.spec.ts

* Merge branch 'main' into 2260-Implement-a-Memory-Leak-detection-Test

Signed-off-by: Victor Yanev <[email protected]>

# Conflicts:
#	packages/server/tests/acceptance/index.spec.ts

* fix: request to github API

Signed-off-by: Victor Yanev <[email protected]>

* chore: add upload heap snapshots step in github workflow for acceptance and integration tests

Signed-off-by: Victor Yanev <[email protected]>

* fix: add `subject_type: file` to github request for adding comment on PR

Signed-off-by: Victor Yanev <[email protected]>

* fix: fix path in request to github API

Signed-off-by: Victor Yanev <[email protected]>

* chore: extract github request logic in new file - githubClient.ts

Signed-off-by: Victor Yanev <[email protected]>

* fix: path of upload-artifact action for uploading heap snapshots

Signed-off-by: Victor Yanev <[email protected]>

* fix: requests in githubClient.ts

Signed-off-by: Victor Yanev <[email protected]>

* fix: requests in githubClient.ts

Signed-off-by: Victor Yanev <[email protected]>

* fix: format message of github-actions[bot]

Signed-off-by: Victor Yanev <[email protected]>

* fix: format message of github-actions[bot]

Signed-off-by: Victor Yanev <[email protected]>

* chore: remove unused github context env variable

Signed-off-by: Victor Yanev <[email protected]>

* chore: formatting

Signed-off-by: Victor Yanev <[email protected]>

* chore: formatting

Signed-off-by: Victor Yanev <[email protected]>

* chore: formatting

Signed-off-by: Victor Yanev <[email protected]>

* fix: `formatBytes` returns `NaN undefined` when `0` is passed to it

Signed-off-by: Victor Yanev <[email protected]>

* fix: `formatBytes` returns `NaN undefined` when negative number is passed to it

Signed-off-by: Victor Yanev <[email protected]>

* fix: predicate for updating existing comment

Signed-off-by: Victor Yanev <[email protected]>

* fix: remove unused constant + temporary console logs

Signed-off-by: Victor Yanev <[email protected]>

* fix: make memory leak report more descriptive

Signed-off-by: Victor Yanev <[email protected]>

* chore: remove unnecessary console logs

Signed-off-by: Victor Yanev <[email protected]>

* chore: reduce MEMORY_LEAK_SNAPSHOT_THRESHOLD to 500 KB

Signed-off-by: Victor Yanev <[email protected]>

* fix: update logic for detecting memory leak based on heap size threshold

Signed-off-by: Victor Yanev <[email protected]>

* fix: add separate threshold for taking heap snapshots

Signed-off-by: Victor Yanev <[email protected]>

* fix: set `WRITE_SNAPSHOT_ON_MEMORY_LEAK` to be `false` by default

Signed-off-by: Victor Yanev <[email protected]>

* test: add warm-up phase to memory leak detection

Signed-off-by: Victor Yanev <[email protected]>

* chore: revert changes to rpc_batch1.spec.ts

Signed-off-by: Victor Yanev <[email protected]>

---------

Signed-off-by: Victor Yanev <[email protected]>
Signed-off-by: Eric Badiere <[email protected]>
Co-authored-by: Eric Badiere <[email protected]>
Signed-off-by: ebadiere <[email protected]>

* feat: deprecate `ETH_POPULATE_SYNTHETIC_CONTRACT_RESULTS` env (#2768)

* chore: remove env

Signed-off-by: nikolay <[email protected]>

* chore: modify test

Signed-off-by: nikolay <[email protected]>

---------

Signed-off-by: nikolay <[email protected]>
Signed-off-by: ebadiere <[email protected]>

* Bump versions for v0.53.0-rc1

Signed-off-by: Swirlds Automation <[email protected]>
Signed-off-by: ebadiere <[email protected]>

* feat: reused executetransaction for methods in sdkclient and improved… (#2776)

feat: reused executetransaction for methods in sdkclient and improved logging (#2749)

* fix: reused executeTransaction() in deleteFile() method

* fix: reworked executeTransaction() to accept executeAll

* feat: fix: reused executeTransaction() in fileCreate() method

* fix: removed check rate limit in executeGetTransactionRecord

* fix: fixed SDK HBAR limiter tests

* fix: reverted rework executeTransaction()

* fix: reworked formatRequestIdMessage

* feat: added executeAllTransaction() method

* fix: made shouldLimit optional in executeTransaction()

* Update packages/relay/src/lib/clients/sdkClient.ts

* fix: addressed comments

* fix: extracted handleExecuteAllError()

* fix: renamed handleExecuteAllError to getTransactionMetrics and reuse it in executeTransaction

---------

Signed-off-by: Logan Nguyen <[email protected]>
Signed-off-by: Logan Nguyen <[email protected]>
Co-authored-by: Logan Nguyen <[email protected]>
Co-authored-by: Victor Yanev <[email protected]>
Signed-off-by: ebadiere <[email protected]>

* Bump versions for v0.53.0-rc2

Signed-off-by: Swirlds Automation <[email protected]>
Signed-off-by: ebadiere <[email protected]>

* fix: reduce hbar limit only by operator fees (#2755)

* fix: reduce hbar limit only by operator fees

Signed-off-by: Ivo Yankov <[email protected]>

* chore: update expected values

Signed-off-by: Ivo Yankov <[email protected]>

* chore: fix code smells

Signed-off-by: Ivo Yankov <[email protected]>

* nit: re-trigger ci

Signed-off-by: Ivo Yankov <[email protected]>

* chore: addressing comments

Signed-off-by: Ivo Yankov <[email protected]>

* fix: hbar limit error handle

Signed-off-by: Ivo Yankov <[email protected]>

* fix: reduce test flakiness

Signed-off-by: Ivo Yankov <[email protected]>

* fix: reduce test flakiness

Signed-off-by: Ivo Yankov <[email protected]>

* nit: update comment

Signed-off-by: Ivo Yankov <[email protected]>

* fix: unit test mocks

Signed-off-by: Ivo Yankov <[email protected]>

* fix: update assertions and mocks

Signed-off-by: Ivo Yankov <[email protected]>

---------

Signed-off-by: Ivo Yankov <[email protected]>
Signed-off-by: Eric Badiere <[email protected]>
Co-authored-by: Eric Badiere <[email protected]>
Signed-off-by: ebadiere <[email protected]>

---------

Signed-off-by: Logan Nguyen <[email protected]>
Signed-off-by: ebadiere <[email protected]>
Signed-off-by: Victor Yanev <[email protected]>
Signed-off-by: nikolay <[email protected]>
Signed-off-by: Eric Badiere <[email protected]>
Signed-off-by: Swirlds Automation <[email protected]>
Signed-off-by: Logan Nguyen <[email protected]>
Signed-off-by: Ivo Yankov <[email protected]>
Co-authored-by: Logan Nguyen <[email protected]>
Co-authored-by: Victor Yanev <[email protected]>
Co-authored-by: Nikolay Atanasow <[email protected]>
Co-authored-by: Swirlds Automation <[email protected]>
Co-authored-by: Ivo Yankov <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
process Build, test and deployment-process related tasks
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Calculate the cost of an eth_sendRawTransaction based on callData byte size
4 participants