Skip to main content

Test generation for Solidity in Foundry format (https://github.com/foundry-rs/foundry).

Project description

solidity_testgen

Test generation for Solidity in Foundry format (https://github.com/foundry-rs/foundry)

Example of Contract under Test:

contract C {

    uint x;

	function f(uint _x) public {}
	function g(uint _x, uint _y) public {}
	function w(uint _x) public {}


	function i(uint _x) internal {}
}

Expected results of Test Generation:

import "forge-std/Test.sol";
import "../src/contract_under_test.sol";

contract contract_under_test_Test is Test {
	C c0, c1, c2, ... cN;

	function setUp() public {
		c0 = new C(); c1 = new C(); ... cN = new C();
	}
	function test_0() public {
		c0.f();
		c0.g();
		....
		c0.w();
	}
........
    function test_n() public {
		cN.g();
		cN.w();
		....
		cN.w();
	}
}

Dependencies / Setup

Also don't forget to get your user permission to interact with docker: https://stackoverflow.com/questions/48957195/how-to-fix-docker-got-permission-denied-issue

After dependencies are installed, you can install the package by calling:

sudo pip3 install solTg

After this, solTg can be used from any directory, calling the command:

solTg -i <input file/directory with .sol files>

Or you can run it locally, it is needed to install all the package requirements first, by calling

pip install -r requirements.txt

run test generation for specified sol-file with Python

solTg -i ./src/Loop_1.sol

You can also give specific output dir:

solTg -i folder_path -o ../testgen_output

If project is to be run from the repo, call:

python3 ./solTg/RunAll.py -i <some file/dir>

Run forge project:

build project

forge build

run all tests

forge test

run specified test

forge test --match Loop*

Generate a report:

python3 ./scripts/ReportBuilder.py -i testgen_dir

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

soltg-0.2.1.tar.gz (23.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

soltg-0.2.1-py3-none-any.whl (23.1 MB view details)

Uploaded Python 3

File details

Details for the file soltg-0.2.1.tar.gz.

File metadata

  • Download URL: soltg-0.2.1.tar.gz
  • Upload date:
  • Size: 23.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for soltg-0.2.1.tar.gz
Algorithm Hash digest
SHA256 0f57fc94e4b028fdf4e3a3315f9e448afce426e7967dd3a74cb2b0f54e738798
MD5 e9402548156baed2d820bc9b12b66983
BLAKE2b-256 b9bcc8eb37a836e5cf75778b9645be39ec39ba2411cd401f60a4c2b875eaabeb

See more details on using hashes here.

File details

Details for the file soltg-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: soltg-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 23.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for soltg-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 50b726fdebeea09996e0f199fcb81b6c8c8ac12dd9f9ad01b21ec9a9edaa8ca5
MD5 3c017762d9bcaa40e654eb96779c476c
BLAKE2b-256 c8b87cda128613fb0b11d10ca1933dbc9c11b8822b573bf952d67b5a66548518

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page