mmm: do random rescans in the fuzz test to ensure they don't break anything.
This commit is contained in:
@@ -87,6 +87,11 @@ func FuzzTest(f *testing.F) {
|
|||||||
nTags[evt.ID] = len(evt.Tags)
|
nTags[evt.ID] = len(evt.Tags)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// perform random rescans -- shouldn't break the database
|
||||||
|
if rnd.UintN(3) == 1 {
|
||||||
|
mmmm.Rescan()
|
||||||
|
}
|
||||||
|
|
||||||
// verify each layer has the correct events
|
// verify each layer has the correct events
|
||||||
for i, layer := range mmmm.layers {
|
for i, layer := range mmmm.layers {
|
||||||
count := 0
|
count := 0
|
||||||
@@ -120,6 +125,11 @@ func FuzzTest(f *testing.F) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// perform random rescans -- shouldn't break the database
|
||||||
|
if rnd.UintN(3) == 1 {
|
||||||
|
mmmm.Rescan()
|
||||||
|
}
|
||||||
|
|
||||||
for id, deletedlayers := range deleted {
|
for id, deletedlayers := range deleted {
|
||||||
evt, foundlayers := mmmm.GetByID(id)
|
evt, foundlayers := mmmm.GetByID(id)
|
||||||
|
|
||||||
@@ -162,6 +172,11 @@ func FuzzTest(f *testing.F) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// perform random rescans -- shouldn't break the database
|
||||||
|
if rnd.UintN(3) == 1 {
|
||||||
|
mmmm.Rescan()
|
||||||
|
}
|
||||||
|
|
||||||
// now delete a layer and events that only exist in that layer should vanish
|
// now delete a layer and events that only exist in that layer should vanish
|
||||||
layer := mmmm.layers[rnd.Int()%len(mmmm.layers)]
|
layer := mmmm.layers[rnd.Int()%len(mmmm.layers)]
|
||||||
eventsThatShouldVanish := make([]nostr.ID, 0, nevents/2)
|
eventsThatShouldVanish := make([]nostr.ID, 0, nevents/2)
|
||||||
@@ -171,9 +186,19 @@ func FuzzTest(f *testing.F) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// perform random rescans -- shouldn't break the database
|
||||||
|
if rnd.UintN(3) == 1 {
|
||||||
|
mmmm.Rescan()
|
||||||
|
}
|
||||||
|
|
||||||
err = mmmm.DropLayer(layer.name)
|
err = mmmm.DropLayer(layer.name)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
// perform random rescans -- shouldn't break the database
|
||||||
|
if rnd.UintN(3) == 1 {
|
||||||
|
mmmm.Rescan()
|
||||||
|
}
|
||||||
|
|
||||||
for _, id := range eventsThatShouldVanish {
|
for _, id := range eventsThatShouldVanish {
|
||||||
v, ils := mmmm.GetByID(id)
|
v, ils := mmmm.GetByID(id)
|
||||||
require.Nil(t, v)
|
require.Nil(t, v)
|
||||||
|
|||||||
Reference in New Issue
Block a user