From 984876f4178cad0c22386924738905a44519eef5 Mon Sep 17 00:00:00 2001 From: JaredBorders Date: Thu, 4 Apr 2024 15:52:46 -0400 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20test=20ghost=5Fadd()=20and=20ghostA?= =?UTF-8?q?ddResult?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/invariant/Overflow.t.sol | 27 +++++++++++---------------- test/invariant/handlers/Handler.sol | 13 ++++++------- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/test/invariant/Overflow.t.sol b/test/invariant/Overflow.t.sol index d4d0b6d..844211a 100644 --- a/test/invariant/Overflow.t.sol +++ b/test/invariant/Overflow.t.sol @@ -1,10 +1,9 @@ pragma solidity >=0.8.19; -import {DSTest} from "forge-std/Test.sol"; -import "forge-std/InvariantTest.sol"; -import {Handler, BaseInt128Handler} from "./handlers/Handler.sol"; +import {Test} from "forge-std/Test.sol"; +import {Handler, BaseInt128Handler, BaseInt128} from "./handlers/Handler.sol"; -contract OverflowInvariant is DSTest { +contract OverflowInvariant is Test { BaseInt128Handler public baseInt128Handler; Handler public handler; @@ -12,23 +11,19 @@ contract OverflowInvariant is DSTest { baseInt128Handler = new BaseInt128Handler(); handler = new Handler({_baseInt128Handler: baseInt128Handler}); - // bytes4[] memory selectors = new bytes4[](6); - // selectors[0] = Handler.deposit.selector; - // selectors[1] = Handler.withdraw.selector; - // selectors[2] = Handler.sendFallback.selector; - // selectors[3] = Handler.approve.selector; - // selectors[4] = Handler.transfer.selector; - // selectors[5] = Handler.transferFrom.selector; - // //selectors[6] = Handler.forcePush.selector; + bytes4[] memory selectors = new bytes4[](1); + selectors[0] = Handler.ghost_add.selector; + //selectors[n] = Handler.forcePush.selector; - // targetSelector( - // FuzzSelector({addr: address(handler), selectors: selectors}) - // ); + targetSelector( + FuzzSelector({addr: address(handler), selectors: selectors}) + ); targetContract(address(handler)); } function invariant_Int128_BaseInt128_Interactions() public { - assertEq(true, true); + BaseInt128 result = baseInt128Handler.ghostAddResult(); + assertGe(result.unwrap(), 0); } } diff --git a/test/invariant/handlers/Handler.sol b/test/invariant/handlers/Handler.sol index 98354d7..5243598 100644 --- a/test/invariant/handlers/Handler.sol +++ b/test/invariant/handlers/Handler.sol @@ -15,8 +15,10 @@ import { contract BaseInt128Handler is Test { using InteractionsBaseInt128 for BaseInt128; - function add(BaseInt128 x, BaseInt128 y) public view returns (BaseInt128) { - return x + y; + BaseInt128 public ghostAddResult; + + function add(BaseInt128 x) public view { + ghostAddResult + x; } function to256(BaseInt128 value) public view returns (BaseInt256) { @@ -68,11 +70,8 @@ contract Handler is Test { baseInt128Handler = _baseInt128Handler; } - function add(uint256 actorSeed, int128 x, int128 y) - public - countCall("add") - { - baseInt128Handler.add(BaseInt128.wrap(x), BaseInt128.wrap(y)); + function ghost_add(int128 x) public countCall("add") { + baseInt128Handler.add(BaseInt128.wrap(x)); } function callSummary() external view {