gotest/version/version_test.go

61 lines
1.7 KiB
Go

package version
import (
"fmt"
"testing"
)
func TestParseGitDescribe(t *testing.T) {
expected := []Info{
Info{0, 0, 0, []string{"dev"}, []string{"unknown"}},
Info{0, 0, 0, []string{}, []string{"git", "feedbeef"}},
Info{1, 2, 0, []string{"dev", "1"}, []string{"git", "83", "feedbeef"}},
Info{1, 2, 3, []string{"dev", "1"}, []string{"git", "83", "feedbeef", "dirty"}},
Info{1, 2, 3, []string{}, []string{"git", "dirty"}},
Info{1, 2, 3, []string{"beta"}, []string{"git", "dirty"}},
Info{1, 2, 3, []string{"rc"}, []string{}},
}
inputs := []string{
"",
"feedbeef",
"v1.2-dev.1-83-gfeedbeef",
"v1.2.3-dev.1-83-gfeedbeef-dirty",
"v1.2.3-dirty",
"v1.2.3-beta-dirty",
"v1.2.3-rc",
}
for i := 0; i < len(expected); i++ {
got := parseGitDescribe(inputs[i])
if !expected[i].Equal(got) {
t.Errorf("Got: %v, Expected: %v", got, expected[i])
}
}
}
func TestInfoStringer(t *testing.T) {
inputs := []Info{
Info{0, 0, 0, []string{"dev"}, []string{"unknown"}},
Info{0, 0, 0, []string{}, []string{"git", "feedbeef"}},
Info{1, 2, 0, []string{"dev", "1"}, []string{"git", "83", "feedbeef"}},
Info{1, 2, 3, []string{"dev", "1"}, []string{"git", "83", "feedbeef", "dirty"}},
Info{1, 2, 3, []string{}, []string{"git", "dirty"}},
Info{1, 2, 3, []string{"beta"}, []string{"git", "dirty"}},
Info{1, 2, 3, []string{"rc"}, []string{}},
}
expected := []string{
"v0.0.0-dev+unknown",
"v0.0.0+git.feedbeef",
"v1.2.0-dev.1+git.83.feedbeef",
"v1.2.3-dev.1+git.83.feedbeef.dirty",
"v1.2.3+git.dirty",
"v1.2.3-beta+git.dirty",
"v1.2.3-rc",
}
for i := 0; i < len(expected); i++ {
got := fmt.Sprint(inputs[i])
if got != expected[i] {
t.Errorf("Got: %v, Expected: %v", got, expected[i])
}
}
}