@@ -20,8 +20,6 @@ import (
2020 "github.com/cockroachdb/cockroach/pkg/util/leaktest"
2121 "github.com/cockroachdb/cockroach/pkg/util/log"
2222 "github.com/cockroachdb/cockroach/pkg/util/randutil"
23- "github.com/cockroachdb/cockroach/pkg/util/stop"
24- "github.com/kr/pretty"
2523 "github.com/stretchr/testify/require"
2624)
2725
@@ -33,15 +31,11 @@ func TestIterateIDPrefixKeys(t *testing.T) {
3331 defer log .Scope (t ).Close (t )
3432
3533 ctx := context .Background ()
36- stopper := stop .NewStopper ()
37- defer stopper .Stop (ctx )
38-
3934 eng := storage .NewDefaultInMemForTesting ()
40- stopper . AddCloser ( eng )
35+ defer eng . Close ( )
4136
4237 seed := randutil .NewPseudoSeed ()
43- // const seed = -1666367124291055473
44- t .Logf ("seed is %d" , seed )
38+ t .Logf ("seed: %d" , seed )
4539 rng := rand .New (rand .NewSource (seed ))
4640
4741 ops := []func (rangeID roachpb.RangeID ) roachpb.Key {
@@ -64,21 +58,16 @@ func TestIterateIDPrefixKeys(t *testing.T) {
6458 // Write a number of keys that should be irrelevant to the iteration in this test.
6559 for i := 0 ; i < rangeCount ; i ++ {
6660 rangeID := rangeIDFn ()
67-
6861 // Grab between one and all ops, randomly.
6962 for _ , opIdx := range rng .Perm (len (ops ))[:rng .Intn (1 + len (ops ))] {
7063 key := ops [opIdx ](rangeID )
7164 t .Logf ("writing op=%d rangeID=%d" , opIdx , rangeID )
72- if _ , err := storage .MVCCPut (
73- ctx ,
74- eng ,
75- key ,
76- hlc.Timestamp {},
65+ _ , err := storage .MVCCPut (
66+ ctx , eng , key , hlc.Timestamp {},
7767 roachpb .MakeValueFromString ("fake value for " + key .String ()),
7868 storage.MVCCWriteOptions {},
79- ); err != nil {
80- t .Fatal (err )
81- }
69+ )
70+ require .NoError (t , err )
8271 }
8372 }
8473
@@ -88,30 +77,22 @@ func TestIterateIDPrefixKeys(t *testing.T) {
8877 }
8978
9079 // Next, write the keys we're planning to see again.
91- var wanted []seenT
92- {
93- used := make (map [roachpb.RangeID ]struct {})
94- for {
95- rangeID := rangeIDFn ()
96- if _ , ok := used [rangeID ]; ok {
97- // We already wrote this key, so roll the dice again.
98- continue
99- }
100-
101- tombstone := kvserverpb.RangeTombstone {
102- NextReplicaID : roachpb .ReplicaID (rng .Int31n (100 )),
103- }
104-
105- used [rangeID ] = struct {}{}
106- wanted = append (wanted , seenT {rangeID : rangeID , tombstone : tombstone })
107-
108- t .Logf ("writing tombstone at rangeID=%d" , rangeID )
109- require .NoError (t , MakeStateLoader (rangeID ).SetRangeTombstone (ctx , eng , tombstone ))
110-
111- if len (wanted ) >= rangeCount {
112- break
113- }
80+ wanted := make ([]seenT , 0 , rangeCount )
81+ for used := make (map [roachpb.RangeID ]struct {}); len (wanted ) < rangeCount ; {
82+ rangeID := rangeIDFn ()
83+ if _ , ok := used [rangeID ]; ok {
84+ // We already wrote this key, so roll the dice again.
85+ continue
86+ }
87+ used [rangeID ] = struct {}{}
88+
89+ tombstone := kvserverpb.RangeTombstone {
90+ NextReplicaID : roachpb .ReplicaID (rng .Int31n (100 )),
11491 }
92+ wanted = append (wanted , seenT {rangeID : rangeID , tombstone : tombstone })
93+
94+ t .Logf ("writing tombstone at rangeID=%d" , rangeID )
95+ require .NoError (t , MakeStateLoader (rangeID ).SetRangeTombstone (ctx , eng , tombstone ))
11596 }
11697
11798 sort .Slice (wanted , func (i , j int ) bool {
@@ -120,32 +101,12 @@ func TestIterateIDPrefixKeys(t *testing.T) {
120101
121102 var seen []seenT
122103 var tombstone kvserverpb.RangeTombstone
123-
124- handleTombstone := func (rangeID roachpb.RangeID ) error {
125- seen = append (seen , seenT {rangeID : rangeID , tombstone : tombstone })
126- return nil
127- }
128-
129- if err := IterateIDPrefixKeys (ctx , eng , keys .RangeTombstoneKey , & tombstone , handleTombstone ); err != nil {
130- t .Fatal (err )
131- }
132- placeholder := seenT {
133- rangeID : roachpb .RangeID (9999 ),
134- }
135-
136- if len (wanted ) != len (seen ) {
137- t .Errorf ("wanted %d results, got %d" , len (wanted ), len (seen ))
138- }
139-
140- for len (wanted ) < len (seen ) {
141- wanted = append (wanted , placeholder )
142- }
143- for len (seen ) < len (wanted ) {
144- seen = append (seen , placeholder )
145- }
146-
147- if diff := pretty .Diff (wanted , seen ); len (diff ) > 0 {
148- pretty .Ldiff (t , wanted , seen )
149- t .Fatal ("diff(wanted, seen) is nonempty" )
150- }
104+ require .NoError (t , IterateIDPrefixKeys (
105+ ctx , eng , keys .RangeTombstoneKey , & tombstone ,
106+ func (rangeID roachpb.RangeID ) error {
107+ seen = append (seen , seenT {rangeID : rangeID , tombstone : tombstone })
108+ return nil
109+ }))
110+
111+ require .Equal (t , wanted , seen )
151112}
0 commit comments