fix: skipping checking active volumes with the same number of files at the moment (#4893)
* fix: skipping checking active volumes with the same number of files at the moment https://github.com/seaweedfs/seaweedfs/issues/4140 * refactor with comments https://github.com/seaweedfs/seaweedfs/issues/4140 * add TestShouldSkipVolume --------- Co-authored-by: Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.co>
This commit is contained in:
committed by
GitHub
parent
3fe00996b2
commit
2b3e39397e
72
weed/shell/command_volume_check_disk_test.go
Normal file
72
weed/shell/command_volume_check_disk_test.go
Normal file
@@ -0,0 +1,72 @@
|
||||
package shell
|
||||
|
||||
import (
|
||||
"github.com/seaweedfs/seaweedfs/weed/pb/master_pb"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type testCommandVolumeCheckDisk struct {
|
||||
commandVolumeCheckDisk
|
||||
}
|
||||
|
||||
type shouldSkipVolume struct {
|
||||
a VolumeReplica
|
||||
b VolumeReplica
|
||||
pulseTimeAtSecond int64
|
||||
shouldSkipVolume bool
|
||||
}
|
||||
|
||||
func TestShouldSkipVolume(t *testing.T) {
|
||||
cmdVolumeCheckDisk := testCommandVolumeCheckDisk{}
|
||||
cmdVolumeCheckDisk.writer = os.Stdout
|
||||
var tests = []shouldSkipVolume{
|
||||
{
|
||||
VolumeReplica{nil, &master_pb.VolumeInformationMessage{
|
||||
FileCount: 1000,
|
||||
DeleteCount: 100,
|
||||
ModifiedAtSecond: 1696583300},
|
||||
},
|
||||
VolumeReplica{nil, &master_pb.VolumeInformationMessage{
|
||||
FileCount: 1000,
|
||||
DeleteCount: 100,
|
||||
ModifiedAtSecond: 1696583300},
|
||||
},
|
||||
1696583400,
|
||||
true,
|
||||
},
|
||||
{
|
||||
VolumeReplica{nil, &master_pb.VolumeInformationMessage{
|
||||
FileCount: 1001,
|
||||
DeleteCount: 100,
|
||||
ModifiedAtSecond: 1696583300},
|
||||
},
|
||||
VolumeReplica{nil, &master_pb.VolumeInformationMessage{
|
||||
FileCount: 1000,
|
||||
DeleteCount: 100,
|
||||
ModifiedAtSecond: 1696583300},
|
||||
},
|
||||
1696583400,
|
||||
false,
|
||||
},
|
||||
{
|
||||
VolumeReplica{nil, &master_pb.VolumeInformationMessage{
|
||||
FileCount: 1000,
|
||||
DeleteCount: 100,
|
||||
ModifiedAtSecond: 1696583300},
|
||||
},
|
||||
VolumeReplica{nil, &master_pb.VolumeInformationMessage{
|
||||
FileCount: 1000,
|
||||
DeleteCount: 101,
|
||||
ModifiedAtSecond: 1696583300},
|
||||
},
|
||||
1696583400,
|
||||
false,
|
||||
},
|
||||
}
|
||||
for num, tt := range tests {
|
||||
if isShould := cmdVolumeCheckDisk.shouldSkipVolume(&tt.a, &tt.b, tt.pulseTimeAtSecond, true, true); isShould != tt.shouldSkipVolume {
|
||||
t.Fatalf("result of should skip volume is unexpected for %d test", num)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user