Skip to content

Commit d953cce

Browse files
committed
all: add logging to TestGovulncheck
Fixes golang/go#64254 Change-Id: If3b5280fbb239981dec38035c5e2f0ad5f5c6fd7 Reviewed-on: https://go-review.googlesource.com/c/vuln/+/545335 Run-TryBot: Zvonimir Pavlinovic <zpavlinovic@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Bryan Mills <bcmills@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
1 parent 25985ce commit d953cce

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

all_test.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ package main
99

1010
import (
1111
"bufio"
12+
"bytes"
1213
"context"
1314
"io/fs"
1415
"os"
@@ -78,21 +79,28 @@ func TestGovulncheck(t *testing.T) {
7879
skipIfShort(t)
7980
testenv.NeedsGoBuild(t)
8081

82+
var o string
83+
out := bytes.NewBufferString(o)
8184
ctx := context.Background()
8285

8386
cmd := scan.Command(ctx, "./...")
87+
cmd.Stdout = out
88+
cmd.Stderr = out
8489
err := cmd.Start()
8590
if err == nil {
8691
err = cmd.Wait()
8792
}
93+
94+
t.Logf("govulncheck finished with std out/err:\n%s", out.String())
8895
switch err := err.(type) {
8996
case nil:
97+
t.Log("govulncheck: no vulnerabilities detected")
9098
case interface{ ExitCode() int }:
9199
if err.ExitCode() != 0 {
92-
t.Error("govulncheck found problems")
100+
t.Errorf("govulncheck ./... failed with exit code: %d", err.ExitCode())
93101
}
94102
default:
95-
t.Error(err)
103+
t.Errorf("unrecognized govulncheck command error: %v", err)
96104
}
97105
}
98106

internal/vulncheck/packages.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ package vulncheck
77
import (
88
"bytes"
99
"encoding/json"
10+
"errors"
1011
"fmt"
1112
"os/exec"
1213
"strings"
@@ -41,15 +42,20 @@ func (g *PackageGraph) LoadModules(cfg *packages.Config) (mods []*packages.Modul
4142
cmd.Dir = cfg.Dir
4243
out, err := cmd.Output()
4344
if err != nil {
44-
return nil, err
45+
if ee := (*exec.ExitError)(nil); errors.As(err, &ee) && len(ee.Stderr) > 0 {
46+
return nil, fmt.Errorf("%v: %v\n%s", cmd, err, ee.Stderr)
47+
}
48+
return nil, fmt.Errorf("%v: %v", cmd, err)
4549
}
4650

4751
dec := json.NewDecoder(bytes.NewReader(out))
4852
for dec.More() {
4953
var m *packages.Module
5054
err = dec.Decode(&m)
5155
if err != nil {
52-
return nil, err
56+
if err != nil {
57+
return nil, fmt.Errorf("decoding output of %v: %v", cmd, err)
58+
}
5359
}
5460
mods = append(mods, m)
5561
}

0 commit comments

Comments
 (0)