version_test.go 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. package debtik
  2. import "testing"
  3. func TestVersionOrder(t *testing.T) {
  4. for _, tc := range []struct {
  5. a, b string
  6. want bool
  7. }{{"1.10.0", "1.9.0", true}, {"2.0.0", "1.99.99", true}, {"1.1.0", "1.1.0", false}, {"1.0.9", "1.1.0", false}} {
  8. got, err := Newer(tc.a, tc.b)
  9. if err != nil || got != tc.want {
  10. t.Fatalf("%s > %s: %v %v", tc.a, tc.b, got, err)
  11. }
  12. }
  13. for _, v := range []string{"1.2", "01.2.3", "v1.2.3", "1.2.3-rc1", "1.2.3+build", "-1.2.3", "99999999999999999999999.0.0"} {
  14. if _, err := ParseVersion(v); err == nil {
  15. t.Fatalf("accepted %s", v)
  16. }
  17. }
  18. if _, err := ParseVersion(Version()); err != nil {
  19. t.Fatal(err)
  20. }
  21. }
  22. func TestLatestReleaseTags(t *testing.T) {
  23. input := "a refs/tags/v1.9.0\nb refs/tags/v1.10.0\nc refs/tags/v1.10.0^{}\nd refs/tags/v9.0.0-rc1\ne refs/heads/v99.0.0\n"
  24. version, commit, err := LatestTag(input)
  25. if err != nil || version != "1.10.0" || commit != "c" {
  26. t.Fatal(version, commit, err)
  27. }
  28. if _, _, err := LatestTag("a refs/tags/v1.0.0-rc1"); err == nil {
  29. t.Fatal("accepted prerelease only")
  30. }
  31. }