Skip to content

Commit 4de64ec

Browse files
committed
bugfix: correctly populate stderr
1 parent 28b9649 commit 4de64ec

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

tfexec/cmd_default.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package tfexec
55

66
import (
77
"context"
8+
"fmt"
89
"os/exec"
910
"strings"
1011
"sync"
@@ -76,15 +77,15 @@ func (tf *Terraform) runTerraformCmd(ctx context.Context, cmd *exec.Cmd) error {
7677
}
7778
}
7879
if err != nil {
79-
return err
80+
return fmt.Errorf("%w\n%s", err, errBuf.String())
8081
}
8182

8283
// Return error if there was an issue reading the std out/err
8384
if errStdout != nil && ctx.Err() != nil {
84-
return errStdout
85+
return fmt.Errorf("%w\n%s", errStdout, errBuf.String())
8586
}
8687
if errStderr != nil && ctx.Err() != nil {
87-
return errStderr
88+
return fmt.Errorf("%w\n%s", errStderr, errBuf.String())
8889
}
8990

9091
return nil

tfexec/cmd_linux.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,15 @@ func (tf *Terraform) runTerraformCmd(ctx context.Context, cmd *exec.Cmd) error {
8181
}
8282
}
8383
if err != nil {
84-
return err
84+
return fmt.Errorf("%w\n%s", err, errBuf.String())
8585
}
8686

8787
// Return error if there was an issue reading the std out/err
8888
if errStdout != nil && ctx.Err() != nil {
89-
return errStdout
89+
return fmt.Errorf("%w\n%s", errStdout, errBuf.String())
9090
}
9191
if errStderr != nil && ctx.Err() != nil {
92-
return errStderr
92+
return fmt.Errorf("%w\n%s", errStderr, errBuf.String())
9393
}
9494

9595
return nil

tfexec/internal/e2etest/errors_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"errors"
1010
"os"
1111
"os/exec"
12+
"strings"
1213
"testing"
1314
"time"
1415

@@ -108,6 +109,10 @@ func TestLockedState(t *testing.T) {
108109
if err == nil {
109110
t.Fatal("expected error, but didn't find one")
110111
}
112+
113+
if !strings.Contains(err.Error(), "state lock") {
114+
t.Fatal("expected err.Error() to contain 'state lock', but it did not")
115+
}
111116
})
112117
}
113118

0 commit comments

Comments
 (0)