whisper: add full filter test suite
This commit is contained in:
parent
406e74e2af
commit
2b9fd6b40a
@ -147,3 +147,53 @@ func TestFilterTopicsCreation(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var filterCompareTests = []struct {
|
||||||
|
matcher filterer
|
||||||
|
message filterer
|
||||||
|
match bool
|
||||||
|
}{
|
||||||
|
{ // Wild-card filter matching anything
|
||||||
|
matcher: filterer{to: "", from: "", matcher: newTopicMatcher()},
|
||||||
|
message: filterer{to: "to", from: "from", matcher: newTopicMatcher(NewFilterTopicsFromStringsFlat("topic")...)},
|
||||||
|
match: true,
|
||||||
|
},
|
||||||
|
{ // Filter matching the to field
|
||||||
|
matcher: filterer{to: "to", from: "", matcher: newTopicMatcher()},
|
||||||
|
message: filterer{to: "to", from: "from", matcher: newTopicMatcher(NewFilterTopicsFromStringsFlat("topic")...)},
|
||||||
|
match: true,
|
||||||
|
},
|
||||||
|
{ // Filter rejecting the to field
|
||||||
|
matcher: filterer{to: "to", from: "", matcher: newTopicMatcher()},
|
||||||
|
message: filterer{to: "", from: "from", matcher: newTopicMatcher(NewFilterTopicsFromStringsFlat("topic")...)},
|
||||||
|
match: false,
|
||||||
|
},
|
||||||
|
{ // Filter matching the from field
|
||||||
|
matcher: filterer{to: "", from: "from", matcher: newTopicMatcher()},
|
||||||
|
message: filterer{to: "to", from: "from", matcher: newTopicMatcher(NewFilterTopicsFromStringsFlat("topic")...)},
|
||||||
|
match: true,
|
||||||
|
},
|
||||||
|
{ // Filter rejecting the from field
|
||||||
|
matcher: filterer{to: "", from: "from", matcher: newTopicMatcher()},
|
||||||
|
message: filterer{to: "to", from: "", matcher: newTopicMatcher(NewFilterTopicsFromStringsFlat("topic")...)},
|
||||||
|
match: false,
|
||||||
|
},
|
||||||
|
{ // Filter matching the topic field
|
||||||
|
matcher: filterer{to: "", from: "from", matcher: newTopicMatcher(NewFilterTopicsFromStringsFlat("topic")...)},
|
||||||
|
message: filterer{to: "to", from: "from", matcher: newTopicMatcher(NewFilterTopicsFromStringsFlat("topic")...)},
|
||||||
|
match: true,
|
||||||
|
},
|
||||||
|
{ // Filter rejecting the topic field
|
||||||
|
matcher: filterer{to: "", from: "", matcher: newTopicMatcher(NewFilterTopicsFromStringsFlat("topic")...)},
|
||||||
|
message: filterer{to: "to", from: "from", matcher: newTopicMatcher()},
|
||||||
|
match: false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestFilterCompare(t *testing.T) {
|
||||||
|
for i, tt := range filterCompareTests {
|
||||||
|
if match := tt.matcher.Compare(tt.message); match != tt.match {
|
||||||
|
t.Errorf("test %d: match mismatch: have %v, want %v", i, match, tt.match)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -21,8 +21,7 @@ type peer struct {
|
|||||||
quit chan struct{}
|
quit chan struct{}
|
||||||
}
|
}
|
||||||
|
|
||||||
// newPeer creates and initializes a new whisper peer connection, returning either
|
// newPeer creates a new whisper peer object, but does not run the handshake itself.
|
||||||
// the newly constructed link or a failure reason.
|
|
||||||
func newPeer(host *Whisper, remote *p2p.Peer, rw p2p.MsgReadWriter) *peer {
|
func newPeer(host *Whisper, remote *p2p.Peer, rw p2p.MsgReadWriter) *peer {
|
||||||
return &peer{
|
return &peer{
|
||||||
host: host,
|
host: host,
|
||||||
|
Loading…
Reference in New Issue
Block a user