@@ -19,12 +19,13 @@ package state
19
19
import (
20
20
"crypto/rand"
21
21
"fmt"
22
- "github.com/hyperledger/fabric/gossip/proto"
23
- "github.com/stretchr/testify/assert"
24
- "testing"
25
- "time"
26
22
"sync"
27
23
"sync/atomic"
24
+ "testing"
25
+ "time"
26
+
27
+ "github.com/hyperledger/fabric/gossip/proto"
28
+ "github.com/stretchr/testify/assert"
28
29
)
29
30
30
31
func uuid () (string , error ) {
@@ -33,9 +34,9 @@ func uuid() (string, error) {
33
34
if err != nil {
34
35
return "" , err
35
36
}
36
- uuid [8 ] = uuid [8 ] &^ 0xc0 | 0x80
37
+ uuid [8 ] = uuid [8 ]&^ 0xc0 | 0x80
37
38
38
- uuid [6 ] = uuid [6 ] &^ 0xf0 | 0x40
39
+ uuid [6 ] = uuid [6 ]&^ 0xf0 | 0x40
39
40
return fmt .Sprintf ("%x-%x-%x-%x-%x" , uuid [0 :4 ], uuid [4 :6 ], uuid [6 :8 ], uuid [8 :10 ], uuid [10 :]), nil
40
41
}
41
42
@@ -102,7 +103,7 @@ func TestPayloadsBufferImpl_Ready(t *testing.T) {
102
103
fin <- struct {}{}
103
104
}()
104
105
105
- time .AfterFunc (100 * time .Millisecond , func () {
106
+ time .AfterFunc (100 * time .Millisecond , func () {
106
107
payload , err := randomPayloadWithSeqNum (1 )
107
108
108
109
if err != nil {
@@ -120,85 +121,6 @@ func TestPayloadsBufferImpl_Ready(t *testing.T) {
120
121
}
121
122
}
122
123
123
- func TestPayloadsBufferImpl_MinAvail (t * testing.T ) {
124
- buffer := NewPayloadsBuffer (1 )
125
-
126
- assert .Equal (t , buffer .Next (), uint64 (1 ))
127
-
128
- // Buffer is empty no messages expected,
129
- // hence no min shoyld be value available
130
- _ , err := buffer .MinAvail ()
131
- assert .Error (t , err )
132
-
133
- pushNewRandomPayload (t , buffer , 10 )
134
-
135
- min , err := buffer .MinAvail ()
136
- assert .NoError (t , err )
137
- assert .Equal (t , min , uint64 (10 ))
138
-
139
- pushNewRandomPayload (t , buffer , 17 )
140
-
141
- // Presence of payload w/ sequence number 17 should not affect the minimum available block
142
- min , err = buffer .MinAvail ()
143
- assert .NoError (t , err )
144
- assert .Equal (t , min , uint64 (10 ))
145
-
146
- // Add new block w/ lower sequence number
147
- pushNewRandomPayload (t , buffer , 6 )
148
-
149
- min , err = buffer .MinAvail ()
150
- assert .NoError (t , err )
151
- // New sequence number now should be the minimum
152
- assert .Equal (t , min , uint64 (6 ))
153
- }
154
-
155
- func TestPayloadsBufferImpl_MinAvail2 (t * testing.T ) {
156
- buffer := NewPayloadsBuffer (1 )
157
-
158
- assert .Equal (t , buffer .Next (), uint64 (1 ))
159
-
160
- _ , err := buffer .MinAvail ()
161
- assert .Error (t , err )
162
-
163
- pushNewRandomPayload (t , buffer , 3 )
164
- min , err := buffer .MinAvail ()
165
- assert .NoError (t , err )
166
- assert .Equal (t , min , uint64 (3 ))
167
-
168
- pushNewRandomPayload (t , buffer , 1 )
169
- min , err = buffer .MinAvail ()
170
- assert .NoError (t , err )
171
- assert .Equal (t , min , uint64 (1 ))
172
-
173
- done := sync.WaitGroup {}
174
- done .Add (1 )
175
-
176
- go func () {
177
- select {
178
- case <- buffer .Ready ():
179
- {
180
- // Once payload is ready extract it
181
- assert .Equal (t , buffer .Next (), uint64 (1 ))
182
- payload := buffer .Pop ()
183
- assert .Equal (t , payload .SeqNum , uint64 (1 ))
184
-
185
- // Next min sequence number has to be 3
186
- min , err = buffer .MinAvail ()
187
- assert .NoError (t , err )
188
- assert .Equal (t , min , uint64 (3 ))
189
- }
190
- case <- time .After (500 * time .Millisecond ):
191
- {
192
- t .Fatalf ("Expected to receive notification with next payload" )
193
- }
194
- }
195
- done .Done ()
196
- }()
197
-
198
- // Wait to make sure that payload was extracted
199
- done .Wait ()
200
- }
201
-
202
124
// Test to push several concurrent blocks into the buffer
203
125
// with same sequence number, only one expected to succeed
204
126
func TestPayloadsBufferImpl_ConcurrentPush (t * testing.T ) {
@@ -220,7 +142,7 @@ func TestPayloadsBufferImpl_ConcurrentPush(t *testing.T) {
220
142
payload , err := randomPayloadWithSeqNum (nextSeqNum )
221
143
assert .NoError (t , err )
222
144
223
- errors := make ( []error , 0 )
145
+ var errors []error
224
146
225
147
ready := int32 (0 )
226
148
go func () {
@@ -235,7 +157,7 @@ func TestPayloadsBufferImpl_ConcurrentPush(t *testing.T) {
235
157
startWG .Wait ()
236
158
errors = append (errors , buffer .Push (payload ))
237
159
finishWG .Done ()
238
- }();
160
+ }()
239
161
}
240
162
startWG .Done ()
241
163
finishWG .Wait ()
@@ -245,7 +167,7 @@ func TestPayloadsBufferImpl_ConcurrentPush(t *testing.T) {
245
167
// Only one push attempt expected to succeed
246
168
for _ , err := range errors {
247
169
if err == nil {
248
- success ++
170
+ success ++
249
171
}
250
172
}
251
173
@@ -254,11 +176,3 @@ func TestPayloadsBufferImpl_ConcurrentPush(t *testing.T) {
254
176
// Buffer size has to be only one
255
177
assert .Equal (t , 1 , buffer .Size ())
256
178
}
257
-
258
- func pushNewRandomPayload (t * testing.T , b PayloadsBuffer , seqNum uint64 ) {
259
- // Add new block w/ lower sequence number
260
- payload , err := randomPayloadWithSeqNum (seqNum );
261
- assert .NoError (t , err )
262
- err = b .Push (payload )
263
- assert .NoError (t , err )
264
- }
0 commit comments