mmm: fix fuzz test.
This commit is contained in:
@@ -88,13 +88,13 @@ func FuzzTest(f *testing.F) {
|
||||
}
|
||||
|
||||
// verify each layer has the correct events
|
||||
for _, layer := range mmmm.layers {
|
||||
for i, layer := range mmmm.layers {
|
||||
count := 0
|
||||
for evt := range layer.QueryEvents(nostr.Filter{}, 500) {
|
||||
for evt := range layer.QueryEvents(nostr.Filter{}, 11000) {
|
||||
require.True(t, evt.Tags.ContainsAny("t", []string{layer.name}))
|
||||
count++
|
||||
}
|
||||
require.Equal(t, count, len(storedByLayer[layer.name]))
|
||||
require.Equal(t, count, len(storedByLayer[layer.name]), "layer %d ('%s')", i, layer.name)
|
||||
}
|
||||
|
||||
// randomly select n events to delete from random layers
|
||||
@@ -147,13 +147,13 @@ func FuzzTest(f *testing.F) {
|
||||
for _, layer := range mmmm.layers {
|
||||
// verify event still accessible from other layers
|
||||
if slices.Contains(foundlayers, layer) {
|
||||
next, stop := iter.Pull(layer.QueryEvents(nostr.Filter{Kinds: []nostr.Kind{evt.Kind}}, 500)) // hack
|
||||
next, stop := iter.Pull(layer.QueryEvents(nostr.Filter{Kinds: []nostr.Kind{evt.Kind}}, 11000)) // hack
|
||||
_, fetched := next()
|
||||
require.True(t, fetched)
|
||||
stop()
|
||||
} else {
|
||||
// and not accessible from this layer we just deleted
|
||||
next, stop := iter.Pull(layer.QueryEvents(nostr.Filter{Kinds: []nostr.Kind{evt.Kind}}, 500)) // hack
|
||||
next, stop := iter.Pull(layer.QueryEvents(nostr.Filter{Kinds: []nostr.Kind{evt.Kind}}, 11000)) // hack
|
||||
_, fetched := next()
|
||||
require.True(t, fetched)
|
||||
stop()
|
||||
@@ -165,7 +165,7 @@ func FuzzTest(f *testing.F) {
|
||||
// now delete a layer and events that only exist in that layer should vanish
|
||||
layer := mmmm.layers[rnd.Int()%len(mmmm.layers)]
|
||||
eventsThatShouldVanish := make([]nostr.ID, 0, nevents/2)
|
||||
for evt := range layer.QueryEvents(nostr.Filter{}, 500) {
|
||||
for evt := range layer.QueryEvents(nostr.Filter{}, 11000) {
|
||||
if len(evt.Tags) == 1+len(deleted[evt.ID]) {
|
||||
eventsThatShouldVanish = append(eventsThatShouldVanish, evt.ID)
|
||||
}
|
||||
|
||||
@@ -42,8 +42,14 @@ func (il *IndexingLayer) SaveEvent(evt nostr.Event) error {
|
||||
return err
|
||||
}
|
||||
|
||||
mmmtxn.Commit()
|
||||
iltxn.Commit()
|
||||
if err := mmmtxn.Commit(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := iltxn.Commit(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -152,7 +158,7 @@ func (b *MultiMmapManager) storeOn(
|
||||
val = binary.BigEndian.AppendUint16(val, il.id)
|
||||
}
|
||||
|
||||
// store the id index with the refcounts
|
||||
// store the id index with the layer references
|
||||
if err := mmmtxn.Put(b.indexId, evt.ID[0:8], val, 0); err != nil {
|
||||
panic(fmt.Errorf("failed to store %x by id: %w", evt.ID[:], err))
|
||||
}
|
||||
|
||||
5
eventstore/mmm/testdata/fuzz/FuzzTest/b633cd02db315e52
vendored
Normal file
5
eventstore/mmm/testdata/fuzz/FuzzTest/b633cd02db315e52
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
go test fuzz v1
|
||||
int(-196)
|
||||
uint(69)
|
||||
uint(536)
|
||||
uint(128)
|
||||
Reference in New Issue
Block a user