@@ -2,18 +2,38 @@ package message_test
2
2
3
3
import (
4
4
"encoding/hex"
5
- "fmt"
5
+ "math/rand"
6
+ "reflect"
6
7
"testing"
7
8
8
- "github.com/epiclabs-io/ut"
9
9
"github.com/ethereum/go-ethereum/common"
10
10
"github.com/ethereum/go-ethereum/rlp"
11
11
"github.com/ethersphere/swarm/pss/message"
12
12
)
13
13
14
- func TestMessage (tx * testing.T ) {
15
- t := ut .BeginTest (tx , false ) // set to true to generate test results
16
- defer t .FinishTest ()
14
+ type messageFixture struct {
15
+ digest string
16
+ rlp string
17
+ stringer string
18
+ }
19
+
20
+ var messageFixtures = []messageFixture {{"4b34781cfa28a5ad653855567273675eabb8535461e57e4f4bfc81504d0a828d" , "dd94fa12f92afbe00f8508d0e83bab9cf8cebf42e25e03808491273d4980" , "PssMsg: Recipient: 0xfa12f92afbe00f8508d0e83bab9cf8cebf42e25e, Topic: 0x91273d49" },
21
+ {"7f076bc036335b5d587d48c985d1b6ef8cd7015d6e484d0c7a72faddaa2aceaa" , "e794210fc7bb818639ac48a4c6afa2f1581a8b9525e2000184ba78973d8aa84f7f80296fda3fd8df" , "PssMsg: Recipient: 0x210fc7bb818639ac48a4c6afa2f1581a8b9525e2, Topic: 0xba78973d" },
22
+ {"a3cb8298779bef44c33461f072c54391a39c09b7a726e55d60384d7484760559" , "f194e2aadcd868ce028477f86e430140149b0300a9a5020284a6b46dd094f4b754a41bd4d5d11330e2924ff403c95bb84fa5" , "PssMsg: Recipient: 0xe2aadcd868ce028477f86e430140149b0300a9a5, Topic: 0xa6b46dd0" },
23
+ {"a82a894a753dffad41330dc1abbc85e5bc1791c393eba682eaf3cee56e6b0d9a" , "f83b9460f9e0fa212bac5db82b22cee5272ee19a067256000384f013aa4b9e2fb3c9afcd593f3c5d3a96fecc1b7672562cc1b8828888269264bb976ed2" , "PssMsg: Recipient: 0x60f9e0fa212bac5db82b22cee5272ee19a067256, Topic: 0xf013aa4b" },
24
+ {"8ba6836253a10cf02e5031695ab39917e816b9677d53b4e4b2af5e439b05d362" , "f845941dd4751f899d743d0780c9644375aae21132781803048426f57386a834dab59240ba3bcec68fd648a62ba94062413e5b5f89c0441b5809fff0a51dd1084e8f06fce30971" , "PssMsg: Recipient: 0x1dd4751f899d743d0780c9644375aae211327818, Topic: 0x26f57386" },
25
+ }
26
+
27
+ func RandomArray (i , length int ) []byte {
28
+ source := rand .NewSource (int64 (i ))
29
+ r := rand .New (source )
30
+ b := make ([]byte , length )
31
+ for n := 0 ; n < length ; n ++ {
32
+ b [n ] = byte (r .Intn (256 ))
33
+ }
34
+ return b
35
+ }
36
+ func TestMessage (t * testing.T ) {
17
37
18
38
// generate some test messages deterministically
19
39
for i , topicString := range someTopics {
@@ -23,29 +43,48 @@ func TestMessage(tx *testing.T) {
23
43
}
24
44
25
45
msg := message .New (flags )
26
- msg .To = ut . RandomArray (i , common .AddressLength )
46
+ msg .To = RandomArray (i , common .AddressLength )
27
47
msg .Expire = uint32 (i )
28
48
msg .Topic = message .NewTopic ([]byte (topicString ))
29
- msg .Payload = ut . RandomArray (i * 9361 , i * 10 )
49
+ msg .Payload = RandomArray (i * 9361 , i * 10 )
30
50
31
51
// test digest function:
32
52
digest := msg .Digest ()
33
- t .EqualsKey (fmt .Sprintf ("msg%d-digest" , i ), hex .EncodeToString (digest [:]))
53
+
54
+ actual := hex .EncodeToString (digest [:])
55
+ expected := messageFixtures [i ].digest
56
+ if expected != actual {
57
+ t .Fatalf ("Expected digest to be %s, got %s" , expected , actual )
58
+ }
34
59
35
60
// test stringer:
36
- st := msg .String ()
37
- t .EqualsKey (fmt .Sprintf ("msg%d-string" , i ), st )
61
+ expected = messageFixtures [i ].stringer
62
+ actual = msg .String ()
63
+ if expected != actual {
64
+ t .Fatalf ("Expected stringer to return %s, got %s" , expected , actual )
65
+ }
38
66
39
67
// Test RLP encoding:
40
68
bytes , err := rlp .EncodeToBytes (& msg )
41
- t .Ok (err )
42
- t .EqualsKey (fmt .Sprintf ("msg%d-rlp" , i ), hex .EncodeToString (bytes ))
69
+ if err != nil {
70
+ t .Fatal (err )
71
+ }
72
+
73
+ expected = messageFixtures [i ].rlp
74
+ actual = hex .EncodeToString (bytes )
75
+ if expected != actual {
76
+ t .Fatalf ("Expected RLP serialization to return %s, got %s" , expected , actual )
77
+ }
43
78
44
79
// Test decoding:
45
80
var msg2 message.Message
46
81
err = rlp .DecodeBytes (bytes , & msg2 )
47
- t .Ok (err )
48
- t .Equals (msg , & msg2 )
82
+ if err != nil {
83
+ t .Fatal (err )
84
+ }
49
85
86
+ if ! reflect .DeepEqual (msg , & msg2 ) {
87
+ t .Fatalf ("Expected RLP decoding return %v, got %v" , msg , & msg2 )
88
+ }
50
89
}
51
90
}
0 commit comments