Commit 7ec383b1 authored by OptimismBot's avatar OptimismBot Committed by GitHub

Merge pull request #7050 from ethereum-optimism/indexer.e2etest.lifecycle

fix(indexer): e2e test lifecycle
parents 4cd04f39 45d4453c
...@@ -36,6 +36,7 @@ func runIndexer(ctx *cli.Context) error { ...@@ -36,6 +36,7 @@ func runIndexer(ctx *cli.Context) error {
log.Error("failed to connect to database", "err", err) log.Error("failed to connect to database", "err", err)
return err return err
} }
defer db.Close()
indexer, err := indexer.NewIndexer(log, db, cfg.Chain, cfg.RPCs, cfg.Metrics) indexer, err := indexer.NewIndexer(log, db, cfg.Chain, cfg.RPCs, cfg.Metrics)
if err != nil { if err != nil {
...@@ -59,6 +60,7 @@ func runApi(ctx *cli.Context) error { ...@@ -59,6 +60,7 @@ func runApi(ctx *cli.Context) error {
log.Error("failed to connect to database", "err", err) log.Error("failed to connect to database", "err", err)
return err return err
} }
defer db.Close()
api := api.NewApi(log, db.BridgeTransfers) api := api.NewApi(log, db.BridgeTransfers)
return api.Listen(ctx.Context, cfg.API.Port) return api.Listen(ctx.Context, cfg.API.Port)
......
...@@ -52,6 +52,7 @@ func createE2ETestSuite(t *testing.T) E2ETestSuite { ...@@ -52,6 +52,7 @@ func createE2ETestSuite(t *testing.T) E2ETestSuite {
opCfg.DeployConfig.FinalizationPeriodSeconds = 2 opCfg.DeployConfig.FinalizationPeriodSeconds = 2
opSys, err := opCfg.Start(t) opSys, err := opCfg.Start(t)
require.NoError(t, err) require.NoError(t, err)
t.Cleanup(func() { opSys.Close() })
// E2E tests can run on the order of magnitude of minutes. Once // E2E tests can run on the order of magnitude of minutes. Once
// the system is running, mark this test for Parallel execution // the system is running, mark this test for Parallel execution
...@@ -87,26 +88,18 @@ func createE2ETestSuite(t *testing.T) E2ETestSuite { ...@@ -87,26 +88,18 @@ func createE2ETestSuite(t *testing.T) E2ETestSuite {
db, err := database.NewDB(indexerCfg.DB) db, err := database.NewDB(indexerCfg.DB)
require.NoError(t, err) require.NoError(t, err)
t.Cleanup(func() { db.Close() })
indexer, err := indexer.NewIndexer(logger, db, indexerCfg.Chain, indexerCfg.RPCs, indexerCfg.Metrics) indexer, err := indexer.NewIndexer(logger, db, indexerCfg.Chain, indexerCfg.RPCs, indexerCfg.Metrics)
require.NoError(t, err) require.NoError(t, err)
indexerStoppedCh := make(chan interface{}, 1)
indexerCtx, indexerStop := context.WithCancel(context.Background()) indexerCtx, indexerStop := context.WithCancel(context.Background())
t.Cleanup(func() { indexerStop() })
go func() { go func() {
err := indexer.Run(indexerCtx) err := indexer.Run(indexerCtx)
require.NoError(t, err) require.NoError(t, err)
indexerStoppedCh <- nil
}() }()
t.Cleanup(func() {
indexerStop()
<-indexerStoppedCh
indexer.Cleanup()
db.Close()
opSys.Close()
})
return E2ETestSuite{ return E2ETestSuite{
t: t, t: t,
DB: db, DB: db,
......
...@@ -133,8 +133,3 @@ func (i *Indexer) Run(ctx context.Context) error { ...@@ -133,8 +133,3 @@ func (i *Indexer) Run(ctx context.Context) error {
return err return err
} }
// Cleanup releases any resources that might be currently held by the indexer
func (i *Indexer) Cleanup() {
i.db.Close()
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment