@@ -19,6 +19,7 @@ package filters
1919import (
2020 "context"
2121 "math/big"
22+ "reflect"
2223 "testing"
2324
2425 "github.com/ethereum/go-ethereum/common"
@@ -174,85 +175,62 @@ func TestFilters(t *testing.T) {
174175 rawdb .WriteFinalizedBlockHash (db , chain [998 ].Hash ())
175176
176177 filter := sys .NewRangeFilter (0 , - 1 , []common.Address {addr }, [][]common.Hash {{hash1 , hash2 , hash3 , hash4 }})
177-
178178 logs , _ := filter .Logs (context .Background ())
179179 if len (logs ) != 4 {
180180 t .Error ("expected 4 log, got" , len (logs ))
181181 }
182182
183- filter = sys .NewRangeFilter (900 , 999 , []common.Address {addr }, [][]common.Hash {{hash3 }})
184- logs , _ = filter .Logs (context .Background ())
185- if len (logs ) != 1 {
186- t .Error ("expected 1 log, got" , len (logs ))
187- }
188- if len (logs ) > 0 && logs [0 ].Topics [0 ] != hash3 {
189- t .Errorf ("expected log[0].Topics[0] to be %x, got %x" , hash3 , logs [0 ].Topics [0 ])
190- }
191-
192- filter = sys .NewRangeFilter (990 , - 1 , []common.Address {addr }, [][]common.Hash {{hash3 }})
193- logs , _ = filter .Logs (context .Background ())
194- if len (logs ) != 1 {
195- t .Error ("expected 1 log, got" , len (logs ))
196- }
197- if len (logs ) > 0 && logs [0 ].Topics [0 ] != hash3 {
198- t .Errorf ("expected log[0].Topics[0] to be %x, got %x" , hash3 , logs [0 ].Topics [0 ])
199- }
200-
201- filter = sys .NewRangeFilter (1 , 10 , nil , [][]common.Hash {{hash1 , hash2 }})
202-
203- logs , _ = filter .Logs (context .Background ())
204- if len (logs ) != 2 {
205- t .Error ("expected 2 log, got" , len (logs ))
206- }
207-
208- failHash := common .BytesToHash ([]byte ("fail" ))
209- filter = sys .NewRangeFilter (0 , - 1 , nil , [][]common.Hash {{failHash }})
210-
211- logs , _ = filter .Logs (context .Background ())
212- if len (logs ) != 0 {
213- t .Error ("expected 0 log, got" , len (logs ))
214- }
215-
216- failAddr := common .BytesToAddress ([]byte ("failmenow" ))
217- filter = sys .NewRangeFilter (0 , - 1 , []common.Address {failAddr }, nil )
218-
219- logs , _ = filter .Logs (context .Background ())
220- if len (logs ) != 0 {
221- t .Error ("expected 0 log, got" , len (logs ))
222- }
223-
224- filter = sys .NewRangeFilter (0 , - 1 , nil , [][]common.Hash {{failHash }, {hash1 }})
225-
226- logs , _ = filter .Logs (context .Background ())
227- if len (logs ) != 0 {
228- t .Error ("expected 0 log, got" , len (logs ))
229- }
230-
231- filter = sys .NewRangeFilter (- 1 , - 1 , nil , nil )
232-
233- logs , _ = filter .Logs (context .Background ())
234- if len (logs ) != 1 {
235- t .Error ("expected 1 log, got" , len (logs ))
236- }
237-
238- filter = sys .NewRangeFilter (- 3 , - 1 , nil , nil )
239-
240- logs , _ = filter .Logs (context .Background ())
241- if len (logs ) != 2 {
242- t .Error ("expected 2 log, got" , len (logs ))
243- }
244-
245- filter = sys .NewRangeFilter (- 3 , - 3 , nil , nil )
246-
247- logs , _ = filter .Logs (context .Background ())
248- if len (logs ) != 1 {
249- t .Error ("expected 1 log, got" , len (logs ))
250- }
251-
252- filter = sys .NewRangeFilter (- 1 , - 3 , nil , nil )
253-
254- logs , _ = filter .Logs (context .Background ())
255- if len (logs ) != 0 {
256- t .Error ("expected 0 log, got" , len (logs ))
183+ for i , tc := range []struct {
184+ f * Filter
185+ wantHashes []common.Hash
186+ }{
187+ {
188+ sys .NewRangeFilter (900 , 999 , []common.Address {addr }, [][]common.Hash {{hash3 }}),
189+ []common.Hash {hash3 },
190+ }, {
191+ sys .NewRangeFilter (990 , - 1 , []common.Address {addr }, [][]common.Hash {{hash3 }}),
192+ []common.Hash {hash3 },
193+ }, {
194+ sys .NewRangeFilter (1 , 10 , nil , [][]common.Hash {{hash1 , hash2 }}),
195+ []common.Hash {hash1 , hash2 },
196+ }, {
197+ sys .NewRangeFilter (0 , - 1 , nil , [][]common.Hash {{common .BytesToHash ([]byte ("fail" ))}}),
198+ nil ,
199+ }, {
200+ sys .NewRangeFilter (0 , - 1 , []common.Address {common .BytesToAddress ([]byte ("failmenow" ))}, nil ),
201+ nil ,
202+ }, {
203+ sys .NewRangeFilter (0 , - 1 , nil , [][]common.Hash {{common .BytesToHash ([]byte ("fail" ))}, {hash1 }}),
204+ nil ,
205+ }, {
206+ sys .NewRangeFilter (- 1 , - 1 , nil , nil ), []common.Hash {hash4 },
207+ }, {
208+ sys .NewRangeFilter (- 3 , - 1 , nil , nil ), []common.Hash {hash3 , hash4 },
209+ }, {
210+ sys .NewRangeFilter (- 3 , - 3 , nil , nil ), []common.Hash {hash3 },
211+ }, {
212+ sys .NewRangeFilter (- 1 , - 3 , nil , nil ), nil ,
213+ }, {
214+ sys .NewRangeFilter (- 4 , - 1 , nil , nil ), nil ,
215+ }, {
216+ sys .NewRangeFilter (- 4 , - 4 , nil , nil ), nil ,
217+ }, {
218+ sys .NewRangeFilter (- 1 , - 4 , nil , nil ), nil ,
219+ },
220+ } {
221+ logs , _ := tc .f .Logs (context .Background ())
222+ var haveHashes []common.Hash
223+ for _ , l := range logs {
224+ haveHashes = append (haveHashes , l .Topics [0 ])
225+ }
226+ if have , want := len (haveHashes ), len (tc .wantHashes ); have != want {
227+ t .Fatalf ("test %d, have %d logs, want %d" , i , have , want )
228+ }
229+ if len (haveHashes ) == 0 {
230+ continue
231+ }
232+ if ! reflect .DeepEqual (tc .wantHashes , haveHashes ) {
233+ t .Fatalf ("test %d, have %v want %v" , i , haveHashes , tc .wantHashes )
234+ }
257235 }
258236}
0 commit comments