name test cases

This commit is contained in:
William Banfield
2022-03-28 17:05:43 -04:00
parent 27eb6efd8a
commit 65420a5257
+44 -21
View File
@@ -19,11 +19,13 @@ var (
func TestConsensusParamsValidation(t *testing.T) {
testCases := []struct {
name string
params ConsensusParams
valid bool
}{
// test block params
{
name: "block params valid",
params: makeParams(makeParamsArgs{
blockBytes: 1,
evidenceAge: 2,
@@ -32,6 +34,7 @@ func TestConsensusParamsValidation(t *testing.T) {
valid: true,
},
{
name: "block params invalid MaxBytes",
params: makeParams(makeParamsArgs{
blockBytes: 0,
evidenceAge: 2,
@@ -40,6 +43,7 @@ func TestConsensusParamsValidation(t *testing.T) {
valid: false,
},
{
name: "block params large MaxBytes",
params: makeParams(makeParamsArgs{
blockBytes: 47 * 1024 * 1024,
evidenceAge: 2,
@@ -48,6 +52,7 @@ func TestConsensusParamsValidation(t *testing.T) {
valid: true,
},
{
name: "block params small MaxBytes",
params: makeParams(makeParamsArgs{
blockBytes: 10,
evidenceAge: 2,
@@ -56,6 +61,7 @@ func TestConsensusParamsValidation(t *testing.T) {
valid: true,
},
{
name: "block params 100MB MaxBytes",
params: makeParams(makeParamsArgs{
blockBytes: 100 * 1024 * 1024,
evidenceAge: 2,
@@ -64,6 +70,7 @@ func TestConsensusParamsValidation(t *testing.T) {
valid: true,
},
{
name: "block params MaxBytes too large",
params: makeParams(makeParamsArgs{
blockBytes: 101 * 1024 * 1024,
evidenceAge: 2,
@@ -72,14 +79,7 @@ func TestConsensusParamsValidation(t *testing.T) {
valid: false,
},
{
params: makeParams(makeParamsArgs{
blockBytes: 1024 * 1024 * 1024,
evidenceAge: 2,
precision: 1,
messageDelay: 1}),
valid: false,
},
{
name: "block params 1GB MaxBytes",
params: makeParams(makeParamsArgs{
blockBytes: 1024 * 1024 * 1024,
evidenceAge: 2,
@@ -89,6 +89,7 @@ func TestConsensusParamsValidation(t *testing.T) {
},
// test evidence params
{
name: "evidence MaxAge and MaxBytes 0",
params: makeParams(makeParamsArgs{
blockBytes: 1,
evidenceAge: 0,
@@ -98,6 +99,7 @@ func TestConsensusParamsValidation(t *testing.T) {
valid: false,
},
{
name: "evidence MaxBytes greater than Block.MaxBytes",
params: makeParams(makeParamsArgs{
blockBytes: 1,
evidenceAge: 2,
@@ -107,6 +109,7 @@ func TestConsensusParamsValidation(t *testing.T) {
valid: false,
},
{
name: "evidence size below Block.MaxBytes",
params: makeParams(makeParamsArgs{
blockBytes: 1000,
evidenceAge: 2,
@@ -116,6 +119,7 @@ func TestConsensusParamsValidation(t *testing.T) {
valid: true,
},
{
name: "evidence MaxAgeDuration < 0",
params: makeParams(makeParamsArgs{
blockBytes: 1,
evidenceAge: -1,
@@ -124,8 +128,8 @@ func TestConsensusParamsValidation(t *testing.T) {
messageDelay: 1}),
valid: false,
},
// test no pubkey type provided
{
name: "no pubkey types",
params: makeParams(makeParamsArgs{
evidenceAge: 2,
pubkeyTypes: []string{},
@@ -133,8 +137,8 @@ func TestConsensusParamsValidation(t *testing.T) {
messageDelay: 1}),
valid: false,
},
// test invalid pubkey type provided
{
name: "invalid pubkey types",
params: makeParams(makeParamsArgs{
evidenceAge: 2,
pubkeyTypes: []string{"potatoes make good pubkeys"},
@@ -142,8 +146,8 @@ func TestConsensusParamsValidation(t *testing.T) {
messageDelay: 1}),
valid: false,
},
// test invalid pubkey type provided
{
name: "negative MessageDelay",
params: makeParams(makeParamsArgs{
evidenceAge: 2,
precision: 1,
@@ -151,6 +155,7 @@ func TestConsensusParamsValidation(t *testing.T) {
valid: false,
},
{
name: "negative Precision",
params: makeParams(makeParamsArgs{
evidenceAge: 2,
precision: -1,
@@ -159,11 +164,13 @@ func TestConsensusParamsValidation(t *testing.T) {
},
}
for i, tc := range testCases {
if tc.valid {
assert.NoErrorf(t, tc.params.ValidateConsensusParams(), "expected no error for valid params (#%d)", i)
} else {
assert.Errorf(t, tc.params.ValidateConsensusParams(), "expected error for non valid params (#%d)", i)
}
t.Run(tc.name, func(t *testing.T) {
if tc.valid {
assert.NoErrorf(t, tc.params.ValidateConsensusParams(), "expected no error for valid params (#%d)", i)
} else {
assert.Errorf(t, tc.params.ValidateConsensusParams(), "expected error for non valid params (#%d)", i)
}
})
}
}
@@ -175,18 +182,34 @@ type makeParamsArgs struct {
pubkeyTypes []string
precision time.Duration
messageDelay time.Duration
propose time.Duration
proposeDelta time.Duration
vote time.Duration
voteDelta time.Duration
commit time.Duration
bypassCommitTimeout bool
propose *time.Duration
proposeDelta *time.Duration
vote *time.Duration
voteDelta *time.Duration
commit *time.Duration
}
func makeParams(args makeParamsArgs) ConsensusParams {
if args.pubkeyTypes == nil {
args.pubkeyTypes = valEd25519
}
if args.propose == nil {
args.propose = durationPtr(1)
}
if args.proposeDelta == nil {
args.proposeDelta = durationPtr(1)
}
if args.vote == nil {
args.vote = durationPtr(1)
}
if args.voteDelta == nil {
args.voteDelta = durationPtr(1)
}
if args.commit == nil {
args.commit = durationPtr(1)
}
return ConsensusParams{
Block: BlockParams{
MaxBytes: args.blockBytes,