This is an automated email from the ASF dual-hosted git repository.
hulk pushed a commit to branch unstable
in repository https://gitbox.apache.org/repos/asf/kvrocks-controller.git
The following commit(s) were added to refs/heads/unstable by this push:
new 431c824 Fix HasOverlap might return the wrong result (#335)
431c824 is described below
commit 431c824dc3f16cc9f30b00d94d59eba3354dd73a
Author: Lele Huang <[email protected]>
AuthorDate: Wed Aug 6 21:03:37 2025 +0800
Fix HasOverlap might return the wrong result (#335)
---
store/slot.go | 4 +--
store/slot_test.go | 88 +++++++++++++++++++++++++++++-------------------------
2 files changed, 49 insertions(+), 43 deletions(-)
diff --git a/store/slot.go b/store/slot.go
index d44dd9c..394ced5 100644
--- a/store/slot.go
+++ b/store/slot.go
@@ -164,8 +164,8 @@ func (SlotRanges *SlotRanges) Contains(slot int) bool {
}
func (SlotRanges *SlotRanges) HasOverlap(slotRange SlotRange) bool {
- for _, slotRange := range *SlotRanges {
- if slotRange.HasOverlap(slotRange) {
+ for _, currentSlotRange := range *SlotRanges {
+ if currentSlotRange.HasOverlap(slotRange) {
return true
}
}
diff --git a/store/slot_test.go b/store/slot_test.go
index 119ab09..6226323 100644
--- a/store/slot_test.go
+++ b/store/slot_test.go
@@ -293,69 +293,75 @@ func TestCalculateSlotRanges(t *testing.T) {
}
func TestSlotRange_HasOverlap(t *testing.T) {
- type fields struct {
- Start int
- Stop int
- }
type args struct {
that SlotRange
}
tests := []struct {
- name string
- fields fields
- args args
- want bool
+ name string
+ slotRanges SlotRanges
+ args args
+ want bool
}{
{
- name: "0-5 does not overlap 6-7",
- fields: fields{Start: 0, Stop: 5},
- args: args{SlotRange{Start: 6, Stop: 7}},
- want: false,
+ name: "0-5 does not overlap 6-7",
+ slotRanges: SlotRanges{
+ {Start: 0, Stop: 5},
+ },
+ args: args{SlotRange{Start: 6, Stop: 7}},
+ want: false,
},
{
- name: "0-5 does overlap 3-4",
- fields: fields{Start: 0, Stop: 5},
- args: args{SlotRange{Start: 3, Stop: 4}},
- want: true,
+ name: "0-5 does overlap 3-4",
+ slotRanges: SlotRanges{
+ {Start: 0, Stop: 5},
+ },
+ args: args{SlotRange{Start: 3, Stop: 4}},
+ want: true,
},
{
- name: "0-5 does overlap 5-8",
- fields: fields{Start: 0, Stop: 5},
- args: args{SlotRange{Start: 5, Stop: 8}},
- want: true,
+ name: "0-5 does overlap 5-8",
+ slotRanges: SlotRanges{
+ {Start: 0, Stop: 5},
+ },
+ args: args{SlotRange{Start: 5, Stop: 8}},
+ want: true,
},
{
- name: "0-5 does overlap 4-8",
- fields: fields{Start: 0, Stop: 5},
- args: args{SlotRange{Start: 4, Stop: 8}},
- want: true,
+ name: "0-5 does overlap 4-8",
+ slotRanges: SlotRanges{
+ {Start: 0, Stop: 5},
+ },
+ args: args{SlotRange{Start: 4, Stop: 8}},
+ want: true,
},
{
- name: "0-100 does not overlap 101-150",
- fields: fields{Start: 0, Stop: 100},
- args: args{SlotRange{Start: 101, Stop: 150}},
- want: false,
+ name: "0-100 does not overlap 101-150",
+ slotRanges: SlotRanges{
+ {Start: 0, Stop: 100},
+ },
+ args: args{SlotRange{Start: 101, Stop: 150}},
+ want: false,
},
{
- name: "50-100 does overlap 30-50",
- fields: fields{Start: 50, Stop: 100},
- args: args{SlotRange{Start: 30, Stop: 50}},
- want: true,
+ name: "50-100 does overlap 30-50",
+ slotRanges: SlotRanges{
+ {Start: 50, Stop: 100},
+ },
+ args: args{SlotRange{Start: 30, Stop: 50}},
+ want: true,
},
{
- name: "50-100 does overlap 50-51",
- fields: fields{Start: 50, Stop: 100},
- args: args{SlotRange{Start: 50, Stop: 51}},
- want: true,
+ name: "50-100 does overlap 50-51",
+ slotRanges: SlotRanges{
+ {Start: 50, Stop: 100},
+ },
+ args: args{SlotRange{Start: 50, Stop: 51}},
+ want: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
- slotRange := &SlotRange{
- Start: tt.fields.Start,
- Stop: tt.fields.Stop,
- }
- if got := slotRange.HasOverlap(tt.args.that); got !=
tt.want {
+ if got := tt.slotRanges.HasOverlap(tt.args.that); got
!= tt.want {
t.Errorf("SlotRange.HasOverlap() = %v, want
%v", got, tt.want)
}
})