[#326] pool: Add test for concurrent client deletion
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
This commit is contained in:
parent
37350dbb1e
commit
2786fadb25
1 changed files with 16 additions and 0 deletions
|
@ -10,6 +10,7 @@ import (
|
||||||
cid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id"
|
cid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id"
|
||||||
cidtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id/test"
|
cidtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id/test"
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/netmap"
|
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/netmap"
|
||||||
|
netmaptest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/netmap/test"
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/pool"
|
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/pool"
|
||||||
"git.frostfs.info/TrueCloudLab/hrw"
|
"git.frostfs.info/TrueCloudLab/hrw"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
|
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
|
||||||
|
@ -416,6 +417,21 @@ func TestRetryContainerNodes(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDeleteClientTwice(t *testing.T) {
|
||||||
|
p := Pool{
|
||||||
|
clientMap: makeClientMap([]netmap.NodeInfo{netmaptest.NodeInfo()}),
|
||||||
|
}
|
||||||
|
// emulate concurrent requests as consecutive requests
|
||||||
|
// to delete the same client from the map twice
|
||||||
|
for idToDelete := range p.clientMap {
|
||||||
|
p.deleteClientFromMap(idToDelete)
|
||||||
|
require.NotPanics(t, func() {
|
||||||
|
p.deleteClientFromMap(idToDelete)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
require.Empty(t, p.clientMap)
|
||||||
|
}
|
||||||
|
|
||||||
func makeInnerPool(nodes [][]string) []*innerPool {
|
func makeInnerPool(nodes [][]string) []*innerPool {
|
||||||
res := make([]*innerPool, len(nodes))
|
res := make([]*innerPool, len(nodes))
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue