test(tsdb): break up repeated test to avoid timeout (#10671)

On macOS, the TestTombstoneCleanRetentionLimitsRace performs very
poorly. It takes more than a second to write out one block, and as it
writes 400 of them, we run into the 10-minute test timeout frequently.

While this doesn't fix the actual performance issue, breaking each
iteration into a subtest makes the test pass reliably (because each
iteration comfortably finishes in under a minute).

Related report: https://groups.google.com/g/prometheus-developers/c/jxQ6Ayg6VJ4/m/03H_DS9PDAAJ

Signed-off-by: Matthias Rampke <matthias@prometheus.io>
This commit is contained in:
Matthias Rampke 2022-05-08 22:39:26 +00:00 committed by GitHub
parent eb1617ebd5
commit 78f2645787
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1281,6 +1281,7 @@ func TestTombstoneCleanRetentionLimitsRace(t *testing.T) {
//
// That is something tricky to trigger, so let's try several times just to make sure.
for i := 0; i < 20; i++ {
t.Run(fmt.Sprintf("iteration%d", i), func(t *testing.T) {
db := openTestDB(t, opts, nil)
totalBlocks := 20
dbDir := db.Dir()
@ -1313,6 +1314,7 @@ func TestTombstoneCleanRetentionLimitsRace(t *testing.T) {
wg.Wait()
require.NoError(t, db.Close())
})
}
}