使用Foundry对输入地址参数进行模糊测试EvmError: Revert

我使用Foundry框架编写测试,在对函数输入address 参数做模糊测试时,首先是测试的运行花费了很长时间。最后测试运行出来还失败了。但是,做fail测试时,对地址的模糊测试却又成功了。代码如下 失败的测试

function testRetrieveLostToken(address tokens) public {
        _aliceDepositGLP();
        vm.stopPrank();
        vm.assume(tokens.isContract() && tokens != SGLP && tokens != address(0));
        token.retrieveLostTokens(tokens);
    }

image.png 成功的测试

function testFail_RetrieveNonContracts(address tokens) public {
        _aliceDepositGLP();
        vm.stopPrank();
        vm.assume(!tokens.isContract() && tokens != SGLP && tokens != address(0));
        token.retrieveLostTokens(tokens);
    }

image.png 我的问题是,为什么对地址的模糊测试会失败,难道有一些特殊地址是不允许使用的吗,可是这样的话,Fail test 又成功了。

请先 登录 后评论

1 个回答

Aaron_7
请先 登录 后评论
  • 0 关注
  • 0 收藏,2513 浏览
  • Joe 提出于 2023-04-18 11:24