mirror of
https://github.com/github/codeql.git
synced 2025-12-22 03:36:30 +01:00
49 lines
1.7 KiB
Go
49 lines
1.7 KiB
Go
package autobuilder
|
|
|
|
import "testing"
|
|
|
|
func TestGetVersionToInstall(t *testing.T) {
|
|
tests := map[versionInfo]string{
|
|
// getVersionWhenGoModVersionNotFound()
|
|
{"", false, "", false}: maxGoVersion,
|
|
{"", false, "1.2.2", true}: maxGoVersion,
|
|
{"", false, "9999.0.1", true}: maxGoVersion,
|
|
{"", false, "1.11.13", true}: "",
|
|
{"", false, "1.20.3", true}: "",
|
|
|
|
// getVersionWhenGoModVersionTooHigh()
|
|
{"9999.0", true, "", false}: maxGoVersion,
|
|
{"9999.0", true, "9999.0.1", true}: "",
|
|
{"9999.0", true, "1.1", true}: maxGoVersion,
|
|
{"9999.0", true, minGoVersion, false}: maxGoVersion,
|
|
{"9999.0", true, maxGoVersion, true}: "",
|
|
|
|
// getVersionWhenGoModVersionTooLow()
|
|
{"0.0", true, "", false}: minGoVersion,
|
|
{"0.0", true, "9999.0", true}: minGoVersion,
|
|
{"0.0", true, "1.2.2", true}: minGoVersion,
|
|
{"0.0", true, "1.20.3", true}: "",
|
|
|
|
// getVersionWhenGoModVersionSupported()
|
|
{"1.20", true, "", false}: "1.20",
|
|
{"1.11", true, "", false}: "1.11",
|
|
{"1.20", true, "1.2.2", true}: "1.20",
|
|
{"1.11", true, "1.2.2", true}: "1.11",
|
|
{"1.20", true, "9999.0.1", true}: "1.20",
|
|
{"1.11", true, "9999.0.1", true}: "1.11",
|
|
// go.mod version > go installation version
|
|
{"1.20", true, "1.11.13", true}: "1.20",
|
|
{"1.20", true, "1.12", true}: "1.20",
|
|
// go.mod version <= go installation version (Note comparisons ignore the patch version)
|
|
{"1.11", true, "1.20", true}: "",
|
|
{"1.11", true, "1.20.3", true}: "",
|
|
{"1.20", true, "1.20.3", true}: "",
|
|
}
|
|
for input, expected := range tests {
|
|
_, actual := getVersionToInstall(input)
|
|
if actual != expected {
|
|
t.Errorf("Expected getVersionToInstall(\"%s\") to be \"%s\", but got \"%s\".", input, expected, actual)
|
|
}
|
|
}
|
|
}
|