mirror of
https://github.com/scroll-tech/scroll.git
synced 2026-02-01 01:05:35 -05:00
88 lines
2.1 KiB
Go
88 lines
2.1 KiB
Go
package l2
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/scroll-tech/go-ethereum/ethclient"
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"scroll-tech/common/docker"
|
|
|
|
"scroll-tech/bridge/config"
|
|
)
|
|
|
|
var (
|
|
// config
|
|
cfg *config.Config
|
|
|
|
// docker consider handler.
|
|
l1gethImg docker.ImgInstance
|
|
l2gethImg docker.ImgInstance
|
|
dbImg docker.ImgInstance
|
|
|
|
// l2geth client
|
|
l2Cli *ethclient.Client
|
|
)
|
|
|
|
func setupEnv(t *testing.T) (err error) {
|
|
// Load config.
|
|
cfg, err = config.NewConfig("../config.json")
|
|
assert.NoError(t, err)
|
|
|
|
// Create l1geth container.
|
|
l1gethImg = docker.NewTestL1Docker(t)
|
|
cfg.L2Config.RelayerConfig.SenderConfig.Endpoint = l1gethImg.Endpoint()
|
|
cfg.L1Config.Endpoint = l1gethImg.Endpoint()
|
|
|
|
// Create l2geth container.
|
|
l2gethImg = docker.NewTestL2Docker(t)
|
|
cfg.L1Config.RelayerConfig.SenderConfig.Endpoint = l2gethImg.Endpoint()
|
|
cfg.L2Config.Endpoint = l2gethImg.Endpoint()
|
|
|
|
// Create db container.
|
|
dbImg = docker.NewTestDBDocker(t, cfg.DBConfig.DriverName)
|
|
cfg.DBConfig.DSN = dbImg.Endpoint()
|
|
|
|
// Create l2geth client.
|
|
l2Cli, err = ethclient.Dial(cfg.L2Config.Endpoint)
|
|
assert.NoError(t, err)
|
|
|
|
return err
|
|
}
|
|
|
|
func free(t *testing.T) {
|
|
if dbImg != nil {
|
|
assert.NoError(t, dbImg.Stop())
|
|
}
|
|
if l1gethImg != nil {
|
|
assert.NoError(t, l1gethImg.Stop())
|
|
}
|
|
if l2gethImg != nil {
|
|
assert.NoError(t, l2gethImg.Stop())
|
|
}
|
|
}
|
|
|
|
func TestFunction(t *testing.T) {
|
|
if err := setupEnv(t); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Run l2 watcher test cases.
|
|
t.Run("TestCreateNewWatcherAndStop", testCreateNewWatcherAndStop)
|
|
t.Run("TestMonitorBridgeContract", testMonitorBridgeContract)
|
|
t.Run("TestFetchMultipleSentMessageInOneBlock", testFetchMultipleSentMessageInOneBlock)
|
|
|
|
// Run l2 relayer test cases.
|
|
t.Run("TestCreateNewRelayer", testCreateNewRelayer)
|
|
t.Run("TestL2RelayerProcessSaveEvents", testL2RelayerProcessSaveEvents)
|
|
t.Run("testL2RelayerProcessPendingBatches", testL2RelayerProcessPendingBatches)
|
|
t.Run("testL2RelayerProcessCommittedBatches", testL2RelayerProcessCommittedBatches)
|
|
t.Run("testL2RelayerSkipBatches", testL2RelayerSkipBatches)
|
|
|
|
t.Run("testBatchProposer", testBatchProposer)
|
|
|
|
t.Cleanup(func() {
|
|
free(t)
|
|
})
|
|
}
|