Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
comms
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
elixxir
comms
Commits
28415e35
Unverified
Commit
28415e35
authored
4 years ago
by
Sydney Anne Erickson
Browse files
Options
Downloads
Patches
Plain Diff
Add more tests for ERS
parent
80d97deb
No related branches found
No related tags found
1 merge request
!58
Revert "Modify waiting lock"
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
network/historicalRoundData_test.go
+139
-1
139 additions, 1 deletion
network/historicalRoundData_test.go
with
139 additions
and
1 deletion
network/historicalRoundData_test.go
+
139
−
1
View file @
28415e35
...
@@ -4,7 +4,12 @@ import (
...
@@ -4,7 +4,12 @@ import (
jww
"github.com/spf13/jwalterweatherman"
jww
"github.com/spf13/jwalterweatherman"
pb
"gitlab.com/elixxir/comms/mixmessages"
pb
"gitlab.com/elixxir/comms/mixmessages"
ds
"gitlab.com/elixxir/comms/network/dataStructures"
ds
"gitlab.com/elixxir/comms/network/dataStructures"
"gitlab.com/elixxir/comms/testkeys"
"gitlab.com/elixxir/comms/testutils"
"gitlab.com/elixxir/crypto/signature"
"gitlab.com/elixxir/crypto/signature/rsa"
"gitlab.com/elixxir/primitives/id"
"gitlab.com/elixxir/primitives/id"
"gitlab.com/xx_network/comms/connect"
"testing"
"testing"
)
)
...
@@ -164,7 +169,7 @@ func TestERSRetrieve(t *testing.T) {
...
@@ -164,7 +169,7 @@ func TestERSRetrieve(t *testing.T) {
t
.
Errorf
(
err
.
Error
())
t
.
Errorf
(
err
.
Error
())
}
}
if
nri
==
nil
{
if
nri
==
nil
{
t
.
Fatalf
(
"returned round info was
not
nil"
)
t
.
Fatalf
(
"returned round info was nil"
)
}
}
if
nri
.
ID
!=
r
.
ID
||
nri
.
UpdateID
!=
r
.
UpdateID
{
if
nri
.
ID
!=
r
.
ID
||
nri
.
UpdateID
!=
r
.
UpdateID
{
t
.
Errorf
(
"Returned round or update ID did not match what we put in"
)
t
.
Errorf
(
"Returned round or update ID did not match what we put in"
)
...
@@ -249,3 +254,136 @@ func TestERSRetrieveRange(t *testing.T) {
...
@@ -249,3 +254,136 @@ func TestERSRetrieveRange(t *testing.T) {
t
.
Errorf
(
"Second returned round and original mismatched IDs"
)
t
.
Errorf
(
"Second returned round and original mismatched IDs"
)
}
}
}
}
// Test that calling the GetHistoricalRound interface on Instance works
func
TestInstance_GetHistoricalRound
(
t
*
testing
.
T
)
{
i
:=
Instance
{}
ri
,
err
:=
i
.
GetHistoricalRound
(
id
.
Round
(
0
))
// This should fail since this Instance doesn't have an ERS object
if
err
==
nil
{
t
.
Errorf
(
err
.
Error
())
}
var
ers
ds
.
ExternalRoundStorage
=
ersMemMap
{
rounds
:
make
(
map
[
id
.
Round
]
*
pb
.
RoundInfo
)}
i2
:=
Instance
{
ers
:
ers
}
ri
,
err
=
i2
.
GetHistoricalRound
(
id
.
Round
(
0
))
// Should return no error and blank round
if
err
!=
nil
{
t
.
Errorf
(
err
.
Error
())
}
if
ri
!=
nil
{
t
.
Errorf
(
"ri contains round info"
)
}
}
// Test that calling the GetHistoricalRoundRange interface on Instance works
func
TestInstance_GetHistoricalRoundRange
(
t
*
testing
.
T
)
{
i
:=
Instance
{}
ri
,
err
:=
i
.
GetHistoricalRoundRange
(
5
,
10
)
// This should fail since this Instance doesn't have an ERS object
if
err
==
nil
{
t
.
Errorf
(
err
.
Error
())
}
var
ers
ds
.
ExternalRoundStorage
=
ersMemMap
{
rounds
:
make
(
map
[
id
.
Round
]
*
pb
.
RoundInfo
)}
i2
:=
Instance
{
ers
:
ers
}
ri
,
err
=
i2
.
GetHistoricalRoundRange
(
5
,
10
)
// Should return no error and blank round
if
err
!=
nil
{
t
.
Errorf
(
err
.
Error
())
}
for
_
,
round
:=
range
ri
{
if
round
!=
nil
{
t
.
Errorf
(
"ri contains round info"
)
}
}
}
// Test that calling the GetHistoricalRounds interface on Instance works
func
TestInstance_GetHistoricalRounds
(
t
*
testing
.
T
)
{
i
:=
Instance
{}
getRounds
:=
[]
id
.
Round
{
id
.
Round
(
1
),
id
.
Round
(
2
),
id
.
Round
(
3
)}
ri
,
err
:=
i
.
GetHistoricalRounds
(
getRounds
)
// This should fail since this Instance doesn't have an ERS object
if
err
==
nil
{
t
.
Errorf
(
err
.
Error
())
}
var
ers
ds
.
ExternalRoundStorage
=
ersMemMap
{
rounds
:
make
(
map
[
id
.
Round
]
*
pb
.
RoundInfo
)}
i2
:=
Instance
{
ers
:
ers
}
ri
,
err
=
i2
.
GetHistoricalRounds
(
getRounds
)
// Should return no error and blank round
if
err
!=
nil
{
t
.
Errorf
(
err
.
Error
())
}
for
_
,
round
:=
range
ri
{
if
round
!=
nil
{
t
.
Errorf
(
"ri contains round info"
)
}
}
}
// Test that a new round update is inputted into the ERS map
func
TestInstance_RoundUpdateAddsToERS
(
t
*
testing
.
T
)
{
// Get signing certificates
priv
:=
testkeys
.
LoadFromPath
(
testkeys
.
GetNodeKeyPath
())
privKey
,
err
:=
rsa
.
LoadPrivateKeyFromPem
(
priv
)
pub
:=
testkeys
.
LoadFromPath
(
testkeys
.
GetNodeCertPath
())
if
err
!=
nil
{
t
.
Errorf
(
"Could not generate rsa key: %s"
,
err
)
}
// Create a basic testing NDF and sign it
f
:=
&
pb
.
NDF
{}
f
.
Ndf
=
[]
byte
(
testutils
.
ExampleJSON
)
baseNDF
:=
testutils
.
NDF
if
err
!=
nil
{
t
.
Errorf
(
"Could not generate serialized ndf: %s"
,
err
)
}
err
=
signature
.
Sign
(
f
,
privKey
)
if
err
!=
nil
{
t
.
Errorf
(
"Could not generate serialized ndf: %s"
,
err
)
}
// Build the Instance object with an ERS memory map
pc
:=
&
connect
.
ProtoComms
{}
var
ers
ds
.
ExternalRoundStorage
=
ersMemMap
{
rounds
:
make
(
map
[
id
.
Round
]
*
pb
.
RoundInfo
)}
i
,
err
:=
NewInstance
(
pc
,
baseNDF
,
baseNDF
,
ers
)
if
err
!=
nil
{
t
.
Error
(
nil
)
}
// Add a permissioning host
_
,
err
=
i
.
comm
.
AddHost
(
&
id
.
Permissioning
,
"0.0.0.0:4200"
,
pub
,
false
,
true
)
if
err
!=
nil
{
t
.
Errorf
(
"Failed to add permissioning host: %+v"
,
err
)
}
// Build a basic RoundInfo object and sign it
r
:=
&
pb
.
RoundInfo
{
ID
:
2
,
UpdateID
:
4
,
}
err
=
signature
.
Sign
(
r
,
privKey
)
if
err
!=
nil
{
t
.
Errorf
(
err
.
Error
())
}
// Cause a RoundUpdate
err
=
i
.
RoundUpdate
(
r
)
if
err
!=
nil
{
t
.
Errorf
(
err
.
Error
())
}
// Check that the round info was stored correctly
rr
,
err
:=
ers
.
Retrieve
(
id
.
Round
(
r
.
ID
))
if
err
!=
nil
{
t
.
Errorf
(
err
.
Error
())
}
if
rr
==
nil
{
t
.
Fatalf
(
"returned round info was nil"
)
}
if
rr
.
ID
!=
r
.
ID
||
rr
.
UpdateID
!=
r
.
UpdateID
{
t
.
Errorf
(
"Second returned round and original mismatched IDs"
)
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment