Newer
Older
package quantumlayer
// Some tests
import (
"fmt"
"net"
"testing"
"time"
logrus "github.com/sirupsen/logrus"
)
func TestQuantumLayer(t *testing.T) {
// Generate UDPAddr for ql1 peer
udpQL2AddrString := fmt.Sprintf("127.0.0.1:%d", 5002)
udpQL2Addr, err := net.ResolveUDPAddr("udp", udpQL2AddrString)
if err != nil {
t.Fatalf("QuantumlayerEmuPRNG UDP failure: %s", err)
return
}
// Generate UDPAddr for ql2 peer
udpQL1AddrString := fmt.Sprintf("127.0.0.1:%d", 5001)
udpQL1Addr, err := net.ResolveUDPAddr("udp", udpQL1AddrString)
if err != nil {
t.Fatalf("QuantumlayerEmuPRNG UDP failure: %s", err)
return
}
ql1 := NewQuantumlayerEmuPRNG(os.Stdout, logrus.DebugLevel, false)
ql1.Configure(udpQL1AddrString)
ql1.PowerOn(true) // this one generates keys
defer ql1.PowerOff()
ql2 := NewQuantumlayerEmuPRNG(os.Stdout, logrus.DebugLevel, false)
ql2.Configure(udpQL2AddrString)
ql2.PowerOn(false) // this one does NOT generate keys
defer ql2.PowerOff()
ql1.AddPeer(udpQL2Addr)
ql2.AddPeer(udpQL1Addr)
// Wait for key gen to get up and running
time.Sleep(5 * time.Second)
for n := 0; n < 2; n++ {
if err == nil {
t.Logf("run %d, *ql1* keyid %d \t keylen %d", n, resultQl1.BulkKeyId, resultQl1.BulkKeyLength)
} else {
t.Fatalf("Couldn't read local ql1 batch with error %s", err)
// TODO: Calculate checksum of BulkKey and double-check
time.Sleep(5 * time.Second)
}
}