op-e2e: add test option to utilize external eth clients for L2 (#6280)
* 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:
Jason Yellick <jason@enya.ai>
Showing
This diff is collapsed.
op-e2e/.gitignore
0 → 100644
op-e2e/external.go
0 → 100644
op-e2e/external/config.go
0 → 100644
op-e2e/external_geth/main.go
0 → 100644
This diff is collapsed.
This diff is collapsed.
Please register or sign in to comment