mempool: consoldate implementations (#7171)

* mempool: consoldate implementations

* update chagelog

* fix test

* Apply suggestions from code review

Co-authored-by: M. J. Fromberger <michael.j.fromberger@gmail.com>

* cleanup locking comments

* context twiddle

* migrate away from deprecated ioutil APIs (#7175)

Co-authored-by: Callum Waters <cmwaters19@gmail.com>
Co-authored-by: M. J. Fromberger <fromberger@interchain.io>

Co-authored-by: M. J. Fromberger <michael.j.fromberger@gmail.com>
Co-authored-by: Callum Waters <cmwaters19@gmail.com>
Co-authored-by: M. J. Fromberger <fromberger@interchain.io>
This commit is contained in:
Sam Kleinman
2021-10-29 04:19:06 -04:00
committed by GitHub
co-authored by M. J. Fromberger Callum Waters M. J. Fromberger
parent 8441b3715a
commit 5cc980698a
37 changed files with 1373 additions and 3905 deletions
-8
View File
@@ -44,10 +44,6 @@ var (
"tcp": 20,
"unix": 10,
}
nodeMempools = weightedChoice{
"v0": 20,
"v1": 80,
}
nodeStateSyncs = weightedChoice{
e2e.StateSyncDisabled: 10,
e2e.StateSyncP2P: 45,
@@ -277,7 +273,6 @@ func generateNode(
StartAt: startAt,
Database: nodeDatabases.Choose(r),
PrivvalProtocol: nodePrivvalProtocols.Choose(r),
Mempool: nodeMempools.Choose(r),
StateSync: e2e.StateSyncDisabled,
PersistInterval: ptrUint64(uint64(nodePersistIntervals.Choose(r).(int))),
SnapshotInterval: uint64(nodeSnapshotIntervals.Choose(r).(int)),
@@ -285,9 +280,6 @@ func generateNode(
Perturb: nodePerturbations.Choose(r),
}
if node.Mempool == "" {
node.Mempool = "v1"
}
if node.PrivvalProtocol == "" {
node.PrivvalProtocol = "file"
}
-3
View File
@@ -37,9 +37,6 @@ func TestGenerator(t *testing.T) {
}
})
if e2e.Mode(node.Mode) != e2e.ModeLight {
t.Run("Mempool", func(t *testing.T) {
require.NotZero(t, node.Mempool)
})
t.Run("PrivvalProtocol", func(t *testing.T) {
require.NotZero(t, node.PrivvalProtocol)
})
-4
View File
@@ -291,10 +291,6 @@ func MakeConfig(node *e2e.Node) (*config.Config, error) {
return nil, fmt.Errorf("unexpected mode %q", node.Mode)
}
if node.Mempool != "" {
cfg.Mempool.Version = node.Mempool
}
switch node.StateSync {
case e2e.StateSyncP2P:
cfg.StateSync.Enable = true
@@ -1,4 +1,4 @@
package v0
package mempool
import (
"context"
@@ -7,10 +7,11 @@ import (
"github.com/tendermint/tendermint/abci/example/kvstore"
"github.com/tendermint/tendermint/config"
"github.com/tendermint/tendermint/internal/mempool"
mempoolv0 "github.com/tendermint/tendermint/internal/mempool/v0"
"github.com/tendermint/tendermint/libs/log"
)
var mp mempool.Mempool
var mp *mempool.TxMempool
var getMp func() mempool.Mempool
func init() {
app := kvstore.NewApplication()
@@ -24,11 +25,22 @@ func init() {
cfg := config.DefaultMempoolConfig()
cfg.Broadcast = false
mp = mempoolv0.NewCListMempool(cfg, appConnMem, 0)
getMp = func() mempool.Mempool {
if mp == nil {
mp = mempool.NewTxMempool(
log.TestingLogger().With("module", "mempool"),
cfg,
appConnMem,
0,
)
}
return mp
}
}
func Fuzz(data []byte) int {
err := mp.CheckTx(context.Background(), data, nil, mempool.TxInfo{})
err := getMp().CheckTx(context.Background(), data, nil, mempool.TxInfo{})
if err != nil {
return 0
}
@@ -1,4 +1,4 @@
package v0_test
package mempool_test
import (
"io"
@@ -7,7 +7,7 @@ import (
"testing"
"github.com/stretchr/testify/require"
mempoolv0 "github.com/tendermint/tendermint/test/fuzz/mempool/v0"
mempool "github.com/tendermint/tendermint/test/fuzz/mempool"
)
const testdataCasesDir = "testdata/cases"
@@ -27,7 +27,7 @@ func TestMempoolTestdataCases(t *testing.T) {
require.NoError(t, err)
input, err := io.ReadAll(f)
require.NoError(t, err)
mempoolv0.Fuzz(input)
mempool.Fuzz(input)
})
}
}
-37
View File
@@ -1,37 +0,0 @@
package v1
import (
"context"
abciclient "github.com/tendermint/tendermint/abci/client"
"github.com/tendermint/tendermint/abci/example/kvstore"
"github.com/tendermint/tendermint/config"
"github.com/tendermint/tendermint/internal/mempool"
mempoolv1 "github.com/tendermint/tendermint/internal/mempool/v0"
)
var mp mempool.Mempool
func init() {
app := kvstore.NewApplication()
cc := abciclient.NewLocalCreator(app)
appConnMem, _ := cc()
err := appConnMem.Start()
if err != nil {
panic(err)
}
cfg := config.DefaultMempoolConfig()
cfg.Broadcast = false
mp = mempoolv1.NewCListMempool(cfg, appConnMem, 0)
}
func Fuzz(data []byte) int {
err := mp.CheckTx(context.Background(), data, nil, mempool.TxInfo{})
if err != nil {
return 0
}
return 1
}
-33
View File
@@ -1,33 +0,0 @@
package v1_test
import (
"io"
"os"
"path/filepath"
"testing"
"github.com/stretchr/testify/require"
mempoolv1 "github.com/tendermint/tendermint/test/fuzz/mempool/v1"
)
const testdataCasesDir = "testdata/cases"
func TestMempoolTestdataCases(t *testing.T) {
entries, err := os.ReadDir(testdataCasesDir)
require.NoError(t, err)
for _, e := range entries {
entry := e
t.Run(entry.Name(), func(t *testing.T) {
defer func() {
r := recover()
require.Nilf(t, r, "testdata/cases test panic")
}()
f, err := os.Open(filepath.Join(testdataCasesDir, entry.Name()))
require.NoError(t, err)
input, err := io.ReadAll(f)
require.NoError(t, err)
mempoolv1.Fuzz(input)
})
}
}
View File