Skip to content

Commit 87c3c48

Browse files
committed
test: impl better workaround to ensure fuzz does not give address with existing code
1 parent 272b674 commit 87c3c48

File tree

2 files changed

+5
-19
lines changed

2 files changed

+5
-19
lines changed

test/large/ReservoirPriceOracleLarge.t.sol

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,8 @@ contract ReservoirPriceOracleLargeTest is ReservoirPriceOracleTest {
3131
) external {
3232
// assume
3333
vm.assume(
34-
aTokenAAddress > ADDRESS_THRESHOLD && aTokenBAddress > ADDRESS_THRESHOLD
35-
&& aTokenCAddress > ADDRESS_THRESHOLD && aTokenDAddress > ADDRESS_THRESHOLD
36-
);
37-
vm.assume(
38-
_addressSet.add(aTokenAAddress) && _addressSet.add(aTokenBAddress) && _addressSet.add(aTokenCAddress)
39-
&& _addressSet.add(aTokenDAddress)
34+
aTokenAAddress.code.length == 0 && aTokenBAddress.code.length == 0 && aTokenCAddress.code.length == 0
35+
&& aTokenCAddress.code.length == 0
4036
);
4137
uint256 lPrice1 = bound(aPrice1, 1e12, 1e24);
4238
uint256 lPrice2 = bound(aPrice2, 1e12, 1e24);

test/unit/ReservoirPriceOracle.t.sol

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import { EnumerableSetLib } from "lib/solady/src/utils/EnumerableSetLib.sol";
2020
import { Constants } from "src/libraries/Constants.sol";
2121
import { MockFallbackOracle } from "test/mock/MockFallbackOracle.sol";
2222
import { StubERC4626 } from "test/mock/StubERC4626.sol";
23-
import {Errors} from "../../lib/amm-core/test/integration/AaveErrors.sol";
2423

2524
contract ReservoirPriceOracleTest is BaseTest {
2625
using Utils for *;
@@ -260,8 +259,7 @@ contract ReservoirPriceOracleTest is BaseTest {
260259
uint8 aTokenBDecimal
261260
) external {
262261
// assume
263-
vm.assume(aTokenAAddress > ADDRESS_THRESHOLD && aTokenBAddress > ADDRESS_THRESHOLD); // avoid precompile addresses
264-
vm.assume(_addressSet.add(aTokenAAddress) && _addressSet.add(aTokenBAddress));
262+
vm.assume(aTokenAAddress.code.length == 0 && aTokenBAddress.code.length == 0);
265263
uint256 lPrice = bound(aPrice, 1, 1e36);
266264
uint256 lAmtIn = bound(aAmtIn, 0, 1_000_000_000);
267265
uint256 lTokenADecimal = bound(aTokenADecimal, 0, 18);
@@ -307,11 +305,7 @@ contract ReservoirPriceOracleTest is BaseTest {
307305
uint8 aTokenCDecimal
308306
) external {
309307
// assume
310-
vm.assume(
311-
aTokenAAddress > ADDRESS_THRESHOLD && aTokenBAddress > ADDRESS_THRESHOLD
312-
&& aTokenCAddress > ADDRESS_THRESHOLD
313-
);
314-
vm.assume(_addressSet.add(aTokenAAddress) && _addressSet.add(aTokenBAddress) && _addressSet.add(aTokenCAddress));
308+
vm.assume(aTokenAAddress.code.length == 0 && aTokenBAddress.code.length == 0 && aTokenCAddress.code.length == 0);
315309
uint256 lPrice1 = bound(aPrice1, 1e9, 1e25); // need to bound price within this range as a price below this will go to zero as during the mul and div of prices
316310
uint256 lPrice2 = bound(aPrice2, 1e9, 1e25);
317311
uint256 lAmtIn = bound(aAmtIn, 0, 1_000_000_000);
@@ -518,11 +512,7 @@ contract ReservoirPriceOracleTest is BaseTest {
518512
function testUpdatePrice_AboveThresholdBelowMaxReward(uint256 aPercentDiff) external {
519513
// assume
520514
(,, uint256 lRewardThreshold) = _oracle.priceCache(address(_tokenA), address(_tokenB));
521-
uint256 lPercentDiff = bound(
522-
aPercentDiff,
523-
lRewardThreshold,
524-
_oracle.MAX_REWARD_MULTIPLIER() * lRewardThreshold
525-
);
515+
uint256 lPercentDiff = bound(aPercentDiff, lRewardThreshold, _oracle.MAX_REWARD_MULTIPLIER() * lRewardThreshold);
526516

527517
// arrange
528518
uint256 lCurrentPrice = 98_918_868_099_219_913_512;

0 commit comments

Comments
 (0)