ipfs-cluster/pnet_test.go

85 lines
2.2 KiB
Go
Raw Normal View History

2017-06-30 00:40:06 +00:00
package ipfscluster
import (
"testing"
pnet "github.com/libp2p/go-libp2p-pnet"
)
2017-06-30 00:40:06 +00:00
func TestClusterSecretFormat(t *testing.T) {
2017-07-20 23:11:40 +00:00
goodSecret := "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
emptySecret := ""
tooShort := "0123456789abcdef"
tooLong := "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0"
unsupportedChars := "0123456789abcdef0123456789!!!!!!0123456789abcdef0123456789abcdef"
_, err := DecodeClusterSecret(goodSecret)
if err != nil {
2017-07-20 23:11:40 +00:00
t.Fatal("Failed to decode well-formatted secret.")
}
decodedEmptySecret, err := DecodeClusterSecret(emptySecret)
if decodedEmptySecret != nil || err != nil {
2017-07-20 23:11:40 +00:00
t.Fatal("Unsuspected output of decoding empty secret.")
}
_, err = DecodeClusterSecret(tooShort)
if err == nil {
2017-07-20 23:11:40 +00:00
t.Fatal("Successfully decoded secret that should haved failed (too short).")
}
_, err = DecodeClusterSecret(tooLong)
if err == nil {
2017-07-20 23:11:40 +00:00
t.Fatal("Successfully decoded secret that should haved failed (too long).")
}
_, err = DecodeClusterSecret(unsupportedChars)
if err == nil {
2017-07-20 23:11:40 +00:00
t.Fatal("Successfully decoded secret that should haved failed (unsupported chars).")
}
}
2017-06-30 00:40:06 +00:00
func TestSimplePNet(t *testing.T) {
clusters, mocks := peerManagerClusters(t)
defer cleanRaft()
defer shutdownClusters(t, clusters, mocks)
2017-06-30 00:40:06 +00:00
if len(clusters) < 2 {
t.Skip("need at least 2 nodes for this test")
}
_, err := clusters[0].PeerAdd(clusterAddr(clusters[1]))
if err != nil {
t.Fatal(err)
}
2017-06-30 00:40:06 +00:00
if len(clusters[0].Peers()) != len(clusters[1].Peers()) {
t.Fatal("Expected same number of peers")
}
if len(clusters[0].Peers()) != 2 {
t.Fatal("Expected 2 peers")
}
2017-06-30 00:40:06 +00:00
}
func TestClusterSecretRequired(t *testing.T) {
cl1Secret, err := pnet.GenerateV1Bytes()
2017-07-20 23:11:40 +00:00
if err != nil {
t.Fatal("Unable to generate cluster secret.")
}
cl1, _ := createOnePeerCluster(t, 1, (*cl1Secret)[:])
cl2, _ := createOnePeerCluster(t, 2, testingClusterSecret)
defer cleanRaft()
defer cl1.Shutdown()
defer cl2.Shutdown()
peers1 := cl1.Peers()
peers2 := cl2.Peers()
_, err = cl1.PeerAdd(clusterAddr(cl2))
if err == nil {
t.Fatal("Peer entered private cluster without key.")
}
2017-06-30 00:40:06 +00:00
if len(peers1) != len(peers2) {
t.Fatal("Expected same number of peers")
}
if len(peers1) != 1 {
t.Fatal("Expected no peers other than self")
}
2017-06-30 00:40:06 +00:00
}