You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kvrocks.apache.org by hu...@apache.org on 2025/08/06 13:03:40 UTC

(kvrocks-controller) branch unstable updated: Fix HasOverlap might return the wrong result (#335)

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 <hl...@foxmail.com>
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)
 			}
 		})