(t *testing.T, args []string, env map[string]string)
| 176 | } |
| 177 | |
| 178 | func executeExitTestSubprocess(t *testing.T, args []string, env map[string]string) (int, string, string) { |
| 179 | t.Helper() |
| 180 | |
| 181 | cmdArgs := append([]string{"-test.run=TestExecuteExitHelper", "--"}, args...) |
| 182 | cmd := exec.Command(os.Args[0], cmdArgs...) |
| 183 | cmd.Env = append(os.Environ(), "DBXCLI_TEST_EXECUTE_HELPER=1") |
| 184 | for key, value := range env { |
| 185 | cmd.Env = append(cmd.Env, key+"="+value) |
| 186 | } |
| 187 | |
| 188 | var stdout bytes.Buffer |
| 189 | var stderr bytes.Buffer |
| 190 | cmd.Stdout = &stdout |
| 191 | cmd.Stderr = &stderr |
| 192 | |
| 193 | err := cmd.Run() |
| 194 | if err == nil { |
| 195 | return exitCodeSuccess, stdout.String(), stderr.String() |
| 196 | } |
| 197 | |
| 198 | var exitErr *exec.ExitError |
| 199 | if errors.As(err, &exitErr) { |
| 200 | return exitErr.ExitCode(), stdout.String(), stderr.String() |
| 201 | } |
| 202 | t.Fatalf("run helper subprocess: %v\nstdout: %s\nstderr: %s", err, stdout.String(), stderr.String()) |
| 203 | return exitCodeGenericError, stdout.String(), stderr.String() |
| 204 | } |
| 205 | |
| 206 | func TestExecuteExitHelper(t *testing.T) { |
| 207 | if os.Getenv("DBXCLI_TEST_EXECUTE_HELPER") != "1" { |
no outgoing calls
no test coverage detected