isoltest crashes on interactive update in `module_function_deployed.sol`
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 21
Description
## Steps to reproduce
Run `isoltest` on a specific test (given below), trying to update it interactively to add gas usage to expected output:
```sh
./test/tools/isoltest --no-smt -t "semanticTests/deployedCodeExclusion/module_function_deployed*" --enforce-gas-cost --enforce-gas-cost-min-value 0
```
First, `isoltest` asks if we want to update expectations. On update, the test is re-run with updated expectations and `isoltest` crashes:
```
Re-running test case...
semanticTests/deployedCodeExclusion/module_function_deployed.sol: Unhandled exception during test: /solidity/libsolidity/interface/CompilerStack.cpp(1703): Throw in function const CompilerStack::Contract &solidity::frontend::CompilerStack::contract(const std::string &) const
Dynamic exception type: boost::wrapexcept
std::exception::what: Contract "" not found.
[solidity::util::tag_comment*] = Contract "" not found.
```
Contributor guide
Research direction
Start by running the provided isoltest command against semanticTests/deployedCodeExclusion/module_function_deployed.sol and reproduce the interactive update crash. Then inspect libsolidity/interface/CompilerStack.cpp around line 1703 and the isoltest update path; done means updating expectations no longer raises the empty-contract “Contract "" not found” exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, solidity
- Domain
- compilers, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100