MCPcopy Index your code
hub / github.com/coder/coder / TestNewServer_ServeClient

Function TestNewServer_ServeClient

agent/agentssh/agentssh_test.go:39–77  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

37}
38
39func TestNewServer_ServeClient(t *testing.T) {
40 t.Parallel()
41
42 ctx := context.Background()
43 logger := testutil.Logger(t)
44 s, err := agentssh.NewServer(ctx, logger, prometheus.NewRegistry(), afero.NewMemMapFs(), agentexec.DefaultExecer, nil)
45 require.NoError(t, err)
46 defer s.Close()
47 err = s.UpdateHostSigner(42)
48 assert.NoError(t, err)
49
50 ln, err := net.Listen("tcp", "127.0.0.1:0")
51 require.NoError(t, err)
52
53 done := make(chan struct{})
54 go func() {
55 defer close(done)
56 err := s.Serve(ln)
57 assert.Error(t, err) // Server is closed.
58 }()
59
60 c := sshClient(t, ln.Addr().String())
61
62 var b bytes.Buffer
63 sess, err := c.NewSession()
64 require.NoError(t, err)
65 sess.Stdout = &b
66 err = sess.Start("echo hello")
67 require.NoError(t, err)
68
69 err = sess.Wait()
70 require.NoError(t, err)
71
72 require.Equal(t, "hello", strings.TrimSpace(b.String()))
73
74 err = s.Close()
75 require.NoError(t, err)
76 <-done
77}
78
79func TestNewServer_ExecuteShebang(t *testing.T) {
80 t.Parallel()

Callers

nothing calls this directly

Calls 14

CloseMethod · 0.95
UpdateHostSignerMethod · 0.95
ServeMethod · 0.95
LoggerFunction · 0.92
NewServerFunction · 0.92
sshClientFunction · 0.85
NewSessionMethod · 0.80
ListenMethod · 0.65
StartMethod · 0.65
WaitMethod · 0.65
ErrorMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected