-
Notifications
You must be signed in to change notification settings - Fork 0
/
server_test.go
67 lines (56 loc) · 1.65 KB
/
server_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package diet256
import (
"context"
"net"
"testing"
"time"
"github.com/inet256/inet256/pkg/inet256"
"github.com/inet256/inet256/pkg/inet256test"
"github.com/stretchr/testify/require"
)
func TestServer(t *testing.T) {
s := newTestServer(t, 0)
client := newTestClient(t, s)
ctx := context.Background()
k1 := inet256test.NewPrivateKey(t, 101)
node1, err := client.Open(ctx, k1)
require.NoError(t, err)
defer node1.Close()
k2 := inet256test.NewPrivateKey(t, 102)
node2, err := client.Open(ctx, k2)
require.NoError(t, err)
defer node2.Close()
time.Sleep(100 * time.Millisecond)
pubKey, err := node1.LookupPublicKey(ctx, inet256.NewAddr(k2.Public()))
require.NoError(t, err)
t.Log(pubKey)
//inet256test.TestSendRecvOne(t, node1, node2)
}
func TestINET256Service(t *testing.T) {
inet256test.TestService(t, func(t testing.TB, xs []inet256.Service) {
srv := newTestServer(t, 0)
for i := range xs {
xs[i] = newTestClient(t, srv)
}
})
}
func newTestServer(t testing.TB, i int) *Server {
serverAddr := "127.0.0.1:"
udpAddr, err := net.ResolveUDPAddr("udp", serverAddr)
require.NoError(t, err)
udpConn, err := net.ListenUDP("udp", udpAddr)
require.NoError(t, err)
return newTestServerFromConn(t, i, udpConn)
}
func newTestServerFromConn(t testing.TB, i int, pc net.PacketConn) *Server {
pk := inet256test.NewPrivateKey(t, i)
s, err := NewServer(pc, pk, WithFindAddrMinBits(0))
require.NoError(t, err)
//t.Cleanup(func() { s.Close() })
return s
}
func newTestClient(t testing.TB, s *Server, opts ...ClientOption) *Client {
opts = append(opts, WithEndpoint(inet256.NewAddr(s.PublicKey()), s.Addr()))
client := New(opts...)
return client.(*Client)
}