Skip to content

Commit

Permalink
T
Browse files Browse the repository at this point in the history
  • Loading branch information
Vectorized committed May 13, 2024
1 parent d13f5f4 commit df7d1aa
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 36 deletions.
48 changes: 24 additions & 24 deletions .gas-snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -63,18 +63,18 @@ DateTimeLibTest:testWeekday() (gas: 682)
DateTimeLibTest:test__codesize() (gas: 19094)
DeploylessPredeployQueryerTest:testPredeployQueryer(bytes32) (runs: 271, μ: 227343, ~: 218488)
DeploylessPredeployQueryerTest:test__codesize() (gas: 6702)
DynamicBufferLibTest:testClear(uint256) (runs: 271, μ: 34487, ~: 34527)
DynamicBufferLibTest:testDynamicBuffer(bytes[],uint256) (runs: 271, μ: 906315, ~: 783499)
DynamicBufferLibTest:testDynamicBuffer(uint256) (runs: 271, μ: 835776, ~: 671965)
DynamicBufferLibTest:testClear(uint256) (runs: 271, μ: 34512, ~: 34562)
DynamicBufferLibTest:testDynamicBuffer(bytes[],uint256) (runs: 271, μ: 941671, ~: 793328)
DynamicBufferLibTest:testDynamicBuffer(uint256) (runs: 271, μ: 814549, ~: 678271)
DynamicBufferLibTest:testDynamicBufferChaining() (gas: 12661)
DynamicBufferLibTest:testDynamicBufferPushSingles(uint256,uint256,uint256) (runs: 271, μ: 346797, ~: 40668)
DynamicBufferLibTest:testDynamicBufferPushSingles(uint256,uint256,uint256) (runs: 271, μ: 375615, ~: 42703)
DynamicBufferLibTest:testDynamicBufferPushSinglesReinterpretCast() (gas: 21959)
DynamicBufferLibTest:testDynamicBufferReserveFromEmpty() (gas: 2754)
DynamicBufferLibTest:testDynamicBufferReserveFromEmpty2() (gas: 2463)
DynamicBufferLibTest:testDynamicBufferReserveFromEmpty3(bytes,uint256) (runs: 271, μ: 3032, ~: 2150)
DynamicBufferLibTest:testDynamicBufferReserveFromEmpty3(bytes,uint256) (runs: 271, μ: 2997, ~: 2150)
DynamicBufferLibTest:testJoinWithConcat() (gas: 31429)
DynamicBufferLibTest:testJoinWithDynamicBuffer() (gas: 10830)
DynamicBufferLibTest:test__codesize() (gas: 11602)
DynamicBufferLibTest:test__codesize() (gas: 12754)
ECDSATest:testBytes32ToEthSignedMessageHash() (gas: 381)
ECDSATest:testBytesToEthSignedMessageHash() (gas: 11587935)
ECDSATest:testBytesToEthSignedMessageHashEmpty() (gas: 578)
Expand Down Expand Up @@ -181,10 +181,10 @@ ERC1271Test:test__codesize() (gas: 30379)
ERC1967FactoryTest:testChangeAdmin() (gas: 266356)
ERC1967FactoryTest:testChangeAdminUnauthorized() (gas: 257316)
ERC1967FactoryTest:testDeploy() (gas: 257375)
ERC1967FactoryTest:testDeployAndCall(uint256) (runs: 271, μ: 339283, ~: 340931)
ERC1967FactoryTest:testDeployAndCall(uint256) (runs: 271, μ: 339284, ~: 340931)
ERC1967FactoryTest:testDeployAndCallWithRevert() (gas: 211881)
ERC1967FactoryTest:testDeployBrutalized(uint256) (runs: 271, μ: 96013, ~: 44129)
ERC1967FactoryTest:testDeployDeterministicAndCall(uint256) (runs: 271, μ: 317455, ~: 350141)
ERC1967FactoryTest:testDeployBrutalized(uint256) (runs: 271, μ: 95248, ~: 44128)
ERC1967FactoryTest:testDeployDeterministicAndCall(uint256) (runs: 271, μ: 317456, ~: 350141)
ERC1967FactoryTest:testFactoryDeployment() (gas: 494435)
ERC1967FactoryTest:testProxyFails() (gas: 259019)
ERC1967FactoryTest:testProxySucceeds() (gas: 255707)
Expand All @@ -194,7 +194,7 @@ ERC1967FactoryTest:testUpgradeAndCallWithRevert() (gas: 265645)
ERC1967FactoryTest:testUpgradeUnauthorized() (gas: 270340)
ERC1967FactoryTest:testUpgradeWithCorruptedProxy() (gas: 263130)
ERC1967FactoryTest:test__codesize() (gas: 32000)
ERC20Invariants:invariantBalanceSum() (runs: 256, calls: 3840, reverts: 2302)
ERC20Invariants:invariantBalanceSum() (runs: 256, calls: 3840, reverts: 2311)
ERC20Invariants:test__codesize() (gas: 7534)
ERC20Test:testApprove() (gas: 35730)
ERC20Test:testApprove(address,uint256) (runs: 271, μ: 31107, ~: 31181)
Expand Down Expand Up @@ -276,21 +276,21 @@ ERC4626Test:testWithdrawZero() (gas: 51874)
ERC4626Test:test__codesize() (gas: 37202)
ERC6551Test:testBaseFeeMini() (gas: 39514)
ERC6551Test:testCdFallback() (gas: 894982)
ERC6551Test:testDeployERC6551(uint256) (runs: 271, μ: 170604, ~: 168890)
ERC6551Test:testDeployERC6551(uint256) (runs: 271, μ: 170603, ~: 168890)
ERC6551Test:testDeployERC6551Proxy() (gas: 80395)
ERC6551Test:testExecute() (gas: 506735)
ERC6551Test:testExecuteBatch() (gas: 816151)
ERC6551Test:testExecuteBatch(uint256) (runs: 271, μ: 621148, ~: 482768)
ERC6551Test:testExecuteBatch(uint256) (runs: 271, μ: 623234, ~: 592342)
ERC6551Test:testInitializeERC6551ProxyImplementation() (gas: 189914)
ERC6551Test:testIsValidSigner(address) (runs: 271, μ: 167492, ~: 167474)
ERC6551Test:testOnERC1155BatchReceived() (gas: 1697916)
ERC6551Test:testOnERC1155Received() (gas: 1695271)
ERC6551Test:testOnERC721Received() (gas: 1738609)
ERC6551Test:testOnERC721ReceivedCycles() (gas: 1727948)
ERC6551Test:testOnERC721ReceivedCyclesWithDifferentChainIds(uint256) (runs: 271, μ: 450395, ~: 455363)
ERC6551Test:testOwnerWorksWithChainIdChange(uint256,uint256) (runs: 271, μ: 1363683, ~: 1363678)
ERC6551Test:testOnERC721ReceivedCyclesWithDifferentChainIds(uint256) (runs: 271, μ: 450366, ~: 455356)
ERC6551Test:testOwnerWorksWithChainIdChange(uint256,uint256) (runs: 271, μ: 1363685, ~: 1363678)
ERC6551Test:testSupportsInterface() (gas: 169450)
ERC6551Test:testUpdateState(uint256) (runs: 271, μ: 235184, ~: 235126)
ERC6551Test:testUpdateState(uint256) (runs: 271, μ: 235185, ~: 235126)
ERC6551Test:testUpgrade() (gas: 248420)
ERC6551Test:test__codesize() (gas: 51483)
ERC6909Test:testApprove() (gas: 36868)
Expand Down Expand Up @@ -1090,15 +1090,15 @@ SafeTransferLibTest:testApproveWithStandardERC20(address,uint256) (runs: 271, μ
SafeTransferLibTest:testBalanceOfStandardERC20() (gas: 7852)
SafeTransferLibTest:testBalanceOfStandardERC20(address,uint256) (runs: 271, μ: 40449, ~: 40719)
SafeTransferLibTest:testForceTransferETHToGriever() (gas: 1511565)
SafeTransferLibTest:testForceTransferETHToGriever(uint256,uint256) (runs: 271, μ: 538375, ~: 570885)
SafeTransferLibTest:testForceTransferETHToGriever(uint256,uint256) (runs: 271, μ: 538014, ~: 570885)
SafeTransferLibTest:testPermit2() (gas: 89497)
SafeTransferLibTest:testPermit2InvalidAmount(uint256) (runs: 271, μ: 102472, ~: 102494)
SafeTransferLibTest:testPermit2OnDAI() (gas: 89519)
SafeTransferLibTest:testPermit2TransferFromInvalidAmount(uint256) (runs: 271, μ: 133512, ~: 133949)
SafeTransferLibTest:testSimplePermit2AndPermit2TransferFrom() (gas: 1102105)
SafeTransferLibTest:testSimplePermit2AndPermit2TransferFromGas() (gas: 137347)
SafeTransferLibTest:testTransferAllETH() (gas: 34621)
SafeTransferLibTest:testTransferAllETH(address) (runs: 271, μ: 34671, ~: 35034)
SafeTransferLibTest:testTransferAllETH(address) (runs: 271, μ: 34789, ~: 35034)
SafeTransferLibTest:testTransferAllETHToContractWithoutFallbackReverts() (gas: 10846)
SafeTransferLibTest:testTransferAllETHToContractWithoutFallbackReverts(uint256) (runs: 271, μ: 10869, ~: 10869)
SafeTransferLibTest:testTransferAllFromWithStandardERC20() (gas: 33319)
Expand Down Expand Up @@ -1126,23 +1126,23 @@ SafeTransferLibTest:testTransferFromWithRevertingReverts() (gas: 527143)
SafeTransferLibTest:testTransferFromWithRevertingReverts(address,address,uint256) (runs: 271, μ: 655176, ~: 527301)
SafeTransferLibTest:testTransferFromWithStandardERC20() (gas: 566534)
SafeTransferLibTest:testTransferFromWithStandardERC20(address,address,uint256) (runs: 271, μ: 682809, ~: 566572)
SafeTransferLibTest:testTransferWithGarbageReverts(address,uint256) (runs: 271, μ: 748769, ~: 648388)
SafeTransferLibTest:testTransferWithGarbageReverts(address,uint256) (runs: 271, μ: 748566, ~: 648388)
SafeTransferLibTest:testTransferWithMissingReturn() (gas: 554420)
SafeTransferLibTest:testTransferWithMissingReturn(address,uint256) (runs: 271, μ: 675337, ~: 554767)
SafeTransferLibTest:testTransferWithMissingReturn(address,uint256) (runs: 271, μ: 675336, ~: 554767)
SafeTransferLibTest:testTransferWithNonContract() (gas: 3010)
SafeTransferLibTest:testTransferWithNonContract(address,address,uint256) (runs: 271, μ: 3622, ~: 3634)
SafeTransferLibTest:testTransferWithNonGarbage(address,uint256) (runs: 271, μ: 739367, ~: 624046)
SafeTransferLibTest:testTransferWithReturnsFalseReverts() (gas: 530949)
SafeTransferLibTest:testTransferWithReturnsFalseReverts(address,uint256) (runs: 271, μ: 688396, ~: 531206)
SafeTransferLibTest:testTransferWithReturnsFalseReverts(address,uint256) (runs: 271, μ: 688395, ~: 531206)
SafeTransferLibTest:testTransferWithReturnsTooLittleReverts() (gas: 531136)
SafeTransferLibTest:testTransferWithReturnsTooLittleReverts(address,uint256) (runs: 271, μ: 683334, ~: 531152)
SafeTransferLibTest:testTransferWithReturnsTooLittleReverts(address,uint256) (runs: 271, μ: 683335, ~: 531152)
SafeTransferLibTest:testTransferWithReturnsTooMuch() (gas: 554821)
SafeTransferLibTest:testTransferWithReturnsTooMuch(address,uint256) (runs: 271, μ: 632421, ~: 555224)
SafeTransferLibTest:testTransferWithReturnsTooMuch(address,uint256) (runs: 271, μ: 632419, ~: 555224)
SafeTransferLibTest:testTransferWithReturnsTwoReverts(address,uint256) (runs: 271, μ: 676551, ~: 531163)
SafeTransferLibTest:testTransferWithRevertingReverts() (gas: 530843)
SafeTransferLibTest:testTransferWithRevertingReverts(address,uint256) (runs: 271, μ: 730502, ~: 531142)
SafeTransferLibTest:testTransferWithRevertingReverts(address,uint256) (runs: 271, μ: 730501, ~: 531142)
SafeTransferLibTest:testTransferWithStandardERC20() (gas: 555088)
SafeTransferLibTest:testTransferWithStandardERC20(address,uint256) (runs: 271, μ: 621452, ~: 555059)
SafeTransferLibTest:testTransferWithStandardERC20(address,uint256) (runs: 271, μ: 629241, ~: 555059)
SafeTransferLibTest:testTrySafeTransferFrom(address,address,uint256) (runs: 271, μ: 109073, ~: 111573)
SafeTransferLibTest:testTryTransferAllETH() (gas: 148698)
SafeTransferLibTest:testTryTransferETH() (gas: 148701)
Expand Down
82 changes: 70 additions & 12 deletions test/DynamicBufferLib.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,80 @@ contract DynamicBufferLibTest is SoladyTest {

function testDynamicBufferPushSingles(uint256 x, uint256 y, uint256 z) public {
if (_random() % 32 == 0) _brutalizeMemory();
{
DynamicBufferLib.DynamicBuffer memory buffer;
DynamicBufferLib.DynamicBuffer memory buffer;
if (_random() % 4 == 0) {
if (_random() % 2 == 0) {
DynamicBufferLib.DynamicBuffer memory newBuffer;
buffer = newBuffer;
}
buffer.pUint256(x);
assertEq(buffer.data, abi.encodePacked(uint256(x)));
buffer.pUint256(y).pUint256(z);
assertEq(buffer.data, abi.encodePacked(uint256(x), uint256(y), uint256(z)));
}
if (_random() % 32 == 0) _brutalizeMemory();
{
DynamicBufferLib.DynamicBuffer memory buffer;
if (_random() % 4 == 0) {
if (_random() % 2 == 0) {
DynamicBufferLib.DynamicBuffer memory newBuffer;
buffer = newBuffer;
} else {
buffer.clear();
}
buffer.pUint32(uint32(x));
assertEq(buffer.data, abi.encodePacked(uint32(x)));
buffer.pUint32(uint32(y)).pUint32(uint32(z));
assertEq(buffer.data, abi.encodePacked(uint32(x), uint32(y), uint32(z)));
}
if (_random() % 32 == 0) _brutalizeMemory();
if (_random() % 4 == 0) {
if (_random() % 2 == 0) {
DynamicBufferLib.DynamicBuffer memory newBuffer;
buffer = newBuffer;
} else {
buffer.clear();
}
buffer.pUint8(uint8(x));
assertEq(buffer.data, abi.encodePacked(uint8(x)));
buffer.pUint8(uint8(y)).pUint8(uint8(z));
assertEq(buffer.data, abi.encodePacked(uint8(x), uint8(y), uint8(z)));
}
if (_random() % 32 == 0) _brutalizeMemory();
{
DynamicBufferLib.DynamicBuffer memory buffer;
if (_random() % 4 == 0) {
if (_random() % 2 == 0) {
DynamicBufferLib.DynamicBuffer memory newBuffer;
buffer = newBuffer;
} else {
buffer.clear();
}
buffer.pBytes32(bytes32(x));
assertEq(buffer.data, abi.encodePacked(bytes32(x)));
buffer.pBytes32(bytes32(y)).pBytes32(bytes32(z));
assertEq(buffer.data, abi.encodePacked(bytes32(x), bytes32(y), bytes32(z)));
}
if (_random() % 32 == 0) _brutalizeMemory();
{
DynamicBufferLib.DynamicBuffer memory buffer;
if (_random() % 4 == 0) {
if (_random() % 2 == 0) {
DynamicBufferLib.DynamicBuffer memory newBuffer;
buffer = newBuffer;
} else {
buffer.clear();
}
buffer.pBytes3(bytes3(bytes32(x)));
assertEq(buffer.data, abi.encodePacked(bytes3(bytes32(x))));
buffer.pBytes3(bytes3(bytes32(y))).pBytes3(bytes3(bytes32(z)));
assertEq(
buffer.data,
abi.encodePacked(bytes3(bytes32(x)), bytes3(bytes32(y)), bytes3(bytes32(z)))
);
}
if (_random() % 32 == 0) _brutalizeMemory();
if (_random() % 4 == 0) {
if (_random() % 2 == 0) {
DynamicBufferLib.DynamicBuffer memory newBuffer;
buffer = newBuffer;
} else {
buffer.clear();
}
buffer.pBytes1(bytes1(bytes32(x)));
assertEq(buffer.data, abi.encodePacked(bytes1(bytes32(x))));
buffer.pBytes1(bytes1(bytes32(y))).pBytes1(bytes1(bytes32(z)));
Expand All @@ -44,16 +92,26 @@ contract DynamicBufferLibTest is SoladyTest {
);
}
if (_random() % 32 == 0) _brutalizeMemory();
{
DynamicBufferLib.DynamicBuffer memory buffer;
if (_random() % 4 == 0) {
if (_random() % 2 == 0) {
DynamicBufferLib.DynamicBuffer memory newBuffer;
buffer = newBuffer;
} else {
buffer.clear();
}
buffer.pBool(x % 2 == 0);
assertEq(buffer.data, abi.encodePacked(x % 2 == 0));
buffer.pBool(y % 2 == 0).pBool(z % 2 == 0);
assertEq(buffer.data, abi.encodePacked(x % 2 == 0, y % 2 == 0, z % 2 == 0));
}
if (_random() % 32 == 0) _brutalizeMemory();
{
DynamicBufferLib.DynamicBuffer memory buffer;
if (_random() % 4 == 0) {
if (_random() % 2 == 0) {
DynamicBufferLib.DynamicBuffer memory newBuffer;
buffer = newBuffer;
} else {
buffer.clear();
}
buffer.pAddress(address(uint160(x)));
assertEq(buffer.data, abi.encodePacked(address(uint160(x))));
buffer.pAddress(address(uint160(y))).pAddress(address(uint160(z)));
Expand Down

0 comments on commit df7d1aa

Please sign in to comment.