From 2981677158f90654c6e08082b177a5b4ee35a159 Mon Sep 17 00:00:00 2001 From: Nick Travers Date: Wed, 1 Sep 2021 09:05:14 -0700 Subject: [PATCH] metamorphic: transform percentage of SINGLEDEL ops to DELETE ops Generated SINGLEDEL operations are eligible for transformation into less restrictive DELETE operations. Transform a fixed percentage of SINGLEDEL operations at generation time into DELETEs to further exercise the delete execution paths. Related to cockroachdb/cockroach#69414. --- internal/metamorphic/generator.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/internal/metamorphic/generator.go b/internal/metamorphic/generator.go index 7d8cc5f863..173199cf58 100644 --- a/internal/metamorphic/generator.go +++ b/internal/metamorphic/generator.go @@ -840,10 +840,20 @@ func (g *generator) writerSingleDelete() { if key == nil { return } - g.add(&singleDeleteOp{ - writerID: writerID, - key: key, - }) + + // Keys eligible for single deletes can be removed with a regular delete. + // Mutate a percentage of SINGLEDEL ops into DELETEs. + if g.rng.Float64() < 0.25 { + g.add(&deleteOp{ + writerID: writerID, + key: key, + }) + } else { + g.add(&singleDeleteOp{ + writerID: writerID, + key: key, + }) + } g.tryRepositionBatchIters(writerID) }