Skip to content

Commit 9e60d4c

Browse files
committed
from #573: add integration test for symbolic constructor
1 parent 532f404 commit 9e60d4c

9 files changed

+7482
-0
lines changed

src/tests/integration/conftest.py

+2
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,14 @@ def foundry(foundry_root_dir: Path | None, tmp_path_factory: TempPathFactory, wo
7777
str(TEST_DATA_DIR / 'lemmas.k'),
7878
str(TEST_DATA_DIR / 'cse-lemmas.k'),
7979
str(TEST_DATA_DIR / 'pausability-lemmas.k'),
80+
str(TEST_DATA_DIR / 'symbolic-bytes-lemmas.k'),
8081
],
8182
'imports': [
8283
'LoopsTest:SUM-TO-N-INVARIANT',
8384
'ArithmeticCallTest:CSE-LEMMAS',
8485
'CSETest:CSE-LEMMAS',
8586
'PortalTest:PAUSABILITY-LEMMAS',
87+
'ImmutableVarsTest:SYMBOLIC-BYTES-LEMMAS',
8688
],
8789
}
8890
),

src/tests/integration/test-data/foundry-fail

+1
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ AssertTest.test_failing_branch(uint256)
55
AssertTest.test_revert_branch(uint256,uint256)
66
AssumeTest.test_assume_false(uint256,uint256)
77
AssumeTest.testFail_assume_false(uint256,uint256)
8+
ImmutableVarsTest.test_run_deployment(uint256)

src/tests/integration/test-data/foundry-prove-all

+1
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ FreshCheatcodes.test_freshSymbolicWord()
138138
GasTest.testInfiniteGas()
139139
GasTest.testSetGas()
140140
GetCodeTest.testGetCode()
141+
ImmutableVarsTest.test_run_deployment(uint256)
141142
LabelTest.testLabel()
142143
LoopsTest.sum_N(uint256)
143144
LoopsTest.testIsNotPrime(uint256)

src/tests/integration/test-data/foundry-prove-skip

+1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ FreshCheatcodes.testFail_int128()
7979
FreshCheatcodes.test_freshUints(uint8)
8080
GasTest.testInfiniteGas()
8181
GetCodeTest.testGetCode()
82+
ImmutableVarsTest.test_run_deployment(uint256)
8283
LoopsTest.testIsNotPrime(uint256)
8384
LoopsTest.testIsPrime(uint256,uint256)
8485
LoopsTest.testIsPrimeBroken(uint256,uint256)

src/tests/integration/test-data/foundry-prove-skip-legacy

+1
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ FreshCheatcodes.test_freshSymbolicWord()
128128
GasTest.testInfiniteGas()
129129
GasTest.testSetGas()
130130
GetCodeTest.testGetCode()
131+
ImmutableVarsTest.test_run_deployment(uint256)
131132
InitCodeTest.test_init()
132133
IntTypeTest.testFail_uint128(uint128)
133134
IntTypeTest.testFail_uint256(uint256)

src/tests/integration/test-data/foundry-show

+1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ AssertTest.test_revert_branch(uint256,uint256)
88
AssumeTest.test_assume_false(uint256,uint256)
99
AssumeTest.testFail_assume_false(uint256,uint256)
1010
AssumeTest.testFail_assume_true(uint256,uint256)
11+
ImmutableVarsTest.test_run_deployment(uint256)
1112
SetUpDeployTest.test_extcodesize()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// SPDX-License-Identifier: UNLICENSED
2+
pragma solidity =0.8.13;
3+
4+
import "forge-std/Test.sol";
5+
import "kontrol-cheatcodes/KontrolCheats.sol";
6+
7+
contract ImmutableVarsContract {
8+
uint256 public immutable y;
9+
10+
constructor(uint256 _y) {
11+
y = _y;
12+
}
13+
}
14+
15+
contract ImmutableVarsTest is Test {
16+
function test_run_deployment(uint256 x) public returns (bool) {
17+
ImmutableVarsContract c = new ImmutableVarsContract(x);
18+
assert(c.y() == 85);
19+
}
20+
}

0 commit comments

Comments
 (0)