diff --git a/package/version b/package/version index 920c3bd51..61671068e 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.57 +0.1.58 diff --git a/pyproject.toml b/pyproject.toml index 7dcd15560..ebe464246 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.57" +version = "0.1.58" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index babaf4a09..e8dce1445 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.57' +VERSION: Final = '0.1.58' diff --git a/src/tests/integration/test-data/foundry-prove-skip-legacy b/src/tests/integration/test-data/foundry-prove-skip-legacy new file mode 100644 index 000000000..4f5b048ea --- /dev/null +++ b/src/tests/integration/test-data/foundry-prove-skip-legacy @@ -0,0 +1,265 @@ +AccountParamsTest.testDealConcrete() +AccountParamsTest.testDealSymbolic(uint256) +AccountParamsTest.testEtchConcrete() +AccountParamsTest.testEtchSymbolic(bytes) +AccountParamsTest.testFail_GetNonce_false() +AccountParamsTest.testFail_GetNonce_true() +AccountParamsTest.test_GetNonce_false() +AccountParamsTest.test_GetNonce_true() +AccountParamsTest.test_getNonce_unknownSymbolic(address) +AccountParamsTest.test_Nonce_ExistentAddress() +AccountParamsTest.test_Nonce_NonExistentAddress() +AccountParamsTest.testNonceSymbolic(uint64) +AddrTest.test_addr_false() +AddrTest.test_addr_symbolic(uint256) +AddrTest.test_addr_true() +AddrTest.testFail_addr_false() +AddrTest.testFail_addr_true() +AddrTest.test_notBuiltinAddress_symbolic(address) +AllowChangesTest.test() +AllowChangesTest.testAllow() +AllowChangesTest.testAllow_fail() +AllowChangesTest.testFailAllowCallsToAddress() +ArithmeticTest.test_decreasing_div(uint256,uint256) +ArithmeticTest.test_max1_broken(uint256,uint256) +ArithmeticTest.test_wdiv_rounding(uint256,uint256) +ArithmeticTest.test_wmul_increasing_gt_one(uint256,uint256) +ArithmeticTest.test_wmul_increasing_overflow(uint256,uint256) +ArithmeticTest.test_wmul_increasing_positive(uint256,uint256) +ArithmeticTest.test_wmul_increasing(uint256,uint256) +ArithmeticTest.test_wmul_rounding(uint256,uint256) +ArithmeticTest.test_wmul_wdiv_inverse(uint256,uint256) +ArithmeticTest.test_wmul_wdiv_inverse_underflow(uint256,uint256) +ArithmeticTest.test_wmul_weakly_increasing_positive(uint256,uint256) +AssertTest.test_assert_false() +AssertTest.testFail_assert_true() +AssertTest.testFail_expect_revert() +AssertTest.test_failing_branch(uint256) +AssertTest.test_revert_branch(uint256,uint256) +AssumeTest.test_assume_false(uint256,uint256) +AssumeTest.test_assume_staticCall(bool) +AssumeTest.test_assume_true(uint256,uint256) +AssumeTest.testFail_assume_false(uint256,uint256) +AssumeTest.testFail_assume_true(uint256,uint256) +AssumeTest.test_multi_assume(address,address) +BMCLoopsTest.test_countdown_concrete() +BroadcastTest.testDeploy() +BytesTypeTest.test_bytes32_fail(bytes32) +BytesTypeTest.test_bytes4_fail(bytes4) +BytesTypeTest.testFail_bytes32(bytes32) +BytesTypeTest.testFail_bytes4(bytes4) +ContractBTest.testCannotSubtract43() +ContractBTest.testFailSubtract43() +ContractBTest.testNumberIs42() +ContractTest.testExample() +EnvTest.testEnvAddress() +EnvTest.testEnvAddresseArray() +EnvTest.testEnvBool() +EnvTest.testEnvBoolArray() +EnvTest.testEnvBytes() +EnvTest.testEnvBytes32() +EnvTest.testEnvBytes32Array() +EnvTest.testEnvBytesArray() +EnvTest.testEnvInt() +EnvTest.testEnvIntArray() +EnvTest.testEnvString() +EnvTest.testEnvStringArray() +EnvTest.testEnvUInt() +EnvTest.testEnvUIntArray() +ExpectCallTest.testExpectRegularCall() +ExpectCallTest.testExpectStaticCall() +ExpectRevertTest.test_expectRevert_bytes4() +ExpectRevertTest.test_expectRevert_encodedSymbolic(address) +ExpectRevertTest.test_ExpectRevert_increasedDepth() +ExpectRevertTest.test_expectRevert_internalCall() +ExpectRevertTest.test_expectRevert_message() +ExpectRevertTest.test_expectRevert_returnValue() +ExpectRevertTest.test_expectRevert_true() +ExpectRevertTest.testFail_expectRevert_bytes4() +ExpectRevertTest.testFail_ExpectRevert_failAndSuccess() +ExpectRevertTest.testFail_expectRevert_false() +ExpectRevertTest.testFail_expectRevert_multipleReverts() +FfiTest.testffi() +FfiTest.testFFIFOO() +FfiTest.testFFIScript() +FfiTest.testFFIScript2() +FilesTest.testFailRemoveFile() +FilesTest.testReadWriteFile() +FilesTest.testReadWriteLine() +ForkTest.testActiveFork() +ForkTest.testAllRPCUrl() +ForkTest.testCreateFork() +ForkTest.testCreateForkBlock() +ForkTest.testCreateSelectFork() +ForkTest.testCreateSelectForkBlock() +ForkTest.testRollFork() +ForkTest.testRollForkId() +ForkTest.testRPCUrl() +ForkTest.testRPCUrlRevert() +GasTest.testInfiniteGas() +GetCodeTest.testGetCode() +InitCodeTest.test_init() +IntTypeTest.testFail_uint128(uint128) +IntTypeTest.testFail_uint256(uint256) +IntTypeTest.testFail_uint64(uint64) +IntTypeTest.test_uint128_fail(uint128) +IntTypeTest.test_uint128(uint128) +IntTypeTest.test_uint256_fail(uint256) +IntTypeTest.test_uint256(uint256) +IntTypeTest.test_uint64_fail(uint64) +IntTypeTest.test_uint64(uint64) +LoopsTest.sum_N(uint256) +LoopsTest.testIsNotPrime(uint256) +LoopsTest.testIsPrimeBroken(uint256,uint256) +LoopsTest.testIsPrimeOpt(uint256) +LoopsTest.testIsPrime(uint256,uint256) +LoopsTest.testMaxBroken(uint256[]) +LoopsTest.testMax(uint256[]) +LoopsTest.testNthPrime(uint256,uint256) +LoopsTest.testSortBroken(uint256[]) +LoopsTest.testSort(uint256[]) +LoopsTest.testSqrt(uint256) +LoopsTest.test_sum_10() +LoopsTest.test_sum_100() +LoopsTest.test_sum_1000() +LoopsTest.testSumToNBroken(uint256) +LoopsTest.testSumToN(uint256) +MockCallTest.testMockCall() +MockCallTest.testMockCalls() +MockCallTest.testMockCallValue() +OwnerUpOnlyTest.testFailIncrementAsNotOwner() +OwnerUpOnlyTest.testIncrementAsNotOwner() +OwnerUpOnlyTest.testIncrementAsOwner() +PlainPrankTest.testFail_startPrank_existingAlready() +PlainPrankTest.testFail_startPrank_internalCall() +PlainPrankTest.test_prank_zeroAddress_true() +PlainPrankTest.test_startPrank_true() +PrankTest.testAddAsOwner(uint256) +PrankTest.testAddStartPrank(uint256) +PrankTest.testFailAddPrank(uint256) +PrankTest.testSubtractAsTxOrigin(uint256,uint256) +PrankTest.testSubtractFail(uint256) +PrankTest.testSubtractStartPrank(uint256,uint256) +RecordLogsTest.testRecordLogs() +SafeTest.testWithdraw() +SafeTest.testWithdrawFuzz(uint96) +Setup2Test.testFail_setup() +SetUpDeployTest.test_extcodesize() +SetUpTest.testSetUpCalled() +SetUpTest.testSetUpCalledSymbolic(uint256) +SignTest.testSign() +SignTest.testSign_symbolic(uint256) +SnapshotTest.testSnapshot() +StoreTest.testAccesses() +StoreTest.testGasLoadColdVM() +StoreTest.testGasLoadWarmUp() +StoreTest.testGasLoadWarmVM() +StoreTest.testGasStoreColdVM() +StoreTest.testGasStoreWarmUp() +StoreTest.testGasStoreWarmVM() +StoreTest.testStoreLoad() +StoreTest.testStoreLoadNonExistent() +SymbolicStorageTest.testEmptyInitialStorage(uint256) +SymbolicStorageTest.testFail_SymbolicStorage1(uint256) +SymbolicStorageTest.testFail_SymbolicStorage(uint256) +ToStringTest.testAddressToString() +ToStringTest.testBoolToString() +ToStringTest.testBytes32ToString() +ToStringTest.testBytesToString() +ToStringTest.testIntToString() +ToStringTest.testUint256ToString() +UintTypeTest.testFail_uint104(uint104) +UintTypeTest.testFail_uint112(uint112) +UintTypeTest.testFail_uint120(uint120) +UintTypeTest.testFail_uint128(uint128) +UintTypeTest.testFail_uint136(uint136) +UintTypeTest.testFail_uint144(uint144) +UintTypeTest.testFail_uint152(uint152) +UintTypeTest.testFail_uint160(uint160) +UintTypeTest.testFail_uint168(uint168) +UintTypeTest.testFail_uint16(uint16) +UintTypeTest.testFail_uint176(uint176) +UintTypeTest.testFail_uint184(uint184) +UintTypeTest.testFail_uint192(uint192) +UintTypeTest.testFail_uint200(uint200) +UintTypeTest.testFail_uint208(uint208) +UintTypeTest.testFail_uint216(uint216) +UintTypeTest.testFail_uint224(uint224) +UintTypeTest.testFail_uint232(uint232) +UintTypeTest.testFail_uint240(uint240) +UintTypeTest.testFail_uint248(uint248) +UintTypeTest.testFail_uint24(uint24) +UintTypeTest.testFail_uint256(uint256) +UintTypeTest.testFail_uint32(uint32) +UintTypeTest.testFail_uint40(uint40) +UintTypeTest.testFail_uint48(uint48) +UintTypeTest.testFail_uint56(uint56) +UintTypeTest.testFail_uint64(uint64) +UintTypeTest.testFail_uint72(uint72) +UintTypeTest.testFail_uint80(uint80) +UintTypeTest.testFail_uint88(uint88) +UintTypeTest.testFail_uint8(uint8) +UintTypeTest.testFail_uint96(uint96) +UintTypeTest.test_uint104_fail(uint104) +UintTypeTest.test_uint104(uint104) +UintTypeTest.test_uint112_fail(uint112) +UintTypeTest.test_uint112(uint112) +UintTypeTest.test_uint120_fail(uint120) +UintTypeTest.test_uint120(uint120) +UintTypeTest.test_uint128_fail(uint128) +UintTypeTest.test_uint128(uint128) +UintTypeTest.test_uint136_fail(uint136) +UintTypeTest.test_uint136(uint136) +UintTypeTest.test_uint144_fail(uint144) +UintTypeTest.test_uint144(uint144) +UintTypeTest.test_uint152_fail(uint152) +UintTypeTest.test_uint152(uint152) +UintTypeTest.test_uint160_fail(uint160) +UintTypeTest.test_uint160(uint160) +UintTypeTest.test_uint168_fail(uint168) +UintTypeTest.test_uint168(uint168) +UintTypeTest.test_uint16_fail(uint16) +UintTypeTest.test_uint16(uint16) +UintTypeTest.test_uint176_fail(uint176) +UintTypeTest.test_uint176(uint176) +UintTypeTest.test_uint184_fail(uint184) +UintTypeTest.test_uint184(uint184) +UintTypeTest.test_uint192_fail(uint192) +UintTypeTest.test_uint192(uint192) +UintTypeTest.test_uint200_fail(uint200) +UintTypeTest.test_uint200(uint200) +UintTypeTest.test_uint208_fail(uint208) +UintTypeTest.test_uint208(uint208) +UintTypeTest.test_uint216_fail(uint216) +UintTypeTest.test_uint216(uint216) +UintTypeTest.test_uint224_fail(uint224) +UintTypeTest.test_uint224(uint224) +UintTypeTest.test_uint232_fail(uint232) +UintTypeTest.test_uint232(uint232) +UintTypeTest.test_uint240_fail(uint240) +UintTypeTest.test_uint240(uint240) +UintTypeTest.test_uint248_fail(uint248) +UintTypeTest.test_uint248(uint248) +UintTypeTest.test_uint24_fail(uint24) +UintTypeTest.test_uint24(uint24) +UintTypeTest.test_uint256_fail(uint256) +UintTypeTest.test_uint32_fail(uint32) +UintTypeTest.test_uint32(uint32) +UintTypeTest.test_uint40_fail(uint40) +UintTypeTest.test_uint40(uint40) +UintTypeTest.test_uint48_fail(uint48) +UintTypeTest.test_uint48(uint48) +UintTypeTest.test_uint56_fail(uint56) +UintTypeTest.test_uint56(uint56) +UintTypeTest.test_uint64_fail(uint64) +UintTypeTest.test_uint64(uint64) +UintTypeTest.test_uint72_fail(uint72) +UintTypeTest.test_uint72(uint72) +UintTypeTest.test_uint80_fail(uint80) +UintTypeTest.test_uint80(uint80) +UintTypeTest.test_uint88_fail(uint88) +UintTypeTest.test_uint88(uint88) +UintTypeTest.test_uint8_fail(uint8) +UintTypeTest.test_uint8(uint8) +UintTypeTest.test_uint96_fail(uint96) +UintTypeTest.test_uint96(uint96) diff --git a/src/tests/integration/test_foundry_prove.py b/src/tests/integration/test_foundry_prove.py index 6dd326c1b..0d74b95ef 100644 --- a/src/tests/integration/test_foundry_prove.py +++ b/src/tests/integration/test_foundry_prove.py @@ -111,6 +111,7 @@ def assert_or_update_k_output(k_file: Path, expected_file: Path, *, update: bool ALL_PROVE_TESTS: Final = tuple((TEST_DATA_DIR / 'foundry-prove-all').read_text().splitlines()) SKIPPED_PROVE_TESTS: Final = set((TEST_DATA_DIR / 'foundry-prove-skip').read_text().splitlines()) +SKIPPED_LEGACY_TESTS: Final = set((TEST_DATA_DIR / 'foundry-prove-skip-legacy').read_text().splitlines()) SHOW_TESTS = set((TEST_DATA_DIR / 'foundry-show').read_text().splitlines()) @@ -124,7 +125,11 @@ def test_foundry_prove( bug_report: BugReport | None, server: KoreServer, ) -> None: - if test_id in SKIPPED_PROVE_TESTS or (update_expected_output and not test_id in SHOW_TESTS): + if ( + test_id in SKIPPED_PROVE_TESTS + or (not use_booster and test_id in SKIPPED_LEGACY_TESTS) + or (update_expected_output and not test_id in SHOW_TESTS) + ): pytest.skip() # When