[NOD-1583] Move all TestXXX interfaces to testapi

This commit is contained in:
Mike Zak 2020-12-02 11:55:33 +02:00 committed by Svarog
parent 9756d64f28
commit ab3c81c552
15 changed files with 79 additions and 52 deletions

View File

@ -6,13 +6,3 @@ import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
type BlockBuilder interface { type BlockBuilder interface {
BuildBlock(coinbaseData *externalapi.DomainCoinbaseData, transactions []*externalapi.DomainTransaction) (*externalapi.DomainBlock, error) BuildBlock(coinbaseData *externalapi.DomainCoinbaseData, transactions []*externalapi.DomainTransaction) (*externalapi.DomainBlock, error)
} }
// TestBlockBuilder adds to the main BlockBuilder methods required by tests
type TestBlockBuilder interface {
BlockBuilder
// BuildBlockWithParents builds a block with provided parents, coinbaseData and transactions,
// and returns the block together with its past UTXO-diff from the virtual.
BuildBlockWithParents(parentHashes []*externalapi.DomainHash, coinbaseData *externalapi.DomainCoinbaseData,
transactions []*externalapi.DomainTransaction) (*externalapi.DomainBlock, *UTXODiff, error)
}

View File

@ -11,12 +11,3 @@ type ConsensusStateManager interface {
HeaderTipsPruningPoint() (*externalapi.DomainHash, error) HeaderTipsPruningPoint() (*externalapi.DomainHash, error)
CalculatePastUTXOAndAcceptanceData(blockHash *externalapi.DomainHash) (*UTXODiff, AcceptanceData, Multiset, error) CalculatePastUTXOAndAcceptanceData(blockHash *externalapi.DomainHash) (*UTXODiff, AcceptanceData, Multiset, error)
} }
// TestConsensusStateManager adds to the main ConsensusStateManager methods required by tests
type TestConsensusStateManager interface {
ConsensusStateManager
AddUTXOToMultiset(multiset Multiset, entry *externalapi.UTXOEntry,
outpoint *externalapi.DomainOutpoint) error
ResolveBlockStatus(blockHash *externalapi.DomainHash) (externalapi.BlockStatus, error)
VirtualFinalityPoint() (*externalapi.DomainHash, error)
}

View File

@ -10,11 +10,3 @@ type ReachabilityManager interface {
IsDAGAncestorOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error) IsDAGAncestorOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error)
UpdateReindexRoot(selectedTip *externalapi.DomainHash) error UpdateReindexRoot(selectedTip *externalapi.DomainHash) error
} }
// TestReachabilityManager adds to the main ReachabilityManager methods required by tests
type TestReachabilityManager interface {
ReachabilityManager
SetReachabilityReindexWindow(reindexWindow uint64)
SetReachabilityReindexSlack(reindexSlack uint64)
ReachabilityReindexSlack() uint64
}

View File

@ -2,7 +2,6 @@ package model
import ( import (
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi" "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
"github.com/kaspanet/kaspad/domain/consensus/utils/txscript"
) )
// TransactionValidator exposes a set of validation classes, after which // TransactionValidator exposes a set of validation classes, after which
@ -12,10 +11,3 @@ type TransactionValidator interface {
ValidateTransactionInContextAndPopulateMassAndFee(tx *externalapi.DomainTransaction, ValidateTransactionInContextAndPopulateMassAndFee(tx *externalapi.DomainTransaction,
povTransactionHash *externalapi.DomainHash, selectedParentMedianTime int64) error povTransactionHash *externalapi.DomainHash, selectedParentMedianTime int64) error
} }
// TestTransactionValidator adds to the main TransactionValidator methods required by tests
type TestTransactionValidator interface {
TransactionValidator
SigCache() *txscript.SigCache
SetSigCache(sigCache *txscript.SigCache)
}

View File

@ -0,0 +1,16 @@
package testapi
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
)
// TestBlockBuilder adds to the main BlockBuilder methods required by tests
type TestBlockBuilder interface {
model.BlockBuilder
// BuildBlockWithParents builds a block with provided parents, coinbaseData and transactions,
// and returns the block together with its past UTXO-diff from the virtual.
BuildBlockWithParents(parentHashes []*externalapi.DomainHash, coinbaseData *externalapi.DomainCoinbaseData,
transactions []*externalapi.DomainTransaction) (*externalapi.DomainBlock, *model.UTXODiff, error)
}

View File

