Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/coinfabrik/on-ink-integration-tests
This repository provides a comprehensive review of the ink! integration and end-to-end testing environments. It includes detailed test cases and proposed enhancements for each exposed function.
https://github.com/coinfabrik/on-ink-integration-tests
blockchain-testing continuous-integration end-to-end-testing ink ink-tests integration-testing quality-assurance smart-contracts
Last synced: about 6 hours ago
JSON representation
This repository provides a comprehensive review of the ink! integration and end-to-end testing environments. It includes detailed test cases and proposed enhancements for each exposed function.
- Host: GitHub
- URL: https://github.com/coinfabrik/on-ink-integration-tests
- Owner: CoinFabrik
- License: mit
- Created: 2023-08-22T15:39:35.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-12-06T13:20:46.000Z (about 1 year ago)
- Last Synced: 2024-02-02T05:24:50.036Z (12 months ago)
- Topics: blockchain-testing, continuous-integration, end-to-end-testing, ink, ink-tests, integration-testing, quality-assurance, smart-contracts
- Language: Rust
- Homepage:
- Size: 3.38 MB
- Stars: 1
- Watchers: 3
- Forks: 1
- Open Issues: 51
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# On ink! integration tests
![https://img.shields.io/badge/license-MIT-green](https://img.shields.io/badge/license-MIT-green)
We have discovered that integration tests for ink! contracts lack some of the functionalities found in E2E testing.
Integration tests run significantly faster than E2E tests. If a full range of functionalities were provided, it could reduce testing and QA times.
We noticed these missing functionalities in integration tests while developing fuzzing detectors for our vulnerability analyzer, Scout. During this work, we identified 2 functions with implementation differences, default_account() and set_contract_storage(), and we also observed 3 functions which were unimplemented for integration tests. This initial identification was observed in our grant application form for the grant #1875.
Ideally, each test in E2E should have its counterpart in Integration. This implies that the set of tests per function is unique and should be replicated in both environments. This idea will be reviewed in the next milestone, as achieving such a level of thoroughness is not planned for this instance.
To run a test, navigate to the corresponding directory and run `cargo test` for the off-chain test, or `cargo test --features e2e-tests` for the on-chain, E2E test. You'll need to already have Rust set up on your system.