@@ -52,8 +52,6 @@ func setupTestDeleteStore(t *testing.T) *DeleteStore {
5252}
5353
5454func setupStoresAndPurger (t * testing.T ) (* DeleteStore , chunk.Store , chunk.ObjectClient , * Purger , * prometheus.Registry ) {
55- registry := prometheus .NewRegistry ()
56-
5755 deleteStore := setupTestDeleteStore (t )
5856
5957 chunkStore , err := testutils .SetupTestChunkStore ()
@@ -62,13 +60,21 @@ func setupStoresAndPurger(t *testing.T) (*DeleteStore, chunk.Store, chunk.Object
6260 storageClient , err := testutils .SetupTestObjectStore ()
6361 require .NoError (t , err )
6462
63+ purger , registry := setupPurger (t , deleteStore , chunkStore , storageClient )
64+
65+ return deleteStore , chunkStore , storageClient , purger , registry
66+ }
67+
68+ func setupPurger (t * testing.T , deleteStore * DeleteStore , chunkStore chunk.Store , storageClient chunk.ObjectClient ) (* Purger , * prometheus.Registry ) {
69+ registry := prometheus .NewRegistry ()
70+
6571 var cfg Config
6672 flagext .DefaultValues (& cfg )
6773
6874 purger , err := NewPurger (cfg , deleteStore , chunkStore , storageClient , registry )
6975 require .NoError (t , err )
7076
71- return deleteStore , chunkStore , storageClient , purger , registry
77+ return purger , registry
7278}
7379
7480func buildChunks (from , through model.Time , batchSize int ) ([]chunk.Chunk , error ) {
@@ -347,10 +353,7 @@ func TestPurger_Restarts(t *testing.T) {
347353 require .NoError (t , services .StopAndAwaitTerminated (context .Background (), purger ))
348354
349355 // create a new purger to check whether it picks up in process delete requests
350- var cfg Config
351- flagext .DefaultValues (& cfg )
352- newPurger , err := NewPurger (cfg , deleteStore , chunkStore , storageClient , prometheus .NewPedanticRegistry ())
353- require .NoError (t , err )
356+ newPurger , _ := setupPurger (t , deleteStore , chunkStore , storageClient )
354357
355358 // load in process delete requests by calling Run
356359 require .NoError (t , services .StartAndAwaitRunning (context .Background (), newPurger ))
@@ -385,7 +388,7 @@ func TestPurger_Restarts(t *testing.T) {
385388}
386389
387390func TestPurger_Metrics (t * testing.T ) {
388- deleteStore , chunkStore , _ , purger , registry := setupStoresAndPurger (t )
391+ deleteStore , chunkStore , storageClient , purger , registry := setupStoresAndPurger (t )
389392 defer func () {
390393 purger .StopAsync ()
391394 chunkStore .Stop ()
@@ -414,9 +417,17 @@ func TestPurger_Metrics(t *testing.T) {
414417 require .InDelta (t , float64 (2 * 86400 ), testutil .ToFloat64 (purger .metrics .oldestPendingDeleteRequestAgeSeconds ), 1 )
415418 require .Equal (t , float64 (2 ), testutil .ToFloat64 (purger .metrics .pendingDeleteRequestsCount ))
416419
417- // start loop to process requests
420+ // stop the existing purger
421+ require .NoError (t , services .StopAndAwaitTerminated (context .Background (), purger ))
422+
423+ // create a new purger
424+ purger , registry = setupPurger (t , deleteStore , chunkStore , storageClient )
425+
426+ // load in process delete requests by starting the service
418427 require .NoError (t , services .StartAndAwaitRunning (context .Background (), purger ))
419428
429+ defer purger .StopAsync ()
430+
420431 // wait until purger_delete_requests_processed_total starts to show up.
421432 test .Poll (t , 2 * time .Second , 1 , func () interface {} {
422433 count , err := testutil .GatherAndCount (registry , "cortex_purger_delete_requests_processed_total" )
0 commit comments