Make auto upgrade careful about breaking changes (fixes #1047)

This commit is contained in:
Jakob Borg
2014-12-29 12:21:08 +01:00
parent 8c7f1421c6
commit 4b668aaca8
3 changed files with 70 additions and 43 deletions

View File

@@ -19,33 +19,37 @@ import "testing"
var testcases = []struct {
a, b string
r int
r Relation
}{
{"0.1.2", "0.1.2", 0},
{"0.1.3", "0.1.2", 1},
{"0.1.1", "0.1.2", -1},
{"0.3.0", "0.1.2", 1},
{"0.0.9", "0.1.2", -1},
{"1.1.2", "0.1.2", 1},
{"0.1.2", "1.1.2", -1},
{"0.1.10", "0.1.9", 1},
{"0.10.0", "0.2.0", 1},
{"30.10.0", "4.9.0", 1},
{"0.9.0-beta7", "0.9.0-beta6", 1},
{"1.0.0-alpha", "1.0.0-alpha.1", -1},
{"1.0.0-alpha.1", "1.0.0-alpha.beta", -1},
{"1.0.0-alpha.beta", "1.0.0-beta", -1},
{"1.0.0-beta", "1.0.0-beta.2", -1},
{"1.0.0-beta.2", "1.0.0-beta.11", -1},
{"1.0.0-beta.11", "1.0.0-rc.1", -1},
{"1.0.0-rc.1", "1.0.0", -1},
{"1.0.0+45", "1.0.0+23-dev-foo", 0},
{"1.0.0-beta.23+45", "1.0.0-beta.23+23-dev-foo", 0},
{"1.0.0-beta.3+99", "1.0.0-beta.24+0", -1},
{"0.1.2", "0.1.2", Equal},
{"0.1.3", "0.1.2", Newer},
{"0.1.1", "0.1.2", Older},
{"0.3.0", "0.1.2", MajorNewer},
{"0.0.9", "0.1.2", MajorOlder},
{"1.3.0", "1.1.2", Newer},
{"1.0.9", "1.1.2", Older},
{"2.3.0", "1.1.2", MajorNewer},
{"1.0.9", "2.1.2", MajorOlder},
{"1.1.2", "0.1.2", MajorNewer},
{"0.1.2", "1.1.2", MajorOlder},
{"0.1.10", "0.1.9", Newer},
{"0.10.0", "0.2.0", MajorNewer},
{"30.10.0", "4.9.0", MajorNewer},
{"0.9.0-beta7", "0.9.0-beta6", Newer},
{"1.0.0-alpha", "1.0.0-alpha.1", Older},
{"1.0.0-alpha.1", "1.0.0-alpha.beta", Older},
{"1.0.0-alpha.beta", "1.0.0-beta", Older},
{"1.0.0-beta", "1.0.0-beta.2", Older},
{"1.0.0-beta.2", "1.0.0-beta.11", Older},
{"1.0.0-beta.11", "1.0.0-rc.1", Older},
{"1.0.0-rc.1", "1.0.0", Older},
{"1.0.0+45", "1.0.0+23-dev-foo", Equal},
{"1.0.0-beta.23+45", "1.0.0-beta.23+23-dev-foo", Equal},
{"1.0.0-beta.3+99", "1.0.0-beta.24+0", Older},
{"v1.1.2", "1.1.2", 0},
{"v1.1.2", "V1.1.2", 0},
{"1.1.2", "V1.1.2", 0},
{"v1.1.2", "1.1.2", Equal},
{"v1.1.2", "V1.1.2", Equal},
{"1.1.2", "V1.1.2", Equal},
}
func TestCompareVersions(t *testing.T) {