80 lines
2.7 KiB
Go
80 lines
2.7 KiB
Go
package types_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/cosmos/cosmos-sdk/store/types"
|
|
)
|
|
|
|
func TestPruningOptions_FlushVersion(t *testing.T) {
|
|
t.Parallel()
|
|
require.True(t, types.PruneEverything.FlushVersion(-1))
|
|
require.True(t, types.PruneEverything.FlushVersion(0))
|
|
require.True(t, types.PruneEverything.FlushVersion(1))
|
|
require.True(t, types.PruneEverything.FlushVersion(2))
|
|
|
|
require.True(t, types.PruneNothing.FlushVersion(-1))
|
|
require.True(t, types.PruneNothing.FlushVersion(0))
|
|
require.True(t, types.PruneNothing.FlushVersion(1))
|
|
require.True(t, types.PruneNothing.FlushVersion(2))
|
|
|
|
require.False(t, types.PruneSyncable.FlushVersion(-1))
|
|
require.True(t, types.PruneSyncable.FlushVersion(0))
|
|
require.False(t, types.PruneSyncable.FlushVersion(1))
|
|
require.True(t, types.PruneSyncable.FlushVersion(100))
|
|
require.False(t, types.PruneSyncable.FlushVersion(101))
|
|
}
|
|
|
|
func TestPruningOptions_SnapshotVersion(t *testing.T) {
|
|
t.Parallel()
|
|
require.False(t, types.PruneEverything.SnapshotVersion(-1))
|
|
require.False(t, types.PruneEverything.SnapshotVersion(0))
|
|
require.False(t, types.PruneEverything.SnapshotVersion(1))
|
|
require.False(t, types.PruneEverything.SnapshotVersion(2))
|
|
|
|
require.True(t, types.PruneNothing.SnapshotVersion(-1))
|
|
require.True(t, types.PruneNothing.SnapshotVersion(0))
|
|
require.True(t, types.PruneNothing.SnapshotVersion(1))
|
|
require.True(t, types.PruneNothing.SnapshotVersion(2))
|
|
|
|
require.False(t, types.PruneSyncable.SnapshotVersion(-1))
|
|
require.True(t, types.PruneSyncable.SnapshotVersion(0))
|
|
require.False(t, types.PruneSyncable.SnapshotVersion(1))
|
|
require.True(t, types.PruneSyncable.SnapshotVersion(10000))
|
|
require.False(t, types.PruneSyncable.SnapshotVersion(10001))
|
|
}
|
|
|
|
func TestPruningOptions_IsValid(t *testing.T) {
|
|
t.Parallel()
|
|
type fields struct {
|
|
KeepEvery int64
|
|
SnapshotEvery int64
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
fields fields
|
|
want bool
|
|
}{
|
|
{"PruneEverything", fields{types.PruneEverything.KeepEvery, types.PruneEverything.SnapshotEvery}, true},
|
|
{"PruneNothing", fields{types.PruneNothing.KeepEvery, types.PruneNothing.SnapshotEvery}, true},
|
|
{"PruneSyncable", fields{types.PruneSyncable.KeepEvery, types.PruneSyncable.SnapshotEvery}, true},
|
|
{"KeepEvery=0", fields{0, 0}, false},
|
|
{"KeepEvery<0", fields{-1, 0}, false},
|
|
{"SnapshotEvery<0", fields{1, -1}, false},
|
|
{"SnapshotEvery%KeepEvery!=0", fields{15, 30}, true},
|
|
{"SnapshotEvery%KeepEvery!=0", fields{15, 20}, false},
|
|
}
|
|
for _, tt := range tests {
|
|
tt := tt
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
po := types.PruningOptions{
|
|
KeepEvery: tt.fields.KeepEvery,
|
|
SnapshotEvery: tt.fields.SnapshotEvery,
|
|
}
|
|
require.Equal(t, tt.want, po.IsValid(), "IsValid() = %v, want %v", po.IsValid(), tt.want)
|
|
})
|
|
}
|
|
}
|