MCPcopy Create free account
hub / github.com/coder/coder / TestNewServer_ExecuteShebang

Function TestNewServer_ExecuteShebang

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

Source from the content-addressed store, hash-verified

77}
78
79func TestNewServer_ExecuteShebang(t *testing.T) {
80 t.Parallel()
81 if runtime.GOOS == "windows" {
82 t.Skip("bash doesn't exist on Windows")
83 }
84
85 ctx := context.Background()
86 logger := testutil.Logger(t)
87 s, err := agentssh.NewServer(ctx, logger, prometheus.NewRegistry(), afero.NewMemMapFs(), agentexec.DefaultExecer, nil)
88 require.NoError(t, err)
89 t.Cleanup(func() {
90 _ = s.Close()
91 })
92
93 t.Run("Basic", func(t *testing.T) {
94 t.Parallel()
95 cmd, err := s.CreateCommand(ctx, `#!/bin/bash
96 echo test`, nil, nil)
97 require.NoError(t, err)
98 output, err := cmd.AsExec().CombinedOutput()
99 require.NoError(t, err)
100 require.Equal(t, "test\n", string(output))
101 })
102 t.Run("Args", func(t *testing.T) {
103 t.Parallel()
104 cmd, err := s.CreateCommand(ctx, `#!/usr/bin/env bash
105 echo test`, nil, nil)
106 require.NoError(t, err)
107 output, err := cmd.AsExec().CombinedOutput()
108 require.NoError(t, err)
109 require.Equal(t, "test\n", string(output))
110 })
111 t.Run("CustomEnvInfoer", func(t *testing.T) {
112 t.Parallel()
113 ei := &fakeEnvInfoer{
114 CurrentUserFn: func() (u *user.User, err error) {
115 return nil, assert.AnError
116 },
117 }
118 _, err := s.CreateCommand(ctx, `whatever`, nil, ei)
119 require.ErrorIs(t, err, assert.AnError)
120 })
121}
122
123type fakeEnvInfoer struct {
124 CurrentUserFn func() (*user.User, error)

Callers

nothing calls this directly

Calls 9

CloseMethod · 0.95
CreateCommandMethod · 0.95
LoggerFunction · 0.92
NewServerFunction · 0.92
SkipMethod · 0.80
AsExecMethod · 0.80
CleanupMethod · 0.65
RunMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected