package synchronizer
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/ethereum/go-ethereum/ethclient"
|
|
dbUtils "github.com/hermeznetwork/hermez-node/db"
|
|
"github.com/hermeznetwork/hermez-node/db/historydb"
|
|
"github.com/hermeznetwork/hermez-node/db/statedb"
|
|
"github.com/hermeznetwork/hermez-node/eth"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func Test(t *testing.T) {
|
|
// Int State DB
|
|
dir, err := ioutil.TempDir("", "tmpdb")
|
|
require.Nil(t, err)
|
|
|
|
sdb, err := statedb.NewStateDB(dir, statedb.TypeSynchronizer, 32)
|
|
assert.Nil(t, err)
|
|
|
|
// Init History DB
|
|
pass := os.Getenv("POSTGRES_PASS")
|
|
db, err := dbUtils.InitSQLDB(5432, "localhost", "hermez", pass, "hermez")
|
|
require.Nil(t, err)
|
|
historyDB := historydb.NewHistoryDB(db)
|
|
err = historyDB.Reorg(0)
|
|
assert.Nil(t, err)
|
|
|
|
// Init eth client
|
|
ehtClientDialURL := os.Getenv("ETHCLIENT_DIAL_URL")
|
|
ethClient, err := ethclient.Dial(ehtClientDialURL)
|
|
require.Nil(t, err)
|
|
|
|
client := eth.NewClient(ethClient, nil, nil, nil)
|
|
|
|
// Create Synchronizer
|
|
s := NewSynchronizer(client, historyDB, sdb)
|
|
require.NotNil(t, s)
|
|
|
|
// Test Sync
|
|
// err = s.Sync()
|
|
// require.Nil(t, err)
|
|
|
|
// TODO: Reorg will be properly tested once we have the mock ethClient implemented
|
|
/*
|
|
// Force a Reorg
|
|
lastSavedBlock, err := historyDB.GetLastBlock()
|
|
require.Nil(t, err)
|
|
|
|
lastSavedBlock.EthBlockNum++
|
|
err = historyDB.AddBlock(lastSavedBlock)
|
|
require.Nil(t, err)
|
|
|
|
lastSavedBlock.EthBlockNum++
|
|
err = historyDB.AddBlock(lastSavedBlock)
|
|
require.Nil(t, err)
|
|
|
|
log.Debugf("Wait for the blockchain to generate some blocks...")
|
|
time.Sleep(40 * time.Second)
|
|
|
|
|
|
err = s.Sync()
|
|
require.Nil(t, err)
|
|
*/
|
|
}
|