@@ -1267,3 +1267,69 @@ Warning: Failure from "[..]/invariant/failures/OwnableTest/invariant_never_owner
1267
1267
...
1268
1268
"# ] ] ) ;
1269
1269
} ) ;
1270
+
1271
+ // <https://github.com/foundry-rs/foundry/issues/10253>
1272
+ forgetest_init ! ( invariant_test_target, |prj, cmd| {
1273
+ prj. update_config( |config| {
1274
+ config. invariant. runs = 5 ;
1275
+ config. invariant. depth = 5 ;
1276
+ } ) ;
1277
+ prj. add_test(
1278
+ "InvariantTest.t.sol" ,
1279
+ r#"
1280
+ import {Test} from "forge-std/Test.sol";
1281
+
1282
+ contract InvariantTest is Test {
1283
+ uint256 count;
1284
+
1285
+ function setCount(uint256 _count) public {
1286
+ count = _count;
1287
+ }
1288
+
1289
+ function setUp() public {
1290
+ }
1291
+
1292
+ function invariant_check_count() public {
1293
+ }
1294
+ }
1295
+ "# ,
1296
+ )
1297
+ . unwrap( ) ;
1298
+
1299
+ cmd. args( [ "test" , "--mt" , "invariant_check_count" ] ) . assert_failure( ) . stdout_eq( str ![ [ r#"
1300
+ ...
1301
+ [FAIL: failed to set up invariant testing environment: No contracts to fuzz.] invariant_check_count() (runs: 0, calls: 0, reverts: 0)
1302
+ ...
1303
+ "# ] ] ) ;
1304
+
1305
+ prj. add_test(
1306
+ "InvariantTest.t.sol" ,
1307
+ r#"
1308
+ import {Test} from "forge-std/Test.sol";
1309
+
1310
+ contract InvariantTest is Test {
1311
+ uint256 count;
1312
+
1313
+ function setCount(uint256 _count) public {
1314
+ count = _count;
1315
+ }
1316
+
1317
+ function setUp() public {
1318
+ targetContract(address(this));
1319
+ }
1320
+
1321
+ function invariant_check_count() public {
1322
+ }
1323
+ }
1324
+ "# ,
1325
+ )
1326
+ . unwrap( ) ;
1327
+
1328
+ cmd. forge_fuse( ) . args( [ "test" , "--mt" , "invariant_check_count" ] ) . assert_success( ) . stdout_eq(
1329
+ str ![ [ r#"
1330
+ ...
1331
+ [PASS] invariant_check_count() (runs: 5, calls: 25, reverts: 0)
1332
+ ...
1333
+ "# ] ] ,
1334
+ ) ;
1335
+ } ) ;
0 commit comments