• Jason Yellick's avatar
    op-e2e: add test option to utilize external eth clients for L2 (#6280) · 4becaa56
    Jason Yellick authored
    * op-e2e: add test option to use external eth client
    
    This change is an attempt to allow other Optimism clients like op-erigon
    to utilize the op-e2e tests in a minimally invasive way.  Almost all of
    the tests are unchanged, with some small structural changes to the setup
    to allow for utilization of an in process Geth, or extra-process generic
    Ethereum client.
    
    This change establishes a convention for external clients (or shims) to
    follow for interoperability with these tests.  The external process shim
    must accept a '--config <path>' flag.  This flag specifies a path to a
    JSON file which contains necessary execution parameters. These
    parameters include the data dir to use for the client, the JWT path, the
    genesis JSON path, and the chain ID.
    
    Utilizing the external binary is is generally more resource intensive
    than the in process Geth path, but, utilizing parallelism the test suite
    there is no noticable difference in execution time between the in
    process and an extra-process op-geth.
    
    This commit simply performs the wiring, while the next commit will add
    an op-geth consumer and wire into CI.
    
    * op-e2e: add basic external geth runner
    
    This commit adds an example external shim which utilizes the code in the
    previous commit.  It also integrates it into the Makefile and into CI
    (which unfortunately does not use the Makefile).
    
    To utilize this geth runner locally you can execute:
    
      make test-external-geth
    
    from the op-e2e directory.  See the README.md included in external_geth
    for more details.
    
    ---------
    Co-authored-by: default avatarJason Yellick <jason@enya.ai>
    4becaa56
system_test.go 54.6 KB