Skip to content

Commit 5895c8b

Browse files
committed
kvserver: use dd helpers in TestRaftLogTruncator
Epic: none Release note: none
1 parent 3e4e383 commit 5895c8b

File tree

2 files changed

+39
-60
lines changed

2 files changed

+39
-60
lines changed

pkg/kv/kvserver/raft_log_truncator_test.go

Lines changed: 29 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -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-
378368
func printTruncatorState(t *testing.T, buf *strings.Builder, truncator *raftLogTruncator) {
379369
truncator.mu.Lock()
380370
defer truncator.mu.Unlock()

pkg/kv/kvserver/replica_raft_truncation_test.go

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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/hlc"
2425
"github.com/cockroachdb/cockroach/pkg/util/leaktest"
2526
"github.com/cockroachdb/cockroach/pkg/util/log"
@@ -47,35 +48,23 @@ func TestHandleTruncatedStateBelowRaft(t *testing.T) {
4748
datadriven.RunTest(t, path, func(t *testing.T, d *datadriven.TestData) string {
4849
switch d.Cmd {
4950
case "prev":
50-
var v uint64
51-
d.ScanArgs(t, "index", &v)
52-
prevTruncatedState.Index = kvpb.RaftIndex(v)
53-
d.ScanArgs(t, "term", &v)
54-
prevTruncatedState.Term = kvpb.RaftTerm(v)
51+
prevTruncatedState.Index = dd.ScanArg[kvpb.RaftIndex](t, d, "index")
52+
prevTruncatedState.Term = dd.ScanArg[kvpb.RaftTerm](t, d, "term")
5553
return ""
5654

5755
case "put":
58-
var index, term uint64
59-
d.ScanArgs(t, "index", &index)
60-
d.ScanArgs(t, "term", &term)
61-
62-
truncState := &kvserverpb.RaftTruncatedState{
63-
Index: kvpb.RaftIndex(index),
64-
Term: kvpb.RaftTerm(term),
65-
}
66-
67-
require.NoError(t, loader.SetRaftTruncatedState(ctx, eng, truncState))
56+
require.NoError(t, loader.SetRaftTruncatedState(ctx, eng,
57+
&kvserverpb.RaftTruncatedState{
58+
Index: dd.ScanArg[kvpb.RaftIndex](t, d, "index"),
59+
Term: dd.ScanArg[kvpb.RaftTerm](t, d, "term"),
60+
}))
6861
return ""
6962

7063
case "handle":
7164
var buf bytes.Buffer
72-
var index, term uint64
73-
d.ScanArgs(t, "index", &index)
74-
d.ScanArgs(t, "term", &term)
75-
7665
suggestedTruncatedState := kvserverpb.RaftTruncatedState{
77-
Index: kvpb.RaftIndex(index),
78-
Term: kvpb.RaftTerm(term),
66+
Index: dd.ScanArg[kvpb.RaftIndex](t, d, "index"),
67+
Term: dd.ScanArg[kvpb.RaftTerm](t, d, "term"),
7968
}
8069
currentTruncatedState, err := loader.LoadRaftTruncatedState(ctx, eng)
8170
require.NoError(t, err)

0 commit comments

Comments
 (0)