TestParseInitVersion: add some additional tests

Also slightly harden parseInitVersion

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2019-10-16 03:33:48 +02:00
parent f5bb374a0c
commit 2030daf2ee
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C
2 changed files with 26 additions and 10 deletions

View File

@ -205,14 +205,15 @@ func getBackingFs(v *types.Info) string {
//
// tini version 0.18.0 - git.fec3683
func parseInitVersion(v string) (version string, commit string, err error) {
parts := strings.Split(strings.TrimSpace(v), " - ")
parts := strings.Split(v, " - ")
if len(parts) >= 2 {
gitParts := strings.Split(parts[1], ".")
gitParts := strings.Split(strings.TrimSpace(parts[1]), ".")
if len(gitParts) == 2 && gitParts[0] == "git" {
commit = gitParts[1]
}
}
parts[0] = strings.TrimSpace(parts[0])
if strings.HasPrefix(parts[0], "tini version ") {
version = strings.TrimPrefix(parts[0], "tini version ")
}

View File

@ -26,12 +26,24 @@ func TestParseInitVersion(t *testing.T) {
}, {
output: "tini version 0.13.2",
version: "0.13.2",
}, {
output: "tini version 0.13.2 - ",
version: "0.13.2",
}, {
output: " - git.949e6fa",
commit: "949e6fa",
}, {
output: "tini version0.13.2",
invalid: true,
}, {
output: "version 0.13.0",
invalid: true,
}, {
output: "",
invalid: true,
}, {
output: " - ",
invalid: true,
}, {
output: "hello world",
invalid: true,
@ -39,14 +51,17 @@ func TestParseInitVersion(t *testing.T) {
}
for _, test := range tests {
version, commit, err := parseInitVersion(test.output)
if test.invalid {
assert.Check(t, is.ErrorContains(err, ""))
} else {
assert.Check(t, err)
}
assert.Equal(t, test.version, version)
assert.Equal(t, test.commit, commit)
test := test
t.Run(test.output, func(t *testing.T) {
version, commit, err := parseInitVersion(test.output)
if test.invalid {
assert.Check(t, is.ErrorContains(err, ""))
} else {
assert.Check(t, err)
}
assert.Equal(t, test.version, version)
assert.Equal(t, test.commit, commit)
})
}
}