Save and expose the database in TestConsensus (#1349)

This commit is contained in:
Elichai Turkel 2021-01-05 14:13:33 +02:00 committed by GitHub
parent 119e7374e1
commit 72a7ca53e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 10 additions and 0 deletions

View File

@ -379,6 +379,7 @@ func (f *factory) NewTestConsensusWithDataDir(dagParams *dagconfig.Params, dataD
tstConsensus := &testConsensus{ tstConsensus := &testConsensus{
dagParams: dagParams, dagParams: dagParams,
consensus: consensusAsImplementation, consensus: consensusAsImplementation,
database: db,
testConsensusStateManager: testConsensusStateManager, testConsensusStateManager: testConsensusStateManager,
testReachabilityManager: reachabilitymanager.NewTestReachabilityManager(consensusAsImplementation. testReachabilityManager: reachabilitymanager.NewTestReachabilityManager(consensusAsImplementation.
reachabilityManager), reachabilityManager),

View File

@ -4,6 +4,7 @@ import (
"github.com/kaspanet/kaspad/domain/consensus/model" "github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi" "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
"github.com/kaspanet/kaspad/domain/dagconfig" "github.com/kaspanet/kaspad/domain/dagconfig"
"github.com/kaspanet/kaspad/infrastructure/db/database"
) )
// TestConsensus wraps the Consensus interface with some methods that are needed by tests only // TestConsensus wraps the Consensus interface with some methods that are needed by tests only
@ -12,6 +13,7 @@ type TestConsensus interface {
DAGParams() *dagconfig.Params DAGParams() *dagconfig.Params
DatabaseContext() model.DBManager DatabaseContext() model.DBManager
Database() database.Database
BuildBlockWithParents(parentHashes []*externalapi.DomainHash, coinbaseData *externalapi.DomainCoinbaseData, BuildBlockWithParents(parentHashes []*externalapi.DomainHash, coinbaseData *externalapi.DomainCoinbaseData,
transactions []*externalapi.DomainTransaction) (*externalapi.DomainBlock, model.UTXODiff, error) transactions []*externalapi.DomainTransaction) (*externalapi.DomainBlock, model.UTXODiff, error)

View File

@ -6,11 +6,13 @@ import (
"github.com/kaspanet/kaspad/domain/consensus/model/testapi" "github.com/kaspanet/kaspad/domain/consensus/model/testapi"
"github.com/kaspanet/kaspad/domain/consensus/utils/consensushashing" "github.com/kaspanet/kaspad/domain/consensus/utils/consensushashing"
"github.com/kaspanet/kaspad/domain/dagconfig" "github.com/kaspanet/kaspad/domain/dagconfig"
"github.com/kaspanet/kaspad/infrastructure/db/database"
) )
type testConsensus struct { type testConsensus struct {
*consensus *consensus
dagParams *dagconfig.Params dagParams *dagconfig.Params
database database.Database
testBlockBuilder testapi.TestBlockBuilder testBlockBuilder testapi.TestBlockBuilder
testReachabilityManager testapi.TestReachabilityManager testReachabilityManager testapi.TestReachabilityManager

View File

@ -3,12 +3,17 @@ package consensus
import ( import (
"github.com/kaspanet/kaspad/domain/consensus/model" "github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/testapi" "github.com/kaspanet/kaspad/domain/consensus/model/testapi"
"github.com/kaspanet/kaspad/infrastructure/db/database"
) )
func (tc *testConsensus) DatabaseContext() model.DBManager { func (tc *testConsensus) DatabaseContext() model.DBManager {
return tc.databaseContext return tc.databaseContext
} }
func (tc *testConsensus) Database() database.Database {
return tc.database
}
func (tc *testConsensus) AcceptanceDataStore() model.AcceptanceDataStore { func (tc *testConsensus) AcceptanceDataStore() model.AcceptanceDataStore {
return tc.acceptanceDataStore return tc.acceptanceDataStore
} }