forked from TrueCloudLab/frostfs-node
[#421] governance: Add list update functions for inner ring
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
parent
6339a115dc
commit
f4e39678f1
2 changed files with 80 additions and 1 deletions
|
@ -52,6 +52,56 @@ func TestNewAlphabetList(t *testing.T) {
|
|||
})
|
||||
}
|
||||
|
||||
func TestUpdateInnerRing(t *testing.T) {
|
||||
k, err := generateKeys(6)
|
||||
require.NoError(t, err)
|
||||
|
||||
t.Run("same keys", func(t *testing.T) {
|
||||
ir := k[:3]
|
||||
before := k[1:3]
|
||||
after := keys.PublicKeys{k[2], k[1]}
|
||||
|
||||
list, err := updateInnerRing(ir, before, after)
|
||||
require.NoError(t, err)
|
||||
|
||||
sort.Sort(ir)
|
||||
sort.Sort(list)
|
||||
require.True(t, equalPublicKeyLists(ir, list))
|
||||
})
|
||||
|
||||
t.Run("unknown keys", func(t *testing.T) {
|
||||
ir := k[:3]
|
||||
before := k[3:4]
|
||||
after := k[4:5]
|
||||
|
||||
list, err := updateInnerRing(ir, before, after)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.True(t, equalPublicKeyLists(ir, list))
|
||||
})
|
||||
|
||||
t.Run("different size", func(t *testing.T) {
|
||||
ir := k[:3]
|
||||
before := k[1:3]
|
||||
after := k[4:5]
|
||||
|
||||
_, err = updateInnerRing(ir, before, after)
|
||||
require.Error(t, err)
|
||||
})
|
||||
|
||||
t.Run("new list", func(t *testing.T) {
|
||||
ir := k[:3]
|
||||
before := k[1:3]
|
||||
after := k[4:6]
|
||||
exp := keys.PublicKeys{k[0], k[4], k[5]}
|
||||
|
||||
list, err := updateInnerRing(ir, before, after)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.True(t, equalPublicKeyLists(exp, list))
|
||||
})
|
||||
}
|
||||
|
||||
func generateKeys(n int) (keys.PublicKeys, error) {
|
||||
pubKeys := make(keys.PublicKeys, 0, n)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue