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: Move l1 tests to foundry Part-1 #26

Merged
merged 35 commits into from
Sep 28, 2023

Conversation

benceharomi
Copy link
Contributor

@benceharomi benceharomi commented Sep 18, 2023

  • added foundry to the ethereum dir
  • created the solpp hardhat task that runs the preprocessing (it is required before running the forge tests)
  • added the test:foundry command to the package.json, it runs the:
    • preprocessing (hardhat solpp) that generates the /cache/solpp-generated-contracts dir
    • foundry tests (forge test) that uses the generated files as source files and runs the tests in the /test/foundry dir
  • migrated hardhat tests to foundry:
    • allow_list_test.spec.ts
    • diamond_cut_test.spec.ts
    • unsafe_bytes_test.spec.ts
    • executor_test.spec.ts
  • added foundry testing to the GitHub pipeline

@benceharomi benceharomi force-pushed the bh-EVM-216-move-l1-tests-to-foundry branch from 687290b to 67ada61 Compare September 18, 2023 13:17
@benceharomi benceharomi force-pushed the bh-EVM-216-move-l1-tests-to-foundry branch from 67ada61 to df9bfb0 Compare September 18, 2023 16:19
@benceharomi benceharomi marked this pull request as ready for review September 18, 2023 17:43
@benceharomi benceharomi changed the title Move l1 tests to foundry Move l1 tests to foundry Part-1 Sep 18, 2023
@benceharomi benceharomi changed the title Move l1 tests to foundry Part-1 test: Move l1 tests to foundry Part-1 Sep 20, 2023
Copy link
Member

@vladbochok vladbochok left a comment

Choose a reason for hiding this comment

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

❤️

ethereum/package.json Outdated Show resolved Hide resolved
@vladbochok
Copy link
Member

@benceharomi Please make PR in boojum-integration branch instead

@benceharomi benceharomi changed the base branch from dev to boojum-integration September 27, 2023 12:49
@benceharomi benceharomi force-pushed the bh-EVM-216-move-l1-tests-to-foundry branch from 4facf0a to 008b905 Compare September 27, 2023 13:19
@vladbochok vladbochok merged commit 6101b93 into boojum-integration Sep 28, 2023
8 checks passed
@vladbochok vladbochok deleted the bh-EVM-216-move-l1-tests-to-foundry branch September 28, 2023 03:09
benceharomi added a commit that referenced this pull request Nov 17, 2023
Co-authored-by: Marcin M <[email protected]>
Co-authored-by: Dennis <[email protected]>
Co-authored-by: Shahar Kaminsky <[email protected]>
Co-authored-by: Yury Akudovich <[email protected]>
jrchatruc referenced this pull request in lambdaclass/era-contracts Jan 16, 2024
* A new era

but because it’s a credibly neutral mechanism

* Logo + disclaimer.

* chore(security): add workflow for leaked secrets monitoring

* Update README.md

* Remove Apache license.

* Updating to latest in dev.

* Fair Onboarding Alpha.

* Add comment on EIP-1352

* Updating mirror

* Updating mirror.

* Update README.md

* Updating mirror.

Used 663fede669db3ba66f0941985db304e8bca881e4.

* mirror sync to 7381458849b42

* Mirror to de404a390af2aa37ad23b2a543c5f1b408ca84bf (#11)

* added missing file to mirror  de404a390af2aa37ad (#12)

* fix: bump hh deploy and solc versions (#13)

* Add FOS Templates (#15)

* chore: Syncs common workflows from the template into dev (#16)

* chore: Syncs common workflows from the template into main (#17)

* Syncing dev with main (#26)

Co-authored-by: Marcin M <[email protected]>
Co-authored-by: Dennis <[email protected]>
Co-authored-by: Shahar Kaminsky <[email protected]>
Co-authored-by: Yury Akudovich <[email protected]>

* Boojum integration (#35)

Co-authored-by: Marcin M <[email protected]>
Co-authored-by: Dennis <[email protected]>
Co-authored-by: Shahar Kaminsky <[email protected]>
Co-authored-by: Vlad Bochok <[email protected]>
Co-authored-by: koloz193 <[email protected]>
Co-authored-by: AntonD3 <[email protected]>

* chore: Upgrade to Node v18 (#20)

* feat: Adding compile CI (#21)

* feat: testing CI job (#38)

* ci: testing added

* test: temporarily commenting out failing tests

* ci: cleaned up + added testing

* fix: CI syntax

* ci: added missing "needs" statement

* ci: added missing node-setup

* ci: added missing artifacts for cacheing

* test: xdescribe and xit instead of commenting

* chore: formatting

* Testing framework for bootloader (#14)

* added missing file to mirror  de404a390af2aa37ad (#12)

* POC - works

* test infra creation

* splitting tracers to separate files

* moved hooks to separate file

* larger refactor - nicer error messages

* syncing with newest version

* more bootloader tests and small error fixes

* more tests

* Example with transaction

* small fixes

* small rename

* review and removed dependency on ZKSYNC_HOME

* cargo lock

* updated to public zksync-era

* moved the placeholder so that the generated bootloader code doesn't change

* review

* fix yarn lock

* compiles (currently depending on a local branch)

* remove vscode config

* added bootloader test to CI

* changing CI

* experimenting

* fix

* review feedback

* ci typo

* added bootloader build to cache

* feat: linting CI job (matter-labs#40)

* feat: linting

* chore: PR template updated

* fix: import order

* lint: solidity compiler-version 0.8.0

* lint: solidity lint config updated to ignore constructors

* docs(readme): updated

* lint(*.ts): fixes

* fix: accidental change

* chore: include js files in formatting

* chore: change command name back to compile-yul

* chore: typescript rollback

* ci: test_bootloader needs linting

* lint: new files linted

* chore(0.json): code formatting

* chore: unneeded prettierignore

* docs(bootloader-test): updated to use new command

* chore: test:bootloader

* lint: markdown linting added

* chore: downgraded markdownlint to avoid dependency with unwanted license

* chore: lint:fix command added

* docs: lint fix added PR template

* lint: reverted formatting of openzeppelin contracts

* fix: yarn command fixes

* lint: openzeppelin dir ignored from formatting/linting

* lint: newline at EOF of ignore files

* feat: calculate-hashes command to detect contract changes (#37)

* feat: calculate-hashes

* fix: build-yul command updated

* chore: CI workflow renamed

* feat(calculate-hashes): "--check-only" flag added

* ci: calculate-hashes added to pipeline

* modifying hash to test calculate-hashes in CI

* Revert "modifying hash to test calculate-hashes in CI"

This reverts commit 639650b3dfb4fcc7f64e75f316aa6262976c4c3f.

* chore: bytecodeHash renamed

* chore: importing and typo

* feat: revert command renames

* chore: major calculate-hashes refactor

* ci: check hashes into separate job

* ci: yarn cacheing

* fix: absolutePath

* fix: hash updated

* fix: SHA256 hash updated

* docs: readme updated

* chore: changed hashes to array

* chore: SystemContractsHashes updated

* lint(calculate-hashes): format+lint

* docs: command name typo

* fix: calculate hashes updated

* chore: automatic contracts details generation

* chore: changed the order of json properties

* feat: use boojum-integration branch of in-memory node for testing CI (matter-labs#43)

* ci: using boojum branch of test node

* test: reenable temporarily disabled tests

* ci: test node in background

* ci: caching for era-test-node

* chore: downgrading hardhat version to fix test execution

* ci: ci to run on dev and main push

* chore: set hardhat to fix v2.16.0

* ci: print era_test_node logs

* ci: change tag to commit SHA of dependency

* ci: use era-test-node-action for the testing CI (matter-labs#50)

* ci: using era-test-node-action

* ci: use boojum release of era-test-node

* ci: releaseTag fix

* ci: fix releaseTag

* ci: era-test-node-action v0.1.3

* updated hh version and solidity version (matter-labs#52)

* updated hh version and solidity version

* removed carrot

* formatting

* fixed compiler versions

* updated yul compiler version

* update hash file

* changed OZ contracts back

* update hash file

* changed compiler version

* bumped utils compiler version and hashes

* Set of fixes for boojum integration (matter-labs#53)

* apply max system contracts address

* add comment

* Allow only deployments for L1->L2

* fail to publish timesstamp

* remove trailing comma

* correct require for L1Messenger

* fix eip1559

* charge correctly for the memory overhead

* check that we have enough gas for postop

* fix comment in L1Messenger

* remove redundant check

* safeAdd for refunds

* compilation fixes + EOA work correctly on delegatecall

* correctly charge for gas overhead

* ensure that upgrade tx always succeeds

* add force deploy for keccak256

* max precompile address fix

* correct refund gas for L1 gas

* fix shifting

* correct meta calculation

* nits

* prev hash

* fix some nits

* remove unneeded casting

* fix lint

* update hashes

* update hashes

* Update bootloader/bootloader.yul

Co-authored-by: Vlad Bochok <[email protected]>

* update max precompile address constant

* Only the deployer can increment the deployment nonce

* fix lint

* add some tests

---------

Co-authored-by: Vlad Bochok <[email protected]>

* chore: synchronise linting rules of repositories (matter-labs#49)

* chore: command name changes

* lint(calculate-hashes): fix

* fix: lint:md command

* chore: package.json commands alphabetical order

* lint: using @matterlabs/eslint-config-typescript and "@matterlabs/prettier-config

* style: prettier:fix

* lint: lint:fix

* Revert "lint: lint:fix"

This reverts commit 15993b2d2ddfce0d876966d170e781645ff66cf9.

* lint: eslint rules turned off

* lint: lint:fix with new rules

* chore: .eslintignore removed

* chore: create githooks to check formatting and linting  (matter-labs#56)

* chore: pre-commit and pre-push hooks added

* docs: removed yarn lint from PR template

* Revert "chore: package.json commands alphabetical order"

This reverts commit e39a52c0b764a6ef40cfdc0fded9e068cceba1ce.

* fix hardhat

* fmt

* ignore invalid field

* Allow ts-ignore (matter-labs#59)

allow ts ignore

* nits + use the same config as on L1

* update hashes

* update hashes

* Use compatible error codes with the previous version (matter-labs#64)

* use compatible error codes with the previous version

* update hashes

* chore: normalise file path (#18)

refactor: normalize file path

Co-authored-by: Bence Haromi <[email protected]>

* ci: label-external-contributions workflow added

* ci: extension changed to yaml

* make scripts work for upgrade

* docs(readme): update zksync-era link (matter-labs#48)

docs: update docs

* docs: add Mirror link (matter-labs#51)

feat(docs): Add Mirror hyperlink

* docs: fix Discord link (matter-labs#55)

Update README.md - Fix Discord Link

Co-authored-by: Bence Haromi <[email protected]>

* docs: zk credo added

* remove admin and use governance owner as admin instead (matter-labs#85)

* correct todo

* fix lint

* fix system context

* upd bootloader hash

* ci: add workflow to label external-contributions (matter-labs#91)

* chore: moved files into system folder

* Remove allow list (matter-labs#77)

Co-authored-by: Stanislav Breadless <[email protected]>

* Upgrade zksolc version to 1.3.17 (matter-labs#97)

* Fix bridge upgrade script (matter-labs#103)

* Disallow L2 weth upgrade (matter-labs#107)

* Testing infrastructure improvements (matter-labs#82)

* System contracts test preprocessing mode

* Mock dependencies, event writer asm contract test, refactoring

* lint fix

* Small refactoring

* Change approach to use the test node

* Add docs, comments

* lint readme

* Fix hashes

* Regenerate yarn.lock to fix lints

* lint:fix

* Fix lints

* Restore lost tests

* Fix lints

* Restore yarn.lock from dev

* Update caches in workflows

* Try to disable lint cache

* Restore lint cache

* Cache contracts-preprocessed

* try to debug lint

* Regenerate yarn.lock from dev

* Restore correct deps

* Update lock

* Proposed improvements/fixes

* Use fast-glob instead glob

* Update bootloader_test artifact path

* Proposed improvements, update hashes

* Implement some fixes and improvements

* Fix lints

* Update zksync-era in bootloader tests

* Fix imports

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

* Update contracts/test-contracts/MockContract.sol

Co-authored-by: Vlad Bochok <[email protected]>

* Fix test infra

* data -> input mock contract

* Update SC hashes

* Update zksync-era in bootloader/test_infra

* Update again

---------

Signed-off-by: Danil <[email protected]>
Co-authored-by: Danil <[email protected]>
Co-authored-by: Vlad Bochok <[email protected]>

* Scripts for governance (matter-labs#92)

Co-authored-by: Vlad Bochok <[email protected]>

* chore: merge contracts and system-contracts repos (matter-labs#98)

Co-authored-by: Stanislav Bezkorovainyi <[email protected]>
Co-authored-by: Vlad Bochok <[email protected]>

* chore: fixed migrate-governance file path

* chore: removed process.ts

* chore: added era_test_node.log to gitignore

* sync with main (matter-labs#116)

Co-authored-by: Shahar Kaminsky <[email protected]>
Co-authored-by: Maksym <[email protected]>
Co-authored-by: Pascal Marco Caversaccio <[email protected]>
Co-authored-by: Igor Aleksanov <[email protected]>
Co-authored-by: Marcin M <[email protected]>
Co-authored-by: Dennis <[email protected]>
Co-authored-by: Yury Akudovich <[email protected]>
Co-authored-by: Stanislav Bezkorovainyi <[email protected]>
Co-authored-by: Vlad Bochok <[email protected]>
Co-authored-by: koloz193 <[email protected]>
Co-authored-by: AntonD3 <[email protected]>
Co-authored-by: Jack <[email protected]>
Co-authored-by: DKlupov <[email protected]>
Co-authored-by: Salad <[email protected]>
Co-authored-by: MartinKong1990 <[email protected]>

* Revert "sync with main (matter-labs#116)" (matter-labs#117)

* ci: system-contracts-ci removed not needed caches

* AllowList removal upgrade preparation

* remove remnants of the allowlist

* rename file

* Update zksolc and ecrecover pricing

* fix typescript

* feat(tests): moved Merkle tests to foundry (matter-labs#132)

* feat(tests): migrated verifier tests to foundry (matter-labs#134)

* chore(tests): Moved priority queue tests from hardhat to foundry (matter-labs#135)

* chore(test): Moved transaction validator tests to foundry (matter-labs#151)

* test: unchecked math test (matter-labs#147)

* L2EthToken Tests (matter-labs#152)

Co-authored-by: Uacias <[email protected]>

* ci: prepare workflow for release contracts (matter-labs#163)

* ci: prepare workflow for release contracts

* Fix lint in the yaml file (matter-labs#166)

---------

Signed-off-by: Danil <[email protected]>
Co-authored-by: Shahar Kaminsky <[email protected]>
Co-authored-by: Maksym <[email protected]>
Co-authored-by: Pascal Marco Caversaccio <[email protected]>
Co-authored-by: Igor Aleksanov <[email protected]>
Co-authored-by: Marcin M <[email protected]>
Co-authored-by: Dennis <[email protected]>
Co-authored-by: Yury Akudovich <[email protected]>
Co-authored-by: Bence Haromi <[email protected]>
Co-authored-by: Stanislav Bezkorovainyi <[email protected]>
Co-authored-by: Vlad Bochok <[email protected]>
Co-authored-by: koloz193 <[email protected]>
Co-authored-by: AntonD3 <[email protected]>
Co-authored-by: Jack <[email protected]>
Co-authored-by: Bence Haromi <[email protected]>
Co-authored-by: DKlupov <[email protected]>
Co-authored-by: Salad <[email protected]>
Co-authored-by: MartinKong1990 <[email protected]>
Co-authored-by: Thomas Nguy <[email protected]>
Co-authored-by: Danil <[email protected]>
Co-authored-by: Neo <[email protected]>
Co-authored-by: Uacias <[email protected]>
@vladbochok vladbochok restored the bh-EVM-216-move-l1-tests-to-foundry branch April 14, 2024 13:55
IAvecilla pushed a commit that referenced this pull request Sep 10, 2024
koloz193 pushed a commit that referenced this pull request Dec 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants