forked from TrueCloudLab/frostfs-node
[#473] Add tests for rem values of traverser
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
This commit is contained in:
parent
c6df6c84ae
commit
f354b8a270
1 changed files with 52 additions and 0 deletions
|
@ -208,3 +208,55 @@ func TestTraverserObjectScenarios(t *testing.T) {
|
|||
require.True(t, tr.Success())
|
||||
})
|
||||
}
|
||||
|
||||
func TestTraverserRemValues(t *testing.T) {
|
||||
selectors := []int{3, 4, 5}
|
||||
replicas := []int{2, 3, 4}
|
||||
|
||||
nodes, cnr := testPlacement(t, selectors, replicas)
|
||||
nodesCopy := copyVectors(nodes)
|
||||
|
||||
testCases := [...]struct {
|
||||
name string
|
||||
copyNumbers []uint32
|
||||
expectedRem []int
|
||||
}{
|
||||
{
|
||||
name: "zero copy numbers",
|
||||
copyNumbers: []uint32{},
|
||||
expectedRem: replicas,
|
||||
},
|
||||
{
|
||||
name: "compatible zero copy numbers",
|
||||
copyNumbers: []uint32{0},
|
||||
expectedRem: replicas,
|
||||
},
|
||||
{
|
||||
name: "copy numbers for all replicas",
|
||||
copyNumbers: []uint32{1, 1, 1},
|
||||
expectedRem: []int{1, 1, 1},
|
||||
},
|
||||
{
|
||||
name: "single copy numbers for multiple replicas",
|
||||
copyNumbers: []uint32{1},
|
||||
expectedRem: []int{1}, // may be a bit unexpected
|
||||
},
|
||||
{
|
||||
name: "multiple copy numbers for multiple replicas",
|
||||
copyNumbers: []uint32{1, 1},
|
||||
expectedRem: []int{1, 1, 4},
|
||||
},
|
||||
}
|
||||
|
||||
for _, testCase := range testCases {
|
||||
t.Run(testCase.name, func(t *testing.T) {
|
||||
tr, err := NewTraverser(
|
||||
ForContainer(cnr),
|
||||
UseBuilder(&testBuilder{vectors: nodesCopy}),
|
||||
WithCopyNumbers(testCase.copyNumbers),
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, testCase.expectedRem, tr.rem)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue