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

Function TestStart

pty/start_other_test.go:25–79  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

23}
24
25func TestStart(t *testing.T) {
26 t.Parallel()
27 t.Run("Echo", func(t *testing.T) {
28 t.Parallel()
29 pty, ps := ptytest.Start(t, pty.Command("echo", "test"))
30
31 pty.ExpectMatch("test")
32 err := ps.Wait()
33 require.NoError(t, err)
34 err = pty.Close()
35 require.NoError(t, err)
36 })
37
38 t.Run("Kill", func(t *testing.T) {
39 t.Parallel()
40 pty, ps := ptytest.Start(t, pty.Command("sleep", "30"))
41 err := ps.Kill()
42 assert.NoError(t, err)
43 err = ps.Wait()
44 var exitErr *exec.ExitError
45 require.True(t, xerrors.As(err, &exitErr))
46 assert.NotEqual(t, 0, exitErr.ExitCode())
47 err = pty.Close()
48 require.NoError(t, err)
49 })
50
51 t.Run("Interrupt", func(t *testing.T) {
52 t.Parallel()
53 pty, ps := ptytest.Start(t, pty.Command("sleep", "30"))
54 err := ps.Signal(os.Interrupt)
55 assert.NoError(t, err)
56 err = ps.Wait()
57 var exitErr *exec.ExitError
58 require.True(t, xerrors.As(err, &exitErr))
59 assert.NotEqual(t, 0, exitErr.ExitCode())
60 err = pty.Close()
61 require.NoError(t, err)
62 })
63
64 t.Run("SSH_TTY", func(t *testing.T) {
65 t.Parallel()
66 opts := pty.WithPTYOption(pty.WithSSHRequest(ssh.Pty{
67 Window: ssh.Window{
68 Width: 80,
69 Height: 24,
70 },
71 }))
72 pty, ps := ptytest.Start(t, pty.Command(`/bin/sh`, `-c`, `env | grep SSH_TTY`), opts)
73 pty.ExpectMatch("SSH_TTY=/dev/")
74 err := ps.Wait()
75 require.NoError(t, err)
76 err = pty.Close()
77 require.NoError(t, err)
78 })
79}
80
81// these constants/vars are used by Test_Start_copy
82

Callers

nothing calls this directly

Calls 12

StartFunction · 0.92
CommandFunction · 0.92
WithPTYOptionFunction · 0.92
WithSSHRequestFunction · 0.92
AsMethod · 0.80
ExitCodeMethod · 0.80
RunMethod · 0.65
WaitMethod · 0.65
CloseMethod · 0.65
KillMethod · 0.65
SignalMethod · 0.65
ExpectMatchMethod · 0.45

Tested by

no test coverage detected