* test/fuzz: add test to reproduce found fuzz errorspull/6771/head
@ -0,0 +1,33 @@ | |||||
package v0_test | |||||
import ( | |||||
"io/ioutil" | |||||
"os" | |||||
"path/filepath" | |||||
"testing" | |||||
"github.com/stretchr/testify/require" | |||||
mempoolv0 "github.com/tendermint/tendermint/test/fuzz/mempool/v0" | |||||
) | |||||
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 := ioutil.ReadAll(f) | |||||
require.NoError(t, err) | |||||
mempoolv0.Fuzz(input) | |||||
}) | |||||
} | |||||
} |
@ -0,0 +1,37 @@ | |||||
package v1 | |||||
import ( | |||||
"context" | |||||
"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" | |||||
"github.com/tendermint/tendermint/proxy" | |||||
) | |||||
var mp mempool.Mempool | |||||
func init() { | |||||
app := kvstore.NewApplication() | |||||
cc := proxy.NewLocalClientCreator(app) | |||||
appConnMem, _ := cc.NewABCIClient() | |||||
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 | |||||
} |
@ -0,0 +1,33 @@ | |||||
package v1_test | |||||
import ( | |||||
"io/ioutil" | |||||
"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 := ioutil.ReadAll(f) | |||||
require.NoError(t, err) | |||||
mempoolv1.Fuzz(input) | |||||
}) | |||||
} | |||||
} |
@ -0,0 +1,33 @@ | |||||
package addrbook_test | |||||
import ( | |||||
"io/ioutil" | |||||
"os" | |||||
"path/filepath" | |||||
"testing" | |||||
"github.com/stretchr/testify/require" | |||||
"github.com/tendermint/tendermint/test/fuzz/p2p/addrbook" | |||||
) | |||||
const testdataCasesDir = "testdata/cases" | |||||
func TestAddrbookTestdataCases(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 := ioutil.ReadAll(f) | |||||
require.NoError(t, err) | |||||
addrbook.Fuzz(input) | |||||
}) | |||||
} | |||||
} |
@ -0,0 +1,33 @@ | |||||
package pex_test | |||||
import ( | |||||
"io/ioutil" | |||||
"os" | |||||
"path/filepath" | |||||
"testing" | |||||
"github.com/stretchr/testify/require" | |||||
"github.com/tendermint/tendermint/test/fuzz/p2p/pex" | |||||
) | |||||
const testdataCasesDir = "testdata/cases" | |||||
func TestPexTestdataCases(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 := ioutil.ReadAll(f) | |||||
require.NoError(t, err) | |||||
pex.Fuzz(input) | |||||
}) | |||||
} | |||||
} |
@ -0,0 +1,33 @@ | |||||
package secretconnection_test | |||||
import ( | |||||
"io/ioutil" | |||||
"os" | |||||
"path/filepath" | |||||
"testing" | |||||
"github.com/stretchr/testify/require" | |||||
"github.com/tendermint/tendermint/test/fuzz/p2p/secretconnection" | |||||
) | |||||
const testdataCasesDir = "testdata/cases" | |||||
func TestSecretConnectionTestdataCases(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 := ioutil.ReadAll(f) | |||||
require.NoError(t, err) | |||||
secretconnection.Fuzz(input) | |||||
}) | |||||
} | |||||
} |
@ -0,0 +1 @@ | |||||
[0] |
@ -0,0 +1 @@ | |||||
[0,0] |
@ -0,0 +1 @@ | |||||
[{"iD":7},{"iD":7}] |