Skip to content

Commit

Permalink
update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
charles-cooper committed Dec 18, 2024
1 parent 3165be2 commit 87cc1c0
Showing 1 changed file with 22 additions and 16 deletions.
38 changes: 22 additions & 16 deletions tests/unit/compiler/venom/test_memmerging.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ def _check_no_change(pre):
_check_pre_post(pre, pre)


# for parametrizing tests
LOAD_COPY = [("dload", "dloadbytes"), ("calldataload", "calldatacopy")]


def test_memmerging():
"""
Basic memory merge test
Expand Down Expand Up @@ -762,43 +766,45 @@ def test_memmerging_double_use():
_check_pre_post(pre, post)


def test_memmerging_calldataload():
pre = """
@pytest.mark.parametrize("load_opcode,copy_opcode", LOAD_COPY)
def test_memmerging_load(load_opcode, copy_opcode):
pre = f"""
_global:
%1 = calldataload 0
%1 = {load_opcode} 0
mstore 32, %1
%2 = calldataload 32
%2 = {load_opcode} 32
mstore 64, %2
stop
"""

post = """
post = f"""
_global:
calldatacopy 32, 0, 64
{copy_opcode} 32, 0, 64
stop
"""
_check_pre_post(pre, post)


def test_memmerging_calldataload_two_intervals_diff_offset():
@pytest.mark.parametrize("load_opcode,copy_opcode", LOAD_COPY)
def test_memmerging_two_intervals_diff_offset(load_opcode, copy_opcode):
"""
Test different calldatacopy sequences are separately merged
Test different dloadbytes/calldatacopy sequences are separately merged
"""
pre = """
pre = f"""
_global:
%1 = calldataload 0
%1 = {load_opcode} 0
mstore 0, %1
calldatacopy 32, 32, 64
%2 = calldataload 0
{copy_opcode} 32, 32, 64
%2 = {load_opcode} 0
mstore 8, %2
calldatacopy 40, 32, 64
{copy_opcode} 40, 32, 64
stop
"""

post = """
post = f"""
_global:
calldatacopy 0, 0, 96
calldatacopy 8, 0, 96
{copy_opcode} 0, 0, 96
{copy_opcode} 8, 0, 96
stop
"""
_check_pre_post(pre, post)
Expand Down

0 comments on commit 87cc1c0

Please sign in to comment.