@ -33,11 +33,11 @@ type TestConsensus interface {
ReachabilityDataStore() model.ReachabilityDataStore ReachabilityDataStore() model.ReachabilityDataStore
UTXODiffStore() model.UTXODiffStore UTXODiffStore() model.UTXODiffStore
BlockBuilder() model.TestBlockBuilder BlockBuilder() TestBlockBuilder
BlockProcessor() model.BlockProcessor BlockProcessor() model.BlockProcessor
BlockValidator() model.BlockValidator BlockValidator() model.BlockValidator
CoinbaseManager() model.CoinbaseManager CoinbaseManager() model.CoinbaseManager
ConsensusStateManager() model.TestConsensusStateManager ConsensusStateManager() TestConsensusStateManager
DAGTopologyManager() model.DAGTopologyManager DAGTopologyManager() model.DAGTopologyManager
DAGTraversalManager() model.DAGTraversalManager DAGTraversalManager() model.DAGTraversalManager
DifficultyManager() model.DifficultyManager DifficultyManager() model.DifficultyManager
@ -46,7 +46,7 @@ type TestConsensus interface {
MergeDepthManager() model.MergeDepthManager MergeDepthManager() model.MergeDepthManager
PastMedianTimeManager() model.PastMedianTimeManager PastMedianTimeManager() model.PastMedianTimeManager
PruningManager() model.PruningManager PruningManager() model.PruningManager
ReachabilityManager() model.TestReachabilityManager ReachabilityManager() TestReachabilityManager
SyncManager() model.SyncManager SyncManager() model.SyncManager
TransactionValidator() model.TestTransactionValidator TransactionValidator() TestTransactionValidator
} }

View File

@ -0,0 +1,15 @@
package testapi
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
)
// TestConsensusStateManager adds to the main ConsensusStateManager methods required by tests
type TestConsensusStateManager interface {
model.ConsensusStateManager
AddUTXOToMultiset(multiset model.Multiset, entry *externalapi.UTXOEntry,
outpoint *externalapi.DomainOutpoint) error
ResolveBlockStatus(blockHash *externalapi.DomainHash) (externalapi.BlockStatus, error)
VirtualFinalityPoint() (*externalapi.DomainHash, error)
}

View File

@ -0,0 +1,11 @@
package testapi
import "github.com/kaspanet/kaspad/domain/consensus/model"
// TestReachabilityManager adds to the main ReachabilityManager methods required by tests
type TestReachabilityManager interface {
model.ReachabilityManager
SetReachabilityReindexWindow(reindexWindow uint64)
SetReachabilityReindexSlack(reindexSlack uint64)
ReachabilityReindexSlack() uint64
}

View File

@ -0,0 +1,13 @@
package testapi
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/utils/txscript"
)
// TestTransactionValidator adds to the main TransactionValidator methods required by tests
type TestTransactionValidator interface {
model.TransactionValidator
SigCache() *txscript.SigCache
SetSigCache(sigCache *txscript.SigCache)
}

View File

