Skip to content

Commit 226709c

Browse files
Copilotjketema
andauthored
Harden Go resolver version tests
Co-authored-by: jketema <93738568+jketema@users.noreply.github.com>
1 parent 0ba61a1 commit 226709c

2 files changed

Lines changed: 46 additions & 9 deletions

File tree

go/extractor/autobuilder/build-environment_test.go

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,29 @@
11
package autobuilder
22

33
import (
4+
"fmt"
45
"testing"
56

67
"github.com/github/codeql-go/extractor/util"
78
)
89

10+
func addMinorVersions(t *testing.T, version util.SemVer, count int) string {
11+
t.Helper()
12+
13+
var major, minor int
14+
if _, err := fmt.Sscanf(version.StandardSemVer(), "%d.%d", &major, &minor); err != nil {
15+
t.Fatalf("Unable to parse Go version %q: %s", version, err)
16+
}
17+
return fmt.Sprintf("%d.%d", major, minor+count)
18+
}
19+
920
func TestGetVersionToInstall(t *testing.T) {
1021
type inputVersions struct {
1122
modVersion string
1223
envVersion string
1324
}
25+
versionAboveMax := addMinorVersions(t, maxGoVersion, 1)
26+
versionTwoAboveMax := addMinorVersions(t, maxGoVersion, 2)
1427
tests := map[inputVersions]string{
1528
// getVersionWhenGoModVersionNotFound()
1629
{"", ""}: maxGoVersion.String(),
@@ -20,15 +33,13 @@ func TestGetVersionToInstall(t *testing.T) {
2033
{"", "1.20.3"}: "",
2134

2235
// getVersionWhenGoModVersionTooHigh()
23-
{"1.28", ""}: "1.28",
24-
{"1.28", "1.1"}: "1.28",
25-
{"1.28", "1.20"}: "1.28",
26-
{"1.28", maxGoVersion.String()}: "1.28",
27-
{"1.29", "1.28"}: "1.29",
28-
{"1.28", "1.28"}: "",
29-
{"1.28", "1.29"}: "",
30-
{"9999.0", "9999.0.1"}: "",
31-
{"9999.0", minGoVersion.String()}: "9999.0",
36+
{versionAboveMax, ""}: versionAboveMax,
37+
{versionAboveMax, "1.1"}: versionAboveMax,
38+
{versionAboveMax, minGoVersion.String()}: versionAboveMax,
39+
{versionAboveMax, maxGoVersion.String()}: versionAboveMax,
40+
{versionTwoAboveMax, versionAboveMax}: versionTwoAboveMax,
41+
{versionAboveMax, versionAboveMax}: "",
42+
{versionAboveMax, versionTwoAboveMax}: "",
3243

3344
// getVersionWhenGoModVersionTooLow()
3445
{"0.0", ""}: minGoVersion.String(),

go/ql/test/library-tests/semmle/go/dependencies/sweb/go.mod

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,29 @@ replace google.golang.org/appengine => github.com/golang/appengine v1.6.1
3535
replace golang.org/x/mobile => github.com/golang/mobile v0.0.0-20190607214518-6fa95d984e88
3636

3737
replace golang.org/x/image => github.com/golang/image v0.0.0-20190622003408-7e034cad6442
38+
39+
require (
40+
github.com/Joker/jade v1.0.0 // indirect
41+
github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398 // indirect
42+
github.com/aymerick/raymond v2.0.2+incompatible // indirect
43+
github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385 // indirect
44+
github.com/fatih/structs v1.1.0 // indirect
45+
github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4 // indirect
46+
github.com/iris-contrib/blackfriday v2.0.0+incompatible // indirect
47+
github.com/iris-contrib/formBinder v0.0.0-20190104093907-fbd5963f41e1 // indirect
48+
github.com/iris-contrib/go.uuid v2.0.0+incompatible // indirect
49+
github.com/json-iterator/go v1.1.6 // indirect
50+
github.com/kataras/golog v0.0.0-20190624001437-99c81de45f40 // indirect
51+
github.com/kataras/iris v11.1.1+incompatible
52+
github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d // indirect
53+
github.com/klauspost/compress v1.7.2 // indirect
54+
github.com/klauspost/cpuid v1.2.1 // indirect
55+
github.com/microcosm-cc/bluemonday v1.0.2 // indirect
56+
github.com/mitchellh/go-homedir v1.1.0
57+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
58+
github.com/modern-go/reflect2 v1.0.1 // indirect
59+
github.com/ryanuber/columnize v2.1.0+incompatible // indirect
60+
github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect
61+
github.com/spf13/cobra v0.0.5
62+
github.com/spf13/viper v1.4.0
63+
)

0 commit comments

Comments
 (0)