@@ -20,6 +20,7 @@ import (
2020 "github.com/cockroachdb/cockroach/pkg/storage"
2121 "github.com/cockroachdb/cockroach/pkg/storage/enginepb"
2222 "github.com/cockroachdb/cockroach/pkg/testutils/datapathutils"
23+ "github.com/cockroachdb/cockroach/pkg/testutils/dd"
2324 "github.com/cockroachdb/cockroach/pkg/util/encoding"
2425 "github.com/cockroachdb/cockroach/pkg/util/hlc"
2526 "github.com/cockroachdb/cockroach/pkg/util/leaktest"
@@ -292,69 +293,64 @@ func TestRaftLogTruncator(t *testing.T) {
292293 func (t * testing.T , d * datadriven.TestData ) string {
293294 switch d .Cmd {
294295 case "create-replica" :
295- rangeID := scanRangeID (t , d )
296- var truncIndex uint64
297- d .ScanArgs (t , "trunc-index" , & truncIndex )
298- var lastLogEntry uint64
299- d .ScanArgs (t , "last-log-entry" , & lastLogEntry )
296+ rangeID := dd .ScanArg [roachpb.RangeID ](t , d , "id" )
297+ truncIndex := dd .ScanArg [kvpb.RaftIndex ](t , d , "trunc-index" )
298+ lastLogEntry := dd .ScanArg [kvpb.RaftIndex ](t , d , "last-log-entry" )
299+
300300 r := makeReplicaTT (rangeID , & buf )
301- r .truncState .Index = kvpb . RaftIndex ( truncIndex )
302- r .writeRaftStateToEngine (t , eng , kvpb . RaftIndex ( truncIndex ), kvpb . RaftIndex ( lastLogEntry ) )
301+ r .truncState .Index = truncIndex
302+ r .writeRaftStateToEngine (t , eng , truncIndex , lastLogEntry )
303303 store .replicas [rangeID ] = r
304304 return flushAndReset ()
305305
306306 case "print-engine-state" :
307- store .replicas [scanRangeID (t , d )].printEngine (t , eng )
307+ rangeID := dd .ScanArg [roachpb.RangeID ](t , d , "id" )
308+ store .replicas [rangeID ].printEngine (t , eng )
308309 return flushAndReset ()
309310
310311 case "add-pending-truncation" :
311- rangeID := scanRangeID (t , d )
312- var firstIndex , truncIndex uint64
313- d . ScanArgs (t , "first -index", & firstIndex )
314- d . ScanArgs (t , "trunc-index" , & truncIndex )
315- var deltaBytes , sideloadedBytes int
316- d . ScanArgs (t , "delta-bytes " , & deltaBytes )
317- d . ScanArgs ( t , "sideloaded-bytes" , & sideloadedBytes )
312+ rangeID := dd . ScanArg [roachpb. RangeID ] (t , d , "id" )
313+ firstIndex := dd . ScanArg [kvpb. RaftIndex ]( t , d , "first-index" )
314+ truncIndex := dd . ScanArg [kvpb. RaftIndex ] (t , d , "trunc -index" )
315+ deltaBytes := dd . ScanArg [ int64 ] (t , d , "delta-bytes" )
316+ sideloadedBytes := dd . ScanArg [ int64 ]( t , d , "sideloaded-bytes" )
317+ sideloadedErr := dd . ScanArgOr (t , d , "sideloaded-err " , false )
318+
318319 r := store .replicas [rangeID ]
319- if d .HasArg ("sideloaded-err" ) {
320- var sideloadedErr bool
321- d .ScanArgs (t , "sideloaded-err" , & sideloadedErr )
322- if sideloadedErr {
323- r .sideloadedErr = errors .Errorf ("side-loaded err" )
324- }
320+ if sideloadedErr {
321+ r .sideloadedErr = errors .Errorf ("side-loaded err" )
325322 }
326- r .sideloadedFreed = int64 ( sideloadedBytes )
323+ r .sideloadedFreed = sideloadedBytes
327324 truncator .addPendingTruncation (context .Background (), r ,
328- kvserverpb.RaftTruncatedState {Index : kvpb . RaftIndex ( truncIndex ) }, kvpb . RaftIndex ( firstIndex ), int64 ( deltaBytes ) )
325+ kvserverpb.RaftTruncatedState {Index : truncIndex }, firstIndex , deltaBytes )
329326 printTruncatorState (t , & buf , truncator )
330327 r .sideloadedErr = nil
331328 return flushAndReset ()
332329
333330 case "print-replica-state" :
334- store .replicas [scanRangeID (t , d )].printReplicaState ()
331+ rangeID := dd .ScanArg [roachpb.RangeID ](t , d , "id" )
332+ store .replicas [rangeID ].printReplicaState ()
335333 return flushAndReset ()
336334
337335 case "write-raft-applied-index" :
338- rangeID := scanRangeID (t , d )
339- var raftAppliedIndex uint64
340- d .ScanArgs (t , "raft-applied-index" , & raftAppliedIndex )
341- noFlush := false
336+ rangeID := dd .ScanArg [roachpb.RangeID ](t , d , "id" )
337+ raftAppliedIndex := dd .ScanArg [kvpb.RaftIndex ](t , d , "raft-applied-index" )
342338 // The initial engine memtable size is 256KB, and doubles for each new
343339 // memtable. Even the initial size is much larger than anything we do
344340 // in this test between explicit flushes. Hence we can rely on the
345341 // fact that no-flush will actually be respected, and we won't
346342 // encounter an unexpected flush.
347- if d .HasArg ("no-flush" ) {
348- d .ScanArgs (t , "no-flush" , & noFlush )
349- }
350- store .replicas [rangeID ].writeRaftAppliedIndex (t , eng , kvpb .RaftIndex (raftAppliedIndex ), ! noFlush )
343+ noFlush := dd .ScanArgOr (t , d , "no-flush" , false )
344+
345+ store .replicas [rangeID ].writeRaftAppliedIndex (t , eng , raftAppliedIndex , ! noFlush )
351346 return flushAndReset ()
352347
353348 case "add-replica-to-truncator" :
354349 // In addition to replicas being added to the truncator via
355350 // add-pending-truncation, we can manually add them to test the
356351 // replica not found etc. paths.
357- truncator .enqueueRange (scanRangeID (t , d ))
352+ rangeID := dd .ScanArg [roachpb.RangeID ](t , d , "id" )
353+ truncator .enqueueRange (rangeID )
358354 printTruncatorState (t , & buf , truncator )
359355 return flushAndReset ()
360356
@@ -369,12 +365,6 @@ func TestRaftLogTruncator(t *testing.T) {
369365 })
370366}
371367
372- func scanRangeID (t * testing.T , d * datadriven.TestData ) roachpb.RangeID {
373- var id int
374- d .ScanArgs (t , "id" , & id )
375- return roachpb .RangeID (id )
376- }
377-
378368func printTruncatorState (t * testing.T , buf * strings.Builder , truncator * raftLogTruncator ) {
379369 truncator .mu .Lock ()
380370 defer truncator .mu .Unlock ()
0 commit comments