Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
859f1f08
Commit
859f1f08
authored
Mar 23, 2015
by
zelig
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
blockpool: wrap intermittent status test in a loop
parent
c4ea9218
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
55 additions
and
40 deletions
+55
-40
status_test.go
blockpool/status_test.go
+47
-36
util.go
blockpool/test/util.go
+8
-4
No files found.
blockpool/status_test.go
View file @
859f1f08
package
blockpool
import
(
//
"fmt"
"fmt"
"testing"
"time"
...
...
@@ -45,17 +45,15 @@ func getStatusValues(s *Status) []int {
func
checkStatus
(
t
*
testing
.
T
,
bp
*
BlockPool
,
syncing
bool
,
expected
[]
int
)
(
err
error
)
{
s
:=
bp
.
Status
()
if
s
.
Syncing
!=
syncing
{
t
.
Errorf
(
"status for Syncing incorrect. expected %v, got %v"
,
syncing
,
s
.
Syncing
)
err
=
fmt
.
Errorf
(
"status for Syncing incorrect. expected %v, got %v"
,
syncing
,
s
.
Syncing
)
return
}
got
:=
getStatusValues
(
s
)
for
i
,
v
:=
range
expected
{
if
i
==
0
||
i
==
7
{
continue
//hack
}
err
=
test
.
CheckInt
(
statusFields
[
i
],
got
[
i
],
v
,
t
)
// fmt.Printf("%v: %v (%v)\n", statusFields[i], got[i], v)
if
err
!=
nil
{
return
err
return
}
}
return
...
...
@@ -63,6 +61,25 @@ func checkStatus(t *testing.T, bp *BlockPool, syncing bool, expected []int) (err
func
TestBlockPoolStatus
(
t
*
testing
.
T
)
{
test
.
LogInit
()
var
err
error
n
:=
3
for
n
>
0
{
n
--
err
=
testBlockPoolStatus
(
t
)
if
err
!=
nil
{
t
.
Log
(
err
)
continue
}
else
{
return
}
}
if
err
!=
nil
{
t
.
Errorf
(
"no pass out of 3: %v"
,
err
)
}
}
func
testBlockPoolStatus
(
t
*
testing
.
T
)
(
err
error
)
{
_
,
blockPool
,
blockPoolTester
:=
newTestBlockPool
(
t
)
blockPoolTester
.
blockChain
[
0
]
=
nil
blockPoolTester
.
initRefBlockChain
(
12
)
...
...
@@ -70,6 +87,7 @@ func TestBlockPoolStatus(t *testing.T) {
delete
(
blockPoolTester
.
refBlockChain
,
6
)
blockPool
.
Start
()
defer
blockPool
.
Stop
()
blockPoolTester
.
tds
=
make
(
map
[
int
]
int
)
blockPoolTester
.
tds
[
9
]
=
1
blockPoolTester
.
tds
[
11
]
=
3
...
...
@@ -79,73 +97,67 @@ func TestBlockPoolStatus(t *testing.T) {
peer2
:=
blockPoolTester
.
newPeer
(
"peer2"
,
2
,
6
)
peer3
:=
blockPoolTester
.
newPeer
(
"peer3"
,
3
,
11
)
peer4
:=
blockPoolTester
.
newPeer
(
"peer4"
,
1
,
9
)
// peer1 := blockPoolTester.newPeer("peer1", 1, 9)
// peer2 := blockPoolTester.newPeer("peer2", 2, 6)
// peer3 := blockPoolTester.newPeer("peer3", 3, 11)
// peer4 := blockPoolTester.newPeer("peer4", 1, 9)
peer2
.
blocksRequestsMap
=
peer1
.
blocksRequestsMap
var
expected
[]
int
var
err
error
expected
=
[]
int
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
false
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
false
,
expected
)
if
err
!=
nil
{
return
}
peer1
.
AddPeer
()
expected
=
[]
int
{
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
1
,
1
,
0
,
1
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer1
.
serveBlocks
(
8
,
9
)
expected
=
[]
int
{
0
,
0
,
1
,
1
,
0
,
1
,
0
,
0
,
1
,
1
,
1
,
1
,
0
}
// err = checkStatus(t
, blockPool, true, expected)
expected
=
[]
int
{
1
,
0
,
1
,
1
,
0
,
1
,
0
,
0
,
1
,
1
,
1
,
1
,
0
}
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer1
.
serveBlockHashes
(
9
,
8
,
7
,
3
,
2
)
expected
=
[]
int
{
6
,
5
,
1
,
1
,
0
,
1
,
0
,
0
,
1
,
1
,
1
,
1
,
0
}
// expected = []int{5, 5, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer1
.
serveBlocks
(
3
,
7
,
8
)
expected
=
[]
int
{
6
,
5
,
3
,
3
,
0
,
1
,
0
,
0
,
1
,
1
,
1
,
1
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer1
.
serveBlocks
(
2
,
3
)
expected
=
[]
int
{
6
,
5
,
4
,
4
,
0
,
1
,
0
,
0
,
1
,
1
,
1
,
1
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer4
.
AddPeer
()
expected
=
[]
int
{
6
,
5
,
4
,
4
,
0
,
2
,
0
,
0
,
2
,
2
,
1
,
1
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer4
.
sendBlockHashes
(
12
,
11
)
expected
=
[]
int
{
6
,
5
,
4
,
4
,
0
,
2
,
0
,
0
,
2
,
2
,
1
,
1
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer2
.
AddPeer
()
expected
=
[]
int
{
6
,
5
,
4
,
4
,
0
,
3
,
0
,
0
,
3
,
3
,
1
,
2
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
...
...
@@ -153,76 +165,76 @@ func TestBlockPoolStatus(t *testing.T) {
peer2
.
serveBlocks
(
5
,
6
)
peer2
.
serveBlockHashes
(
6
,
5
,
4
,
3
,
2
)
expected
=
[]
int
{
10
,
8
,
5
,
5
,
0
,
3
,
1
,
0
,
3
,
3
,
2
,
2
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer2
.
serveBlocks
(
2
,
3
,
4
)
expected
=
[]
int
{
10
,
8
,
6
,
6
,
0
,
3
,
1
,
0
,
3
,
3
,
2
,
2
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
blockPool
.
RemovePeer
(
"peer2"
)
expected
=
[]
int
{
10
,
8
,
6
,
6
,
0
,
3
,
1
,
0
,
3
,
2
,
2
,
2
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer1
.
serveBlockHashes
(
2
,
1
,
0
)
expected
=
[]
int
{
11
,
9
,
6
,
6
,
0
,
3
,
1
,
0
,
3
,
2
,
2
,
2
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer1
.
serveBlocks
(
1
,
2
)
expected
=
[]
int
{
11
,
9
,
7
,
7
,
0
,
3
,
1
,
0
,
3
,
2
,
2
,
2
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer1
.
serveBlocks
(
4
,
5
)
expected
=
[]
int
{
11
,
9
,
8
,
8
,
0
,
3
,
1
,
0
,
3
,
2
,
2
,
2
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer3
.
AddPeer
()
expected
=
[]
int
{
11
,
9
,
8
,
8
,
0
,
4
,
1
,
0
,
4
,
3
,
2
,
3
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer3
.
serveBlocks
(
10
,
11
)
expected
=
[]
int
{
12
,
9
,
9
,
9
,
0
,
4
,
1
,
0
,
4
,
3
,
3
,
3
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer3
.
serveBlockHashes
(
11
,
10
,
9
)
expected
=
[]
int
{
14
,
11
,
9
,
9
,
0
,
4
,
1
,
0
,
4
,
3
,
3
,
3
,
0
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer4
.
sendBlocks
(
11
,
12
)
expected
=
[]
int
{
14
,
11
,
9
,
9
,
0
,
4
,
1
,
0
,
4
,
3
,
4
,
3
,
1
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
peer3
.
serveBlocks
(
9
,
10
)
expected
=
[]
int
{
14
,
11
,
10
,
10
,
0
,
4
,
1
,
0
,
4
,
3
,
4
,
3
,
1
}
err
=
checkStatus
(
t
,
blockPool
,
true
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
true
,
expected
)
if
err
!=
nil
{
return
}
...
...
@@ -231,10 +243,9 @@ func TestBlockPoolStatus(t *testing.T) {
blockPool
.
Wait
(
waitTimeout
)
time
.
Sleep
(
200
*
time
.
Millisecond
)
expected
=
[]
int
{
14
,
3
,
11
,
3
,
8
,
4
,
1
,
8
,
4
,
3
,
4
,
3
,
1
}
err
=
checkStatus
(
t
,
blockPool
,
false
,
expected
)
err
=
checkStatus
(
nil
,
blockPool
,
false
,
expected
)
if
err
!=
nil
{
return
}
blockPool
.
Stop
()
return
nil
}
blockpool/test/util.go
View file @
859f1f08
...
...
@@ -10,16 +10,20 @@ import (
func
CheckInt
(
name
string
,
got
int
,
expected
int
,
t
*
testing
.
T
)
(
err
error
)
{
if
got
!=
expected
{
t
.
Errorf
(
"status for %v incorrect. expected %v, got %v"
,
name
,
expected
,
got
)
err
=
fmt
.
Errorf
(
""
)
err
=
fmt
.
Errorf
(
"status for %v incorrect. expected %v, got %v"
,
name
,
expected
,
got
)
if
t
!=
nil
{
t
.
Error
(
err
)
}
}
return
}
func
CheckDuration
(
name
string
,
got
time
.
Duration
,
expected
time
.
Duration
,
t
*
testing
.
T
)
(
err
error
)
{
if
got
!=
expected
{
t
.
Errorf
(
"status for %v incorrect. expected %v, got %v"
,
name
,
expected
,
got
)
err
=
fmt
.
Errorf
(
""
)
err
=
fmt
.
Errorf
(
"status for %v incorrect. expected %v, got %v"
,
name
,
expected
,
got
)
if
t
!=
nil
{
t
.
Error
(
err
)
}
}
return
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment