package version import ( "fmt" "runtime" "testing" ) func TestGoVersion(t *testing.T) { got := GoVersion expected := runtime.Version() if got != expected { t.Errorf("Expected: %s ; Got: %s", got, expected) } } func TestOsArch(t *testing.T) { got := OsArch expected := runtime.GOOS + " (" + runtime.GOARCH + ")" if got != expected { t.Errorf("Expected: %s ; Got: %s", got, expected) } } 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]) } } }