2022-09-17 14:07:56 +04:00
|
|
|
package netmap_test
|
|
|
|
|
|
|
|
import (
|
2025-03-07 13:59:38 +03:00
|
|
|
"bytes"
|
2022-09-17 14:07:56 +04:00
|
|
|
"testing"
|
|
|
|
|
2024-10-07 17:20:25 +03:00
|
|
|
v2netmap "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/api/netmap"
|
2023-03-07 14:20:03 +03:00
|
|
|
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/netmap"
|
|
|
|
netmaptest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/netmap/test"
|
2022-09-17 14:07:56 +04:00
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestNetMapNodes(t *testing.T) {
|
|
|
|
var nm netmap.NetMap
|
|
|
|
|
|
|
|
require.Empty(t, nm.Nodes())
|
|
|
|
|
|
|
|
nodes := []netmap.NodeInfo{netmaptest.NodeInfo(), netmaptest.NodeInfo()}
|
|
|
|
|
|
|
|
nm.SetNodes(nodes)
|
|
|
|
require.ElementsMatch(t, nodes, nm.Nodes())
|
|
|
|
|
|
|
|
nodesV2 := make([]v2netmap.NodeInfo, len(nodes))
|
|
|
|
for i := range nodes {
|
|
|
|
nodes[i].WriteToV2(&nodesV2[i])
|
|
|
|
}
|
|
|
|
|
|
|
|
var m v2netmap.NetMap
|
|
|
|
nm.WriteToV2(&m)
|
|
|
|
|
|
|
|
require.ElementsMatch(t, nodesV2, m.Nodes())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestNetMap_SetEpoch(t *testing.T) {
|
|
|
|
var nm netmap.NetMap
|
|
|
|
|
|
|
|
require.Zero(t, nm.Epoch())
|
|
|
|
|
|
|
|
const e = 158
|
|
|
|
|
|
|
|
nm.SetEpoch(e)
|
|
|
|
require.EqualValues(t, e, nm.Epoch())
|
|
|
|
|
|
|
|
var m v2netmap.NetMap
|
|
|
|
nm.WriteToV2(&m)
|
|
|
|
|
|
|
|
require.EqualValues(t, e, m.Epoch())
|
|
|
|
}
|
2025-03-07 13:59:38 +03:00
|
|
|
|
|
|
|
func TestNetMap_Clone(t *testing.T) {
|
|
|
|
nm := new(netmap.NetMap)
|
|
|
|
nm.SetEpoch(1)
|
|
|
|
var ni netmap.NodeInfo
|
|
|
|
ni.SetPublicKey([]byte{1, 2, 3})
|
|
|
|
nm.SetNodes([]netmap.NodeInfo{ni})
|
|
|
|
|
|
|
|
clone := nm.Clone()
|
|
|
|
|
|
|
|
require.True(t, clone != nm)
|
|
|
|
require.True(t, &(clone.Nodes()[0]) != &(nm.Nodes()[0]))
|
|
|
|
|
|
|
|
var clonev2 v2netmap.NetMap
|
|
|
|
clone.WriteToV2(&clonev2)
|
|
|
|
var bufClone []byte
|
|
|
|
bufClone = clonev2.StableMarshal(bufClone)
|
|
|
|
|
|
|
|
var nmv2 v2netmap.NetMap
|
|
|
|
nm.WriteToV2(&nmv2)
|
|
|
|
var bufNM []byte
|
|
|
|
bufNM = nmv2.StableMarshal(bufNM)
|
|
|
|
|
|
|
|
require.True(t, bytes.Equal(bufClone, bufNM))
|
|
|
|
}
|