forked from TrueCloudLab/frostfs-node
[#660] core: Implement function to check protocol version adequacy
Create `version` package and implement `IsValid` function which checks if version is not earlier than the genesis one. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>support/v0.27
parent
c90f054f35
commit
69826ebd90
|
@ -0,0 +1,17 @@
|
|||
package version
|
||||
|
||||
import (
|
||||
"github.com/nspcc-dev/neofs-api-go/pkg"
|
||||
)
|
||||
|
||||
// IsValid checks if Version is not earlier than the genesis version of the NeoFS.
|
||||
func IsValid(v pkg.Version) bool {
|
||||
const (
|
||||
startMajor = 2
|
||||
startMinor = 7
|
||||
)
|
||||
|
||||
mjr := v.Major()
|
||||
|
||||
return mjr > startMajor || mjr == startMajor && v.Minor() >= startMinor
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package version_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/nspcc-dev/neofs-api-go/pkg"
|
||||
"github.com/nspcc-dev/neofs-node/pkg/core/version"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestIsValid(t *testing.T) {
|
||||
require.True(t, version.IsValid(*pkg.SDKVersion()))
|
||||
|
||||
var v pkg.Version
|
||||
|
||||
for _, item := range []struct {
|
||||
mjr, mnr uint32
|
||||
valid bool
|
||||
}{
|
||||
{mjr: 0, mnr: 0, valid: false},
|
||||
{mjr: 2, mnr: 6, valid: false},
|
||||
{mjr: 2, mnr: 7, valid: true},
|
||||
{mjr: 3, mnr: 0, valid: true},
|
||||
} {
|
||||
v.SetMajor(item.mjr)
|
||||
v.SetMinor(item.mnr)
|
||||
|
||||
require.Equal(t, item.valid, version.IsValid(v), item)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue