Releases: sc-forks/solidity-coverage
0.8.16
0.8.15
Speed up test runs when using viaIR
This release adds an irMinimum option which should improve execution speeds if you're generating coverage with solc's viaIR mode enabled. The plugin has handled viaIR for about a year but it runs more slowly in that setting because it has to search for execution traces across a wider range of opcodes. The performance hit is especially notable in solidity code that iterates hundreds of times in loops.
NOTE: Not all code will compile withirMinimum (you may get stack-too-deep errors unfortunately). But if yours does, this option should make things faster for you.
Usage
// .solcover.js
module.exports = {
irMinimum: true,
}What's Changed
New Contributors
Full Changelog: v0.8.14...v0.8.15
0.8.14
What's Changed
- Update solidity-parser/parser dep to
0.19.0for transient storage support by @cgewecke in #898 - fix: typos in documentation files by @leopardracer in #896
New Contributors
- @leopardracer made their first contribution in #896
Full Changelog: v0.8.13...v0.8.14
v0.8.13
🐛 Bug Fixes
This release fixes a bug that caused the plugin to error when used with hardhat-viem in combination with a forked network.
What's Changed
- Error if --solcoverjs passed but file is nonexistent by @area in #889
- Stop overwriting forking config in extendConfig by @cgewecke in #893
- Misc docs fixes
New Contributors
- @AndreMiras made their first contribution in #887
- @nnsW3 made their first contribution in #892
Full Changelog: v0.8.12...v0.8.13
v0.8.12
What's Changed
- Adds "work-around" support for the
hardhat-viemplugin. If you're using viem, run the coverage task with:SOLIDITY_COVERAGE=true npx hardhat coverage - Adds support for solc v0.4.x
- Fixes a bug where plugin crashed if the contract sources directory name contained a period.
- Fixes a bug where instrumentation failed if there was whitespace between
requirestatement and the terminating semi-colon
PRs
- Add extendConfig logic for hardhat-viem plugin by @cgewecke in #883
- Support solc v0.4.x by @cgewecke in #877
- Use fs.stat to check directory status by @cgewecke in #880
- Update hardhat dev dep to 2.22.2 (EDR) by @cgewecke in #881
- Tolerate whitespace between
requireand terminating;by @cgewecke in #884 - Document
extendConfigchanges in README by @cgewecke in #885
Full Changelog: v0.8.11...v0.8.12
v0.8.11
0.8.10
0.8.9
0.8.8
What's Changed
- Fix bug when instrumenting hardhat flattened contracts:
- Fix 0% coverage when using with hardhat-foundry & foundry.toml is present:
Install
npm install --save-dev solidity-coverage@latest
npx hardhat clean
Full Changelog: v0.8.7...v0.8.8
0.8.7
What's Changed
viaIR now allowed
This release (hopefully) fixes a long-running problem solidity-coverage had with solc's viaIR compilation mode - It's now possible to use it without any special configuration. (Please report any ongoing issues with this to issue #861)
If you've been using .solcover.js options like configureYulOptimizer and solcOptimizerDetails as a work around, you should remove them when upgrading. (Don't forget to run the hardhat clean task after updating any coverage config stuff).
--network no longer allowed
Sadly the ganache client has been deprecated. The coverage plugin never worked with its latest major version and the network flag only existed for its sake. Going forward, the network option throws an error notifying the user that coverage only uses the HardhatEVM network.
--sources cli option
You can now select a single file (or folder) at the command line to generate coverage for. This option should speed things up if you've been waiting for the plugin to instrument everything in a large project whenever you run the command.
$ npx hardhat coverage --sources MyFile.sol
$ npx hardhat coverage --sources MyFolder(Thanks so much @clauBv23 for adding this!)
Funding
OpenZeppelin has very generously funded recent work at solidity-coverage via DRIPS, a public goods protocol which helps you direct money to projects in your dependency tree. Thanks so much! ❤️
Links to relevant PRs
- Add command option to specify the source files to run the coverage on (#806) by @clauBv23 in #838
- Remove ganache-cli related code from API & tests by @cgewecke in #849
- Add missing
onPreCompilestage hook by @cgewecke in #851 - Enable coverage when
viaIRcompiler flag is true by @cgewecke in #854
Full Changelog: v0.8.6...v0.8.7