Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions op-acceptance-tests/tests/interop/message/init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ import (
"github.com/ethereum-optimism/optimism/op-devstack/presets"
)

var SimpleInterop presets.TestSetup[*presets.SimpleInterop]

func TestMain(m *testing.M) {
SimpleInterop = presets.NewSimpleInterop
presets.DoMain(m, presets.ConfigureSimpleInterop())
presets.DoMain(m, presets.WithSimpleInterop())
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@ import (

"github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/presets"
"github.com/ethereum-optimism/optimism/op-service/eth"
)

// TestInitExecMsg tests basic interop messaging
func TestInitExecMsg(gt *testing.T) {
t := devtest.SerialT(gt)
sys := SimpleInterop(t)
sys := presets.NewSimpleInterop(t)
rng := rand.New(rand.NewSource(1234))
alice := sys.FunderA.NewFundedEOA(eth.ThousandEther)
bob := sys.FunderB.NewFundedEOA(eth.ThousandEther)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/interop"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/dsl"
"github.com/ethereum-optimism/optimism/op-devstack/presets"
"github.com/ethereum-optimism/optimism/op-devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-e2e/e2eutils/wait"
"github.com/ethereum-optimism/optimism/op-service/eth"
Expand All @@ -29,7 +30,7 @@ func TestReorgInitExecMsg(gt *testing.T) {
t := devtest.SerialT(gt)
ctx := t.Ctx()

sys := SimpleInterop(t)
sys := presets.NewSimpleInterop(t)
l := sys.Log

ia := sys.Sequencer.Escape().IndividualAPI(sys.L2ChainA.ChainID())
Expand Down
5 changes: 1 addition & 4 deletions op-acceptance-tests/tests/interop/reorgs/init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,8 @@ import (
"github.com/ethereum-optimism/optimism/op-devstack/presets"
)

var SimpleInterop presets.TestSetup[*presets.SimpleInterop]

// TestMain creates the test-setups against the shared backend
func TestMain(m *testing.M) {
SimpleInterop = presets.NewSimpleInterop
// Other setups may be added here, hydrated from the same orchestrator
presets.DoMain(m, presets.ConfigureSimpleInterop())
presets.DoMain(m, presets.WithSimpleInterop())
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"time"

"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/presets"
"github.com/ethereum-optimism/optimism/op-e2e/e2eutils/wait"
"github.com/ethereum-optimism/optimism/op-service/eth"
"github.com/ethereum-optimism/optimism/op-service/retry"
Expand All @@ -19,7 +20,7 @@ func TestReorgUnsafeHead(gt *testing.T) {
t := devtest.SerialT(gt)
ctx := t.Ctx()

sys := SimpleInterop(t)
sys := presets.NewSimpleInterop(t)
l := sys.Log

ia := sys.Sequencer.Escape().IndividualAPI(sys.L2ChainA.ChainID())
Expand Down
5 changes: 1 addition & 4 deletions op-acceptance-tests/tests/interop/sync/init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ import (
"github.com/ethereum-optimism/optimism/op-devstack/presets"
)

var SimpleInterop presets.TestSetup[*presets.SimpleInterop]

func TestMain(m *testing.M) {
SimpleInterop = presets.NewSimpleInterop
presets.DoMain(m, presets.ConfigureSimpleInterop())
presets.DoMain(m, presets.WithSimpleInterop())
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@ import (

"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/dsl"
"github.com/ethereum-optimism/optimism/op-devstack/presets"
"github.com/ethereum-optimism/optimism/op-service/eth"
)

// TestL2CLResync checks that unsafe head advances after restarting L2CL.
// Resync is only possible when supervisor and L2CL reconnects.
func TestL2CLResync(gt *testing.T) {
t := devtest.SerialT(gt)
sys := SimpleInterop(t)
sys := presets.NewSimpleInterop(t)
logger := sys.Log.With("Test", "TestL2CLResync")

logger.Info("check unsafe chains are advancing")
Expand Down
5 changes: 1 addition & 4 deletions op-acceptance-tests/tests/interop/upgrade/init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,9 @@ import (
"github.com/ethereum-optimism/optimism/op-devstack/presets"
)

var SimpleInterop presets.TestSetup[*presets.SimpleInterop]

func TestMain(m *testing.M) {
SimpleInterop = presets.NewSimpleInterop
presets.DoMain(m,
presets.ConfigureSimpleInterop(),
presets.WithSimpleInterop(),
presets.WithSuggestedInteropActivationOffset(30),
presets.WithInteropNotAtGenesis())
}
3 changes: 2 additions & 1 deletion op-acceptance-tests/tests/interop/upgrade/post_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@ import (
"github.com/ethereum-optimism/optimism/op-chain-ops/genesis"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/dsl"
"github.com/ethereum-optimism/optimism/op-devstack/presets"
"github.com/ethereum-optimism/optimism/op-devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-service/predeploys"
)

func TestPostInbox(gt *testing.T) {
t := devtest.ParallelT(gt)
sys := SimpleInterop(t)
sys := presets.NewSimpleInterop(t)
devtest.RunParallel(t, sys.L2Networks(), func(t devtest.T, net *dsl.L2Network) {
require := t.Require()
activationBlock := net.AwaitActivation(t, net.Escape().ChainConfig().InteropTime)
Expand Down
3 changes: 2 additions & 1 deletion op-acceptance-tests/tests/interop/upgrade/pre_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@ import (
"github.com/ethereum-optimism/optimism/op-chain-ops/genesis"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/dsl"
"github.com/ethereum-optimism/optimism/op-devstack/presets"
"github.com/ethereum-optimism/optimism/op-devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-service/predeploys"
)

func TestPreNoInbox(gt *testing.T) {
t := devtest.ParallelT(gt)
sys := SimpleInterop(t)
sys := presets.NewSimpleInterop(t)
require := t.Require()

t.Logger().Info("Starting")
Expand Down
7 changes: 4 additions & 3 deletions op-devstack/example/example_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,21 @@ import (

"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/dsl"
"github.com/ethereum-optimism/optimism/op-devstack/presets"
)

// TestExample1 starts an interop chain and verifies that the local unsafe head advances.
func TestExample1(gt *testing.T) {
t := devtest.ParallelT(gt)
sys := SimpleInterop(t)
sys := presets.NewSimpleInterop(t)

t.Require().NotEqual(sys.L2ChainA.ChainID(), sys.L2ChainB.ChainID(), "sanity-check we have two different chains")
sys.Supervisor.VerifySyncStatus(dsl.WithAllLocalUnsafeHeadsAdvancedBy(10))
}

func TestExample2(gt *testing.T) {
t := devtest.ParallelT(gt)
sys := SimpleInterop(t)
sys := presets.NewSimpleInterop(t)

sys.Supervisor.VerifySyncStatus(dsl.WithAllLocalUnsafeHeadsAdvancedBy(4))
}
Expand All @@ -35,7 +36,7 @@ func TestExampleTxsTracing(gt *testing.T) {
logger := t.Logger()

ctx, acquiring := tracer.Start(ctx, "acquiring interop sys")
sys := SimpleInterop(t)
sys := presets.NewSimpleInterop(t)
acquiring.End()

ctx, funded := tracer.Start(ctx, "acquiring funded eoa")
Expand Down
6 changes: 1 addition & 5 deletions op-devstack/example/init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,7 @@ import (
"github.com/ethereum-optimism/optimism/op-devstack/presets"
)

var SimpleInterop presets.TestSetup[*presets.SimpleInterop]

// TestMain creates the test-setups against the shared backend
func TestMain(m *testing.M) {
// Other setups may be added here, hydrated from the same orchestrator
SimpleInterop = presets.NewSimpleInterop
presets.DoMain(m, presets.ConfigureSimpleInterop())
presets.DoMain(m, presets.WithSimpleInterop())
}
36 changes: 0 additions & 36 deletions op-devstack/presets/backend.go

This file was deleted.

14 changes: 3 additions & 11 deletions op-devstack/presets/interop.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,17 +50,9 @@ func (s *SimpleInterop) L2Networks() []*dsl.L2Network {
}
}

// startInProcessSimpleInterop starts a new system that meets the simple interop criteria
func startInProcessSimpleInterop() stack.Option[*sysgo.Orchestrator] {
var ids sysgo.DefaultInteropSystemIDs
return sysgo.DefaultInteropSystem(&ids)
}

func ConfigureSimpleInterop() stack.CommonOption {
if globalBackend == SysGo {
return stack.MakeCommon(startInProcessSimpleInterop())
}
return nil
// WithSimpleInterop specifies a system that meets the SimpleInterop criteria.
func WithSimpleInterop() stack.CommonOption {
return stack.MakeCommon(sysgo.DefaultInteropSystem(&sysgo.DefaultInteropSystemIDs{}))
}

func NewSimpleInterop(t devtest.T) *SimpleInterop {
Expand Down
24 changes: 18 additions & 6 deletions op-devstack/presets/orchestrator.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,13 @@ import (
// unless explicitly told otherwise using a WithOrchestrator option.
var lockedOrchestrator locks.RWValue[stack.Orchestrator]

type backendKind string

const (
backendKindSysGo backendKind = "sysgo"
backendKindSysExt backendKind = "sysext"
)

// DoMain runs M with the pre- and post-processing of tests,
// to setup the default global orchestrator and global logger.
// This will os.Exit(code) and not return.
Expand Down Expand Up @@ -81,7 +88,6 @@ func DoMain(m *testing.M, opts ...stack.CommonOption) {
// TODO(#15139): set log-level filter, reduce noise
//log.SetDefault(t.Log.New("logger", "global"))

detectBackend(p.Logger())
initOrchestrator(ctx, p, stack.Combine(opts...))

errCode = m.Run()
Expand All @@ -100,15 +106,21 @@ func initOrchestrator(ctx context.Context, p devtest.P, opt stack.CommonOption)
if lockedOrchestrator.Value != nil {
return
}
p.Logger().WithContext(ctx).Info("initializing orchestrator", "backend", globalBackend)
switch globalBackend {
case SysGo:

backend := backendKindSysGo
if override, ok := os.LookupEnv("DEVSTACK_ORCHESTRATOR"); ok {
backend = backendKind(override)
}
switch backend {
case backendKindSysGo:
lockedOrchestrator.Value = sysgo.NewOrchestrator(p)
case SysExt:
case backendKindSysExt:
lockedOrchestrator.Value = sysext.NewOrchestrator(p)
default:
panic(fmt.Sprintf("Unknown backend for initializing orchestrator: %s", globalBackend))
panic(fmt.Sprintf("Unknown backend for initializing orchestrator: %s", backend))
}

p.Logger().WithContext(ctx).Info("initializing orchestrator", "backend", backend)
stack.ApplyOptionLifecycle(opt, lockedOrchestrator.Value)
}

Expand Down
6 changes: 0 additions & 6 deletions op-devstack/presets/setup.go

This file was deleted.