-
Notifications
You must be signed in to change notification settings - Fork 340
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #240 from matter-labs/ra/improving-test-coverage
feat: Improving test coverage of SCs
- Loading branch information
Showing
20 changed files
with
649 additions
and
30 deletions.
There are no files selected for viewing
15 changes: 15 additions & 0 deletions
15
l1-contracts/contracts/dev-contracts/test/AddressAliasHelperTest.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
// SPDX-License-Identifier: MIT | ||
|
||
pragma solidity 0.8.20; | ||
|
||
import "../../vendor/AddressAliasHelper.sol"; | ||
|
||
contract AddressAliasHelperTest { | ||
function applyL1ToL2Alias(address _l1Address) external pure returns (address) { | ||
return AddressAliasHelper.applyL1ToL2Alias(_l1Address); | ||
} | ||
|
||
function undoL1ToL2Alias(address _l2Address) external pure returns (address) { | ||
return AddressAliasHelper.undoL1ToL2Alias(_l2Address); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
15 changes: 15 additions & 0 deletions
15
l1-contracts/contracts/dev-contracts/test/UncheckedMathTest.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
// SPDX-License-Identifier: MIT | ||
|
||
pragma solidity 0.8.20; | ||
|
||
import "../../common/libraries/UncheckedMath.sol"; | ||
|
||
contract UncheckedMathTest { | ||
function uncheckedInc(uint256 _number) external pure returns (uint256) { | ||
return UncheckedMath.uncheckedInc(_number); | ||
} | ||
|
||
function uncheckedAdd(uint256 _lhs, uint256 _rhs) external pure returns (uint256) { | ||
return UncheckedMath.uncheckedAdd(_lhs, _rhs); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
16 changes: 16 additions & 0 deletions
16
l1-contracts/test/foundry/unit/concrete/AddressAliasHelper/_AddressAliasHelper_Shared.t.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity 0.8.20; | ||
|
||
import {Test} from "forge-std/Test.sol"; | ||
import {AddressAliasHelperTest} from "solpp/dev-contracts/test/AddressAliasHelperTest.sol"; | ||
|
||
contract AddressAliasHelperSharedTest is Test { | ||
AddressAliasHelperTest addressAliasHelper; | ||
|
||
function setUp() public { | ||
addressAliasHelper = new AddressAliasHelperTest(); | ||
} | ||
|
||
// add this to be excluded from coverage report | ||
function test() internal virtual {} | ||
} |
23 changes: 23 additions & 0 deletions
23
l1-contracts/test/foundry/unit/concrete/AddressAliasHelper/applyL1ToL2Alias.t.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity 0.8.20; | ||
|
||
import {AddressAliasHelperSharedTest} from "./_AddressAliasHelper_Shared.t.sol"; | ||
|
||
contract applyL1ToL2AliasTest is AddressAliasHelperSharedTest { | ||
function testL1toL2AddressConversion() public { | ||
address[2] memory l1Addresses = [ | ||
0xEEeEfFfffffFffFFFFffFFffFfFfFfffFfFFEEeE, | ||
0x0000000000000000000000000000081759a874B3 | ||
]; | ||
address[2] memory l2ExpectedAddresses = [ | ||
0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF, | ||
0x1111000000000000000000000000081759a885c4 | ||
]; | ||
|
||
for (uint i; i < l1Addresses.length; i++) { | ||
address l2Address = addressAliasHelper.applyL1ToL2Alias(l1Addresses[i]); | ||
|
||
assertEq(l2Address, l2ExpectedAddresses[i], "L1 to L2 address conversion is not correct"); | ||
} | ||
} | ||
} |
23 changes: 23 additions & 0 deletions
23
l1-contracts/test/foundry/unit/concrete/AddressAliasHelper/undoL1ToL2Alias.t.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity 0.8.20; | ||
|
||
import {AddressAliasHelperSharedTest} from "./_AddressAliasHelper_Shared.t.sol"; | ||
|
||
contract undoL1ToL2AliasTest is AddressAliasHelperSharedTest { | ||
function testL2toL1AddressConversion() public { | ||
address[2] memory l2Addresses = [ | ||
0x1111000000000000000000000000000000001110, | ||
0x1111000000000000000000000000081759a885c4 | ||
]; | ||
address[2] memory l1ExpectedAddresses = [ | ||
0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF, | ||
0x0000000000000000000000000000081759a874B3 | ||
]; | ||
|
||
for (uint i; i < l2Addresses.length; i++) { | ||
address l1Address = addressAliasHelper.undoL1ToL2Alias(l2Addresses[i]); | ||
|
||
assertEq(l1Address, l1ExpectedAddresses[i], "L2 to L1 address conversion is not correct"); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 4 additions & 8 deletions
12
l1-contracts/test/foundry/unit/concrete/common/libraries/UncheckedMath/UncheckedInc.t.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
34 changes: 34 additions & 0 deletions
34
...s/test/foundry/unit/concrete/state-transition/StateTransitionManager/CreateNewChain.t.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
// // SPDX-License-Identifier: MIT | ||
pragma solidity 0.8.20; | ||
|
||
import {StateTransitionManagerTest} from "./_StateTransitionManager_Shared.t.sol"; | ||
import {Diamond} from "solpp/state-transition/libraries/Diamond.sol"; | ||
import {DiamondProxy} from "solpp/state-transition/chain-deps/DiamondProxy.sol"; | ||
|
||
contract createNewChainTest is StateTransitionManagerTest { | ||
function test_RevertWhen_InitialDiamondCutHashMismatch() public { | ||
Diamond.DiamondCutData memory initialDiamondCutData = getDiamondCutData(sharedBridge); | ||
|
||
vm.expectRevert(bytes("StateTransition: initial cutHash mismatch")); | ||
|
||
createNewChain(initialDiamondCutData); | ||
} | ||
|
||
function test_RevertWhen_CalledNotByBridgehub() public { | ||
Diamond.DiamondCutData memory initialDiamondCutData = getDiamondCutData(diamondInit); | ||
|
||
vm.expectRevert(bytes("StateTransition: only bridgehub")); | ||
|
||
chainContractAddress.createNewChain(chainId, baseToken, sharedBridge, admin, abi.encode(initialDiamondCutData)); | ||
} | ||
|
||
function test_SuccessfulCreationOfNewChain() public { | ||
createNewChain(getDiamondCutData(diamondInit)); | ||
|
||
address admin = chainContractAddress.getChainAdmin(chainId); | ||
address newChainAddress = chainContractAddress.stateTransition(chainId); | ||
|
||
assertEq(newChainAdmin, admin); | ||
assertNotEq(newChainAddress, address(0)); | ||
} | ||
} |
Oops, something went wrong.