solidity/test
Martin Blicha 12bca24774 [SMTChecker] Use path condition when creating CHC targets
Without path condition, verification targets created inside ternary
operator ignore the condition of the operator inside the branches.
This led to false positives.

Further updates:

- Function calls should consider the conditions under which they are
called, otherwise the analysis may report false positives.
The fix proposed here is to add the current path condition to the edge
that propagates error from a function call.

- Increment error index after function call

This is necessary for the analysis of the ternary operator to work
correctly. No information should leak from a function call inside a
ternary operator in the first branch to the second branch, including
whether or not an error would have occured in the first branch.

However, for the execution that continues after the function call,
we still need to ensure that under the current path condition
the error has not occurred in that function call.

It would be better to isolate the analysis of the branches to separate
clauses, but I do not see an easy way for that now. In this way, even
though the function call in first branch is included in the clause of
the second branch, no information leaks.

- Additonal test for ternary operator

This tests the behaviour of SMTChecker on ternary operator with function
calls inside both branches. Specifically, it tests that SMTChecker
successfully detects a violation of a verification target in the second
branch when the same target is present also in the first branch, but
there it cannot be triggered because of the operator's condition.
2023-04-21 18:56:34 +02:00
..
benchmarks Add snark verifier benchmark test 2023-01-12 11:59:33 +01:00
cmdlineTests [SMTChecker] Use path condition when creating CHC targets 2023-04-21 18:56:34 +02:00
compilationTests attempt rebase, fix free function, fix check errors 2022-04-04 22:49:12 +08:00
contracts Improve FunctionSelector helpers 2022-09-27 17:58:32 +02:00
evmc Upgrade to evmc 10.0.0 2022-11-09 11:45:40 +01:00
externalTests Merge pull request #14098 from ethereum/workaround-oz-ext-test-2 2023-04-06 15:53:33 +02:00
formal added optimization. shl comes out from being distributed over and 2022-11-11 01:16:14 +05:30
libevmasm test: some tests for push0 2023-04-12 00:10:24 +02:00
liblangutil Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
libsolidity [SMTChecker] Use path condition when creating CHC targets 2023-04-21 18:56:34 +02:00
libsolutil Allow running Eldarica from the command line 2022-11-22 21:16:45 +01:00
libyul test: some tests for push0 2023-04-12 00:10:24 +02:00
scripts Fix pylint warning 2022-08-29 11:50:29 +02:00
solc group unsupported warnings 2023-03-15 17:06:06 +01:00
tools Update ubuntu ossfuzz references 2023-04-19 00:18:11 +02:00
yulPhaser Allow running Eldarica from the command line 2022-11-22 21:16:45 +01:00
.solhint.json
.solhintignore
buglist_test_vectors.md
buglistTests.js
CMakeLists.txt Allow running Eldarica from the command line 2022-11-22 21:16:45 +01:00
cmdlineTests.sh Report when no contracts to compile 2022-12-19 13:47:03 +01:00
Common.cpp Add experimental EOF options for CLI and Standard JSON. 2022-11-23 19:53:44 +01:00
Common.h Add experimental EOF options for CLI and Standard JSON. 2022-11-23 19:53:44 +01:00
CommonSyntaxTest.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
CommonSyntaxTest.h
docsCodeStyle.sh Use consistent syntax for Bash function declarations 2021-11-08 16:34:07 +01:00
EVMHost.cpp Fix calldata handling during creation in EVMHost. 2023-04-18 12:53:50 +02:00
EVMHost.h EVMHost: Add "support" for Blake2f 2023-04-15 13:17:02 +02:00
ExecutionFramework.cpp test: Support tracking gas refunds 2022-11-10 22:00:38 +01:00
ExecutionFramework.h Update EVMHost to match EVMC10 changes 2022-11-09 21:27:40 +01:00
externalTests.sh External test for Gnosis Protocol v2 2022-06-08 20:23:39 +02:00
FilesystemUtils.cpp Fix compilation error. 2022-06-15 11:14:50 +02:00
FilesystemUtils.h Ensure that native path separators are always used in symlink targets on Windows 2021-09-27 13:14:10 +02:00
InteractiveTests.h Tests. 2022-03-02 16:42:28 +01:00
localeTest.sh A script and CI job for testing the compiler with different locales 2022-03-14 09:08:01 +01:00
lsp.py Keep test/lsp.py working when not on a tty 2023-03-19 16:09:42 -04:00
Metadata.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
Metadata.h Add a version of isValidMetadata() that accepts already parsed metadata 2021-09-14 13:44:04 +02:00
pyscriptTests.py
soltest.cpp Add experimental EOF options for CLI and Standard JSON. 2022-11-23 19:53:44 +01:00
stopAfterParseTests.sh Use consistent syntax for Bash function declarations 2021-11-08 16:34:07 +01:00
TestCase.cpp Replace all locale-dependent operations with locale-agnostic counterparts 2022-03-07 17:23:08 +01:00
TestCase.h Add experimental EOF options for CLI and Standard JSON. 2022-11-23 19:53:44 +01:00
TestCaseReader.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
TestCaseReader.h