From 2e50eaf4ba44c023c8e9fbbc7d3fbbaaf9c3e82a Mon Sep 17 00:00:00 2001 From: kayibal Date: Thu, 1 Aug 2024 12:09:58 +0200 Subject: [PATCH] feat(testing): Nicer cli; expose trace parameter Nicer name for the cli args and expose the vm_traces flag to quickly enable/disable tracing. --- testing/src/runner/cli.py | 14 +++++++++++--- testing/src/runner/runner.py | 5 +++-- testing/tycho-client/tycho_client/decoders.py | 5 +++-- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/testing/src/runner/cli.py b/testing/src/runner/cli.py index 512408a..71308ef 100644 --- a/testing/src/runner/cli.py +++ b/testing/src/runner/cli.py @@ -10,17 +10,25 @@ def main() -> None: "--package", type=str, help="Name of the package to test." ) parser.add_argument( - "--with_binary_logs", + "--tycho-logs", action="store_true", help="Flag to activate logs from Tycho.", ) parser.add_argument( - "--db_url", type=str, help="Postgres database URL for the Tycho indexer." + "--db-url", type=str, help="Postgres database URL for the Tycho indexer." + ) + parser.add_argument( + "--vm-traces", + action="store_true", + help="Enable tracing during vm simulations.", ) args = parser.parse_args() test_runner = TestRunner( - args.package, args.with_binary_logs, db_url=args.db_url + args.package, + args.tycho_logs, + db_url=args.db_url, + vm_traces=args.vm_traces, ) test_runner.run_tests() diff --git a/testing/src/runner/runner.py b/testing/src/runner/runner.py index 93bb2b6..93ebf26 100644 --- a/testing/src/runner/runner.py +++ b/testing/src/runner/runner.py @@ -46,7 +46,7 @@ class SimulationFailure(BaseModel): class TestRunner: - def __init__(self, package: str, with_binary_logs: bool, db_url: str): + def __init__(self, package: str, with_binary_logs: bool, db_url: str, vm_traces: bool): self.repo_root = os.getcwd() config_path = os.path.join(self.repo_root, "substreams", package, "test_assets.yaml") self.config = load_config(config_path) @@ -55,6 +55,7 @@ class TestRunner: self.tycho_runner = TychoRunner(db_url, with_binary_logs, self.config["initialized_accounts"]) self.tycho_rpc_client = TychoRPCClient() self.db_url = db_url + self._vm_traces = vm_traces self._chain = Blockchain.ethereum def run_tests(self) -> None: @@ -198,7 +199,7 @@ class TestRunner: self.adapters_src, "out", f"{self.config['adapter_contract']}.sol", f"{self.config['adapter_contract']}.evm.runtime" ) - decoder = ThirdPartyPoolTychoDecoder(adapter_contract, 0) + decoder = ThirdPartyPoolTychoDecoder(adapter_contract, 0, trace=self._vm_traces) stream_adapter = TychoPoolStateStreamAdapter( tycho_url="0.0.0.0:4242", protocol=protocol, diff --git a/testing/tycho-client/tycho_client/decoders.py b/testing/tycho-client/tycho_client/decoders.py index 589e5ed..b616702 100644 --- a/testing/tycho-client/tycho_client/decoders.py +++ b/testing/tycho-client/tycho_client/decoders.py @@ -20,9 +20,10 @@ log = getLogger(__name__) class ThirdPartyPoolTychoDecoder: """ThirdPartyPool decoder for protocol messages from the Tycho feed""" - def __init__(self, adapter_contract: str, minimum_gas: int): + def __init__(self, adapter_contract: str, minimum_gas: int, trace: bool): self.adapter_contract = adapter_contract self.minimum_gas = minimum_gas + self.trace = trace def decode_snapshot( self, @@ -67,7 +68,7 @@ class ThirdPartyPoolTychoDecoder: exchange=exchange, adapter_contract_name=self.adapter_contract, minimum_gas=self.minimum_gas, - trace=False, + trace=self.trace, **optional_attributes, )