internal/govulncheck: pass mode flag

The govulncheck binary now requires a -mode flag for binary.
Pass it for both source and binary.

Also, rename the test cases to better reflect what they do.

Change-Id: I3602072b6174cc9a292dc503f3716b70c34ed7a3
Reviewed-on: https://go-review.googlesource.com/c/pkgsite-metrics/+/499598
Run-TryBot: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Zvonimir Pavlinovic <zpavlinovic@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
diff --git a/internal/govulncheck/govulncheck.go b/internal/govulncheck/govulncheck.go
index 035ea42..525e8e9 100644
--- a/internal/govulncheck/govulncheck.go
+++ b/internal/govulncheck/govulncheck.go
@@ -267,15 +267,19 @@
 	pattern := "./..."
 	dir := ""
 
+	var modeFlag string
 	if mode == ModeBinary {
 		pattern = modulePath
+		modeFlag = "binary"
 	} else {
 		dir = modulePath
+		modeFlag = "source"
 	}
 
 	stdOut := bytes.Buffer{}
 	stdErr := bytes.Buffer{}
-	govulncheckCmd := exec.Command(govulncheckPath, "-json", "-db=file://"+vulndbDir, "-C="+dir, pattern)
+	govulncheckCmd := exec.Command(govulncheckPath, "-mode", modeFlag,
+		"-json", "-db=file://"+vulndbDir, "-C="+dir, pattern)
 
 	govulncheckCmd.Stdout = &stdOut
 	govulncheckCmd.Stderr = &stdErr
diff --git a/internal/worker/govulncheck_scan_test.go b/internal/worker/govulncheck_scan_test.go
index cb30677..aca36bb 100644
--- a/internal/worker/govulncheck_scan_test.go
+++ b/internal/worker/govulncheck_scan_test.go
@@ -100,9 +100,9 @@
 		input string
 		mode  string
 	}{
-		{"govulncheck", "../testdata/module", ModeGovulncheck},
+		{"source", "../testdata/module", ModeGovulncheck},
 		// test_vuln binary on gcs is built from ../testdata/module.
-		{"govulncheck", "test_vuln", ModeBinary},
+		{"binary", "test_vuln", ModeBinary},
 	} {
 		tc := tc
 		t.Run(tc.name, func(t *testing.T) {