Skip to content

Commit d21e84b

Browse files
authored
chore: fix setEvmVersion flaky test, same order (#12084)
1 parent debdd44 commit d21e84b

File tree

1 file changed

+47
-45
lines changed

1 file changed

+47
-45
lines changed

crates/forge/tests/it/spec.rs

Lines changed: 47 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,9 @@ Ran 1 test suite [ELAPSED]: 1 tests passed, 0 failed, 0 skipped (1 total tests)
9797
9898
"#]]);
9999

100-
// Test evm version set in `setUp` and test constructor is accounted in test.
100+
// Test evm version set in `setUp` is accounted in test.
101101
prj.add_test(
102-
"TestSetEvmVersion.t.sol",
102+
"TestSetupEvmVersion.t.sol",
103103
&r#"
104104
import {Test} from "forge-std/Test.sol";
105105
@@ -114,7 +114,7 @@ interface ICreate2Deployer {
114114
115115
EvmVm constant evm = EvmVm(address(bytes20(uint160(uint256(keccak256("hevm cheat code"))))));
116116
117-
contract TestSetEvmVersionInSetup is Test {
117+
contract TestSetupEvmVersion is Test {
118118
function setUp() public {
119119
evm.setEvmVersion("istanbul");
120120
}
@@ -125,64 +125,66 @@ contract TestSetEvmVersionInSetup is Test {
125125
ICreate2Deployer(0x35Da41c476fA5c6De066f20556069096A1F39364).computeAddress(bytes32(0), bytes32(0));
126126
}
127127
}
128-
129-
contract TestSetEvmVersionInConstructor is Test {
130-
constructor() {
131-
evm.setEvmVersion("istanbul");
132-
}
133-
134-
function test_evm_version_in_constructor() public {
135-
vm.createSelectFork("<rpc>");
136-
// revert with NotActivated for istanbul
137-
ICreate2Deployer(0x35Da41c476fA5c6De066f20556069096A1F39364).computeAddress(bytes32(0), bytes32(0));
138-
}
139-
}
140128
"#.replace("<rpc>", &endpoint),
141129
);
142-
cmd.forge_fuse().args(["test", "--mc", "TestSetEvmVersion", "-vvvv"]).assert_failure().stdout_eq(str![[r#"
143-
[COMPILING_FILES] with [SOLC_VERSION]
144-
[SOLC_VERSION] [ELAPSED]
145-
Compiler run successful!
146-
147-
Ran 1 test for test/TestSetEvmVersion.t.sol:TestSetEvmVersionInConstructor
148-
[FAIL: EvmError: NotActivated] test_evm_version_in_constructor() ([GAS])
149-
Traces:
150-
[..] TestSetEvmVersionInConstructor::test_evm_version_in_constructor()
151-
└─ ← [NotActivated] EvmError: NotActivated
152-
153-
Backtrace:
154-
at TestSetEvmVersionInConstructor.test_evm_version_in_constructor (test/TestSetEvmVersion.t.sol:29:2)
155-
156-
Suite result: FAILED. 0 passed; 1 failed; 0 skipped; [ELAPSED]
157-
158-
Ran 1 test for test/TestSetEvmVersion.t.sol:TestSetEvmVersionInSetup
130+
cmd.forge_fuse()
131+
.args(["test", "--mc", "TestSetupEvmVersion", "-vvvv"])
132+
.assert_failure()
133+
.stdout_eq(str![[r#"
134+
...
159135
[FAIL: EvmError: NotActivated] test_evm_version_in_setup() ([GAS])
160136
Traces:
161-
[..] TestSetEvmVersionInSetup::setUp()
137+
[..] TestSetupEvmVersion::setUp()
162138
├─ [0] VM::setEvmVersion("istanbul")
163139
│ └─ ← [Return]
164140
└─ ← [Stop]
165141
166-
[..] TestSetEvmVersionInSetup::test_evm_version_in_setup()
142+
[..] TestSetupEvmVersion::test_evm_version_in_setup()
167143
└─ ← [NotActivated] EvmError: NotActivated
144+
...
168145
169-
Backtrace:
170-
at TestSetEvmVersionInSetup.test_evm_version_in_setup (test/TestSetEvmVersion.t.sol:17:2)
146+
"#]]);
171147

172-
Suite result: FAILED. 0 passed; 1 failed; 0 skipped; [ELAPSED]
148+
// Test evm version set in constructor is accounted in test.
149+
prj.add_test(
150+
"TestConstructorEvmVersion.t.sol",
151+
&r#"
152+
import {Test} from "forge-std/Test.sol";
173153
174-
Ran 2 test suites [ELAPSED]: 0 tests passed, 2 failed, 0 skipped (2 total tests)
154+
interface EvmVm {
155+
function getEvmVersion() external pure returns (string memory evm);
156+
function setEvmVersion(string calldata evm) external;
157+
}
175158
176-
Failing tests:
177-
Encountered 1 failing test in test/TestSetEvmVersion.t.sol:TestSetEvmVersionInConstructor
178-
[FAIL: EvmError: NotActivated] test_evm_version_in_constructor() ([GAS])
159+
interface ICreate2Deployer {
160+
function computeAddress(bytes32 salt, bytes32 codeHash) external view returns (address);
161+
}
179162
180-
Encountered 1 failing test in test/TestSetEvmVersion.t.sol:TestSetEvmVersionInSetup
181-
[FAIL: EvmError: NotActivated] test_evm_version_in_setup() ([GAS])
163+
EvmVm constant evm = EvmVm(address(bytes20(uint160(uint256(keccak256("hevm cheat code"))))));
182164
183-
Encountered a total of 2 failing tests, 0 tests succeeded
165+
contract TestConstructorEvmVersion is Test {
166+
constructor() {
167+
evm.setEvmVersion("istanbul");
168+
}
184169
185-
Tip: Run `forge test --rerun` to retry only the 2 failed tests
170+
function test_evm_version_in_constructor() public {
171+
vm.createSelectFork("<rpc>");
172+
// revert with NotActivated for istanbul
173+
ICreate2Deployer(0x35Da41c476fA5c6De066f20556069096A1F39364).computeAddress(bytes32(0), bytes32(0));
174+
}
175+
}
176+
"#.replace("<rpc>", &endpoint),
177+
);
178+
cmd.forge_fuse()
179+
.args(["test", "--mc", "TestConstructorEvmVersion", "-vvvv"])
180+
.assert_failure()
181+
.stdout_eq(str![[r#"
182+
...
183+
[FAIL: EvmError: NotActivated] test_evm_version_in_constructor() ([GAS])
184+
Traces:
185+
[..] TestConstructorEvmVersion::test_evm_version_in_constructor()
186+
└─ ← [NotActivated] EvmError: NotActivated
187+
...
186188
187189
"#]]);
188190
});

0 commit comments

Comments
 (0)