mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-17 17:33:47 +00:00
whisper: test to check two identical filters receive identical messages
This commit is contained in:
parent
4d241a5d75
commit
1de075ed6c
1 changed files with 62 additions and 1 deletions
|
|
@ -155,11 +155,72 @@ func TestInstallSymKeyGeneratesHash(t *testing.T) {
|
||||||
for i, b := range filter.SymKeyHash {
|
for i, b := range filter.SymKeyHash {
|
||||||
if b != initialSymKeyHash[i] {
|
if b != initialSymKeyHash[i] {
|
||||||
t.Fatalf("The filter's symmetric key hash was not properly generated by Install")
|
t.Fatalf("The filter's symmetric key hash was not properly generated by Install")
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInstallIdenticalFilters(t *testing.T) {
|
||||||
|
InitSingleTest()
|
||||||
|
|
||||||
|
w := New(&Config{})
|
||||||
|
filters := NewFilters(w)
|
||||||
|
filter1, _ := generateFilter(t, true)
|
||||||
|
|
||||||
|
// Copy the first filter since some of its fields
|
||||||
|
// are randomly gnerated.
|
||||||
|
filter2 := &Filter{
|
||||||
|
KeySym: filter1.KeySym,
|
||||||
|
Topics: filter1.Topics,
|
||||||
|
PoW: filter1.PoW,
|
||||||
|
AllowP2P: filter1.AllowP2P,
|
||||||
|
Messages: make(map[common.Hash]*ReceivedMessage),
|
||||||
|
};
|
||||||
|
|
||||||
|
_, err := filters.Install(filter1)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Error installing the first filter: %v", err);
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = filters.Install(filter2)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Error installing the second filter: %v", err);
|
||||||
|
}
|
||||||
|
|
||||||
|
params, err := generateMessageParams()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal("Error generating message parameters: %v", err);
|
||||||
|
}
|
||||||
|
|
||||||
|
params.KeySym = filter1.KeySym
|
||||||
|
params.Topic = BytesToTopic(filter1.Topics[0])
|
||||||
|
|
||||||
|
filter1.Src = ¶ms.Src.PublicKey;
|
||||||
|
filter2.Src = ¶ms.Src.PublicKey;
|
||||||
|
|
||||||
|
sentMessage, err := NewSentMessage(params)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed to create new message with seed %d: %s.", seed, err)
|
||||||
|
}
|
||||||
|
env, err := sentMessage.Wrap(params)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed Wrap with seed %d: %s.", seed, err)
|
||||||
|
}
|
||||||
|
msg := env.Open(filter1)
|
||||||
|
if msg == nil {
|
||||||
|
t.Fatalf("failed to Open with filter1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if ! filter1.MatchEnvelope(env) {
|
||||||
|
t.Fatalf("failed matching with the first filter")
|
||||||
|
}
|
||||||
|
|
||||||
|
if ! filter2.MatchMessage(msg) {
|
||||||
|
t.Fatalf("failed matching with the second filter")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestComparePubKey(t *testing.T) {
|
func TestComparePubKey(t *testing.T) {
|
||||||
InitSingleTest()
|
InitSingleTest()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue