Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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)


With a properly flattened anvil, quality tools can be built.

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.