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)
                        }
                })

Reply via email to