(t *testing.T, opts testServerOpts)
| 782 | } |
| 783 | |
| 784 | func testServerWithOpts(t *testing.T, opts testServerOpts) string { |
| 785 | t.Helper() |
| 786 | srv := &server{ |
| 787 | lb: &testBackend{ |
| 788 | localUser: opts.username, |
| 789 | forceV1Behavior: opts.forceV1Behavior, |
| 790 | allowSendEnv: opts.allowSendEnv, |
| 791 | allowLocalPortForwarding: opts.allowLocalPortForwarding, |
| 792 | allowRemotePortForwarding: opts.allowRemotePortForwarding, |
| 793 | }, |
| 794 | logf: log.Printf, |
| 795 | tailscaledPath: os.Getenv("TAILSCALED_PATH"), |
| 796 | timeNow: time.Now, |
| 797 | } |
| 798 | |
| 799 | l, err := net.Listen("tcp", "127.0.0.1:0") |
| 800 | if err != nil { |
| 801 | t.Fatal(err) |
| 802 | } |
| 803 | t.Cleanup(func() { l.Close() }) |
| 804 | |
| 805 | go func() { |
| 806 | for { |
| 807 | conn, err := l.Accept() |
| 808 | if err == nil { |
| 809 | go srv.HandleSSHConn(&addressFakingConn{conn}) |
| 810 | } |
| 811 | } |
| 812 | }() |
| 813 | |
| 814 | return l.Addr().String() |
| 815 | } |
| 816 | |
| 817 | func testSession(t *testing.T, forceV1Behavior bool, allowSendEnv bool, sendEnv map[string]string) *session { |
| 818 | cl := testClient(t, forceV1Behavior, allowSendEnv) |
no test coverage detected
searching dependent graphs…