Skip to content
Snippets Groups Projects
quantumlayer-emu-prng_test.go 1.44 KiB
Newer Older
  • Learn to ignore specific revisions
  • package quantumlayer
    
    // Some tests
    
    import (
    	"fmt"
    	"net"
    
    
    	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)
    
    
    		resultQl1, err := ql1.GetKeyBulkPeer()
    
    		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