@ -20,7 +20,7 @@ var tempBlockHash = &externalapi.DomainHash{
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
// NewTestBlockBuilder creates an instance of a TestBlockBuilder // NewTestBlockBuilder creates an instance of a TestBlockBuilder
func NewTestBlockBuilder(baseBlockBuilder model.BlockBuilder, testConsensus testapi.TestConsensus) model.TestBlockBuilder { func NewTestBlockBuilder(baseBlockBuilder model.BlockBuilder, testConsensus testapi.TestConsensus) testapi.TestBlockBuilder {
return &testBlockBuilder{ return &testBlockBuilder{
blockBuilder: baseBlockBuilder.(*blockBuilder), blockBuilder: baseBlockBuilder.(*blockBuilder),
testConsensus: testConsensus, testConsensus: testConsensus,

View File

@ -3,6 +3,7 @@ package consensusstatemanager
import ( 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/consensus/model/testapi"
) )
type testConsensusStateManager struct { type testConsensusStateManager struct {
@ -10,7 +11,7 @@ type testConsensusStateManager struct {
} }
// NewTestConsensusStateManager creates an instance of a TestConsensusStateManager // NewTestConsensusStateManager creates an instance of a TestConsensusStateManager
func NewTestConsensusStateManager(baseConsensusStateManager model.ConsensusStateManager) model.TestConsensusStateManager { func NewTestConsensusStateManager(baseConsensusStateManager model.ConsensusStateManager) testapi.TestConsensusStateManager {
return &testConsensusStateManager{consensusStateManager: baseConsensusStateManager.(*consensusStateManager)} return &testConsensusStateManager{consensusStateManager: baseConsensusStateManager.(*consensusStateManager)}
} }

View File

@ -1,6 +1,9 @@
package reachabilitymanager package reachabilitymanager
import "github.com/kaspanet/kaspad/domain/consensus/model" import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/testapi"
)
type testReachabilityManager struct { type testReachabilityManager struct {
*reachabilityManager *reachabilityManager
@ -19,6 +22,6 @@ func (t testReachabilityManager) SetReachabilityReindexWindow(reindexWindow uint
} }
// NewTestReachabilityManager creates an instance of a TestReachabilityManager // NewTestReachabilityManager creates an instance of a TestReachabilityManager
func NewTestReachabilityManager(manager model.ReachabilityManager) model.TestReachabilityManager { func NewTestReachabilityManager(manager model.ReachabilityManager) testapi.TestReachabilityManager {
return &testReachabilityManager{reachabilityManager: manager.(*reachabilityManager)} return &testReachabilityManager{reachabilityManager: manager.(*reachabilityManager)}
} }

View File

@ -2,6 +2,7 @@ package transactionvalidator
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/utils/txscript" "github.com/kaspanet/kaspad/domain/consensus/utils/txscript"
) )
@ -10,7 +11,7 @@ type testTransactionValidator struct {
} }
// NewTestTransactionValidator creates an instance of a TestTransactionValidator // NewTestTransactionValidator creates an instance of a TestTransactionValidator
func NewTestTransactionValidator(baseTransactionValidator model.TransactionValidator) model.TestTransactionValidator { func NewTestTransactionValidator(baseTransactionValidator model.TransactionValidator) testapi.TestTransactionValidator {
return &testTransactionValidator{transactionValidator: baseTransactionValidator.(*transactionValidator)} return &testTransactionValidator{transactionValidator: baseTransactionValidator.(*transactionValidator)}
} }

View File

@ -3,16 +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/externalapi" "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
"github.com/kaspanet/kaspad/domain/consensus/model/testapi"
"github.com/kaspanet/kaspad/domain/consensus/utils/consensusserialization" "github.com/kaspanet/kaspad/domain/consensus/utils/consensusserialization"
) )
type testConsensus struct { type testConsensus struct {
*consensus *consensus
testBlockBuilder model.TestBlockBuilder testBlockBuilder testapi.TestBlockBuilder
testReachabilityManager model.TestReachabilityManager testReachabilityManager testapi.TestReachabilityManager
testConsensusStateManager model.TestConsensusStateManager testConsensusStateManager testapi.TestConsensusStateManager
testTransactionValidator model.TestTransactionValidator testTransactionValidator testapi.TestTransactionValidator
} }
func (tc *testConsensus) BuildBlockWithParents(parentHashes []*externalapi.DomainHash, func (tc *testConsensus) BuildBlockWithParents(parentHashes []*externalapi.DomainHash,

View File

@ -2,6 +2,7 @@ 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"
) )
func (tc *testConsensus) DatabaseContext() model.DBReader { func (tc *testConsensus) DatabaseContext() model.DBReader {
@ -56,7 +57,7 @@ func (tc *testConsensus) UTXODiffStore() model.UTXODiffStore {
return tc.utxoDiffStore return tc.utxoDiffStore
} }
func (tc *testConsensus) BlockBuilder() model.TestBlockBuilder { func (tc *testConsensus) BlockBuilder() testapi.TestBlockBuilder {
return tc.testBlockBuilder return tc.testBlockBuilder
} }
@ -72,7 +73,7 @@ func (tc *testConsensus) CoinbaseManager() model.CoinbaseManager {
return tc.coinbaseManager return tc.coinbaseManager
} }
func (tc *testConsensus) ConsensusStateManager() model.TestConsensusStateManager { func (tc *testConsensus) ConsensusStateManager() testapi.TestConsensusStateManager {
return tc.testConsensusStateManager return tc.testConsensusStateManager
} }
@ -108,7 +109,7 @@ func (tc *testConsensus) PruningManager() model.PruningManager {
return tc.pruningManager return tc.pruningManager
} }
func (tc *testConsensus) ReachabilityManager() model.TestReachabilityManager { func (tc *testConsensus) ReachabilityManager() testapi.TestReachabilityManager {
return tc.testReachabilityManager return tc.testReachabilityManager
} }
@ -116,6 +117,6 @@ func (tc *testConsensus) SyncManager() model.SyncManager {
return tc.syncManager return tc.syncManager
} }
func (tc *testConsensus) TransactionValidator() model.TestTransactionValidator { func (tc *testConsensus) TransactionValidator() testapi.TestTransactionValidator {
return tc.testTransactionValidator return tc.testTransactionValidator
} }