(t *testing.T)
| 25 | } |
| 26 | |
| 27 | func TestTailnet(t *testing.T) { |
| 28 | t.Parallel() |
| 29 | derpMap, _ := tailnettest.RunDERPAndSTUN(t) |
| 30 | t.Run("InstantClose", func(t *testing.T) { |
| 31 | t.Parallel() |
| 32 | logger := testutil.Logger(t) |
| 33 | conn, err := tailnet.NewConn(&tailnet.Options{ |
| 34 | Addresses: []netip.Prefix{tailnet.TailscaleServicePrefix.RandomPrefix()}, |
| 35 | Logger: logger.Named("w1"), |
| 36 | DERPMap: derpMap, |
| 37 | }) |
| 38 | require.NoError(t, err) |
| 39 | err = conn.Close() |
| 40 | require.NoError(t, err) |
| 41 | }) |
| 42 | t.Run("Connect", func(t *testing.T) { |
| 43 | t.Parallel() |
| 44 | logger := testutil.Logger(t) |
| 45 | ctx := testutil.Context(t, testutil.WaitLong) |
| 46 | w1IP := tailnet.TailscaleServicePrefix.RandomAddr() |
| 47 | w1, err := tailnet.NewConn(&tailnet.Options{ |
| 48 | Addresses: []netip.Prefix{netip.PrefixFrom(w1IP, 128)}, |
| 49 | Logger: logger.Named("w1"), |
| 50 | DERPMap: derpMap, |
| 51 | }) |
| 52 | require.NoError(t, err) |
| 53 | |
| 54 | w2, err := tailnet.NewConn(&tailnet.Options{ |
| 55 | Addresses: []netip.Prefix{tailnet.TailscaleServicePrefix.RandomPrefix()}, |
| 56 | Logger: logger.Named("w2"), |
| 57 | DERPMap: derpMap, |
| 58 | }) |
| 59 | require.NoError(t, err) |
| 60 | t.Cleanup(func() { |
| 61 | _ = w1.Close() |
| 62 | _ = w2.Close() |
| 63 | }) |
| 64 | stitch(t, w2, w1) |
| 65 | stitch(t, w1, w2) |
| 66 | require.True(t, w2.AwaitReachable(context.Background(), w1IP)) |
| 67 | conn := make(chan struct{}, 1) |
| 68 | listenDone := make(chan struct{}) |
| 69 | go func() { |
| 70 | listener, err := w1.Listen("tcp", ":35565") |
| 71 | if !assert.NoError(t, err) { |
| 72 | return |
| 73 | } |
| 74 | close(listenDone) |
| 75 | defer listener.Close() |
| 76 | nc, err := listener.Accept() |
| 77 | if !assert.NoError(t, err) { |
| 78 | return |
| 79 | } |
| 80 | _ = nc.Close() |
| 81 | conn <- struct{}{} |
| 82 | }() |
| 83 | |
| 84 | _ = testutil.TryReceive(ctx, t, listenDone) |
nothing calls this directly
no test coverage detected