reinstated rekey test
This commit is contained in:
@@ -143,106 +143,105 @@ func TestDispatcher(t *testing.T) {
|
|||||||
cancel()
|
cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disabled due to weird packet mangles on CI
|
func TestDispatcher_Rekey(t *testing.T) {
|
||||||
//func TestDispatcher_Rekey(t *testing.T) {
|
log2.SetLogLevel(log2.Debug)
|
||||||
// log2.SetLogLevel(log2.Debug)
|
var e error
|
||||||
// var e error
|
var l1, l2 *transport.Listener
|
||||||
// var l1, l2 *transport.Listener
|
_ = l2
|
||||||
// _ = l2
|
var k1, k2 *crypto.Keys
|
||||||
// var k1, k2 *crypto.Keys
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
// ctx, cancel := context.WithCancel(context.Background())
|
_ = cancel
|
||||||
// _ = cancel
|
if k1, k2, e = crypto.Generate2Keys(); fails(e) {
|
||||||
// if k1, k2, e = crypto.Generate2Keys(); fails(e) {
|
t.FailNow()
|
||||||
// t.FailNow()
|
}
|
||||||
// }
|
dataPath, err := os.MkdirTemp(os.TempDir(), "badger")
|
||||||
// dataPath, err := os.MkdirTemp(os.TempDir(), "badger")
|
if err != nil {
|
||||||
// if err != nil {
|
t.FailNow()
|
||||||
// t.FailNow()
|
}
|
||||||
// }
|
l1, e = transport.NewListener("", transport.LocalhostZeroIPv4TCP,
|
||||||
// l1, e = transport.NewListener("", transport.LocalhostZeroIPv4TCP,
|
dataPath, k1, ctx, transport.DefaultMTU)
|
||||||
// dataPath, k1, ctx, transport.DefaultMTU)
|
if fails(e) {
|
||||||
// if fails(e) {
|
t.FailNow()
|
||||||
// t.FailNow()
|
}
|
||||||
// }
|
dataPath, err = os.MkdirTemp(os.TempDir(), "badger")
|
||||||
// dataPath, err = os.MkdirTemp(os.TempDir(), "badger")
|
if err != nil {
|
||||||
// if err != nil {
|
t.FailNow()
|
||||||
// t.FailNow()
|
}
|
||||||
// }
|
l2, e = transport.NewListener(transport.GetHostAddress(l1.Host),
|
||||||
// l2, e = transport.NewListener(transport.GetHostAddress(l1.Host),
|
transport.LocalhostZeroIPv4TCP, dataPath, k2, ctx, transport.DefaultMTU)
|
||||||
// transport.LocalhostZeroIPv4TCP, dataPath, k2, ctx, transport.DefaultMTU)
|
if fails(e) {
|
||||||
// if fails(e) {
|
t.FailNow()
|
||||||
// t.FailNow()
|
}
|
||||||
// }
|
var msg1, msg2 []byte
|
||||||
// var msg1, msg2 []byte
|
_ = msg2
|
||||||
// _ = msg2
|
msg1, _, e = tests.GenMessage(4096, "REQUEST")
|
||||||
// msg1, _, e = tests.GenMessage(4096, "REQUEST")
|
msg2, _, e = tests.GenMessage(1024, "RESPONSE")
|
||||||
// msg2, _, e = tests.GenMessage(1024, "RESPONSE")
|
_, _ = msg1, msg2
|
||||||
// _, _ = msg1, msg2
|
hn1 := transport.GetHostAddress(l2.Host)
|
||||||
// hn1 := transport.GetHostAddress(l2.Host)
|
// hn2 := transport.GetHostAddress(l1.Host)
|
||||||
// // hn2 := transport.GetHostAddress(l1.Host)
|
var ks *crypto.KeySet
|
||||||
// var ks *crypto.KeySet
|
_, ks, e = crypto.NewSigner()
|
||||||
// _, ks, e = crypto.NewSigner()
|
d1 := NewDispatcher(l1.Dial(hn1), ctx, ks)
|
||||||
// d1 := NewDispatcher(l1.Dial(hn1), ctx, ks)
|
d2 := NewDispatcher(<-l2.Accept(), ctx, ks)
|
||||||
// d2 := NewDispatcher(<-l2.Accept(), ctx, ks)
|
_, _ = d1, d2
|
||||||
// _, _ = d1, d2
|
var msgp1, msgp2 slice.Bytes
|
||||||
// var msgp1, msgp2 slice.Bytes
|
id1, id2 := nonce.NewID(), nonce.NewID()
|
||||||
// id1, id2 := nonce.NewID(), nonce.NewID()
|
on1 := onions.Skins{}.
|
||||||
// on1 := onions.Skins{}.
|
Response(id1, msg1, 0).
|
||||||
// Response(id1, msg1, 0).
|
Assemble()
|
||||||
// Assemble()
|
on2 := onions.Skins{}.
|
||||||
// on2 := onions.Skins{}.
|
Response(id2, msg2, 0).
|
||||||
// Response(id2, msg2, 0).
|
Assemble()
|
||||||
// Assemble()
|
s1 := onions.Encode(on1)
|
||||||
// s1 := onions.Encode(on1)
|
s2 := onions.Encode(on2)
|
||||||
// s2 := onions.Encode(on2)
|
x1 := s1.GetAll()
|
||||||
// x1 := s1.GetAll()
|
x2 := s2.GetAll()
|
||||||
// x2 := s2.GetAll()
|
xx1 := &Onion{x1}
|
||||||
// xx1 := &Onion{x1}
|
xx2 := &Onion{x2}
|
||||||
// xx2 := &Onion{x2}
|
sp1 := splice.New(xx1.Len())
|
||||||
// sp1 := splice.New(xx1.Len())
|
sp2 := splice.New(xx2.Len())
|
||||||
// sp2 := splice.New(xx2.Len())
|
if e = xx1.Encode(sp1); fails(e) {
|
||||||
// if e = xx1.Encode(sp1); fails(e) {
|
t.FailNow()
|
||||||
// t.FailNow()
|
}
|
||||||
// }
|
if e = xx2.Encode(sp2); fails(e) {
|
||||||
// if e = xx2.Encode(sp2); fails(e) {
|
t.FailNow()
|
||||||
// t.FailNow()
|
}
|
||||||
// }
|
countTo, succ := 1000, 0
|
||||||
// countTo, succ := 1000, 0
|
go func() {
|
||||||
// go func() {
|
for {
|
||||||
// for {
|
select {
|
||||||
// select {
|
case <-ctx.Done():
|
||||||
// case <-ctx.Done():
|
return
|
||||||
// return
|
case b := <-d1.Duplex.Receive():
|
||||||
// case b := <-d1.Duplex.Receive():
|
bb, xb2 := b.ToBytes(), x2.ToBytes()
|
||||||
// bb, xb2 := b.ToBytes(), x2.ToBytes()
|
if string(bb) != string(xb2) {
|
||||||
// if string(bb) != string(xb2) {
|
t.Error("did not receive expected message")
|
||||||
// t.Error("did not receive expected message")
|
return
|
||||||
// return
|
} else {
|
||||||
// } else {
|
succ++
|
||||||
// succ++
|
continue
|
||||||
// continue
|
}
|
||||||
// }
|
case b := <-d2.Duplex.Receive():
|
||||||
// case b := <-d2.Duplex.Receive():
|
bb, xb1 := b.ToBytes(), x1.ToBytes()
|
||||||
// bb, xb1 := b.ToBytes(), x1.ToBytes()
|
if string(bb) != string(xb1) {
|
||||||
// if string(bb) != string(xb1) {
|
t.Error("did not receive expected message")
|
||||||
// t.Error("did not receive expected message")
|
return
|
||||||
// return
|
} else {
|
||||||
// } else {
|
succ++
|
||||||
// succ++
|
continue
|
||||||
// continue
|
}
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// }
|
}()
|
||||||
// }()
|
msgp1 = sp1.GetAll()
|
||||||
// msgp1 = sp1.GetAll()
|
msgp2 = sp2.GetAll()
|
||||||
// msgp2 = sp2.GetAll()
|
for i := 0; i < countTo; i++ {
|
||||||
// for i := 0; i < countTo; i++ {
|
d1.SendToConn(msgp1)
|
||||||
// d1.SendToConn(msgp1)
|
d2.SendToConn(msgp2)
|
||||||
// d2.SendToConn(msgp2)
|
}
|
||||||
// }
|
time.Sleep(time.Second)
|
||||||
// time.Sleep(time.Second*5)
|
cancel()
|
||||||
// cancel()
|
if succ != countTo*3 {
|
||||||
// if succ != countTo*3 {
|
t.Fatal("did not receive all messages correctly", succ, countTo*3)
|
||||||
// t.Fatal("did not receive all messages correctly", succ, countTo*3)
|
}
|
||||||
// }
|
}
|
||||||
//}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user