aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMartin Afanasjew2016-01-04 15:17:15 +0100
committerMartin Afanasjew2016-01-04 16:26:25 +0100
commit301d88544f1b1336eb32817bfc0efc05fc5023ac (patch)
treeb8be8ac08bd7a42b94441558f65af0723743c649 /Library
parent74baec5e798a2bdec4f51b87bb495e5454460c70 (diff)
downloadbrew-301d88544f1b1336eb32817bfc0efc05fc5023ac.tar.bz2
test: exhaustively test comparison of versions
This tests all possible combinations of alpha, beta, RC, regular, and patch versions. Also improves code coverage and partitions the version comparison tests into more uniform chunks. Closes Homebrew/homebrew#47669. Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/test/test_versions.rb71
1 files changed, 53 insertions, 18 deletions
diff --git a/Library/Homebrew/test/test_versions.rb b/Library/Homebrew/test/test_versions.rb
index 87dd28339..d0b57a531 100644
--- a/Library/Homebrew/test/test_versions.rb
+++ b/Library/Homebrew/test/test_versions.rb
@@ -15,17 +15,16 @@ class VersionTests < Homebrew::TestCase
end
class VersionComparisonTests < Homebrew::TestCase
- def test_version_comparisons
+ def test_comparing_regular_versions
assert_operator version("0.1"), :==, version("0.1.0")
assert_operator version("0.1"), :<, version("0.2")
assert_operator version("1.2.3"), :>, version("1.2.2")
assert_operator version("1.2.4"), :<, version("1.2.4.1")
- end
- def test_patchlevel
- assert_operator version("1.2.3-p34"), :>, version("1.2.3-p33")
- assert_operator version("1.2.3-p33"), :<, version("1.2.3-p34")
- assert_operator version("1.2.3-p10"), :>, version("1.2.3-p9")
+ assert_operator version("1.2.3"), :>, version("1.2.3alpha4")
+ assert_operator version("1.2.3"), :>, version("1.2.3beta2")
+ assert_operator version("1.2.3"), :>, version("1.2.3rc3")
+ assert_operator version("1.2.3"), :<, version("1.2.3-p34")
end
def test_HEAD
@@ -33,14 +32,54 @@ class VersionComparisonTests < Homebrew::TestCase
assert_operator version("1.2.3"), :<, version("HEAD")
end
- def test_alpha_beta_rc
- assert_operator version("3.2.0b4"), :<, version("3.2.0")
- assert_operator version("1.0beta6"), :<, version("1.0b7")
- assert_operator version("1.0b6"), :<, version("1.0beta7")
- assert_operator version("1.1alpha4"), :<, version("1.1beta2")
- assert_operator version("1.1beta2"), :<, version("1.1rc1")
- assert_operator version("1.0.0beta7"), :<, version("1.0.0")
- assert_operator version("3.2.1"), :>, version("3.2beta4")
+ def test_comparing_alpha_versions
+ assert_operator version("1.2.3alpha4"), :==, version("1.2.3a4")
+ assert_operator version("1.2.3alpha4"), :==, version("1.2.3A4")
+ assert_operator version("1.2.3alpha4"), :>, version("1.2.3alpha3")
+ assert_operator version("1.2.3alpha4"), :<, version("1.2.3alpha5")
+ assert_operator version("1.2.3alpha4"), :<, version("1.2.3alpha10")
+
+ assert_operator version("1.2.3alpha4"), :<, version("1.2.3beta2")
+ assert_operator version("1.2.3alpha4"), :<, version("1.2.3rc3")
+ assert_operator version("1.2.3alpha4"), :<, version("1.2.3")
+ assert_operator version("1.2.3alpha4"), :<, version("1.2.3-p34")
+ end
+
+ def test_comparing_beta_versions
+ assert_operator version("1.2.3beta2"), :==, version("1.2.3b2")
+ assert_operator version("1.2.3beta2"), :==, version("1.2.3B2")
+ assert_operator version("1.2.3beta2"), :>, version("1.2.3beta1")
+ assert_operator version("1.2.3beta2"), :<, version("1.2.3beta3")
+ assert_operator version("1.2.3beta2"), :<, version("1.2.3beta10")
+
+ assert_operator version("1.2.3beta2"), :>, version("1.2.3alpha4")
+ assert_operator version("1.2.3beta2"), :<, version("1.2.3rc3")
+ assert_operator version("1.2.3beta2"), :<, version("1.2.3")
+ assert_operator version("1.2.3beta2"), :<, version("1.2.3-p34")
+ end
+
+ def test_comparing_rc_versions
+ assert_operator version("1.2.3rc3"), :==, version("1.2.3RC3")
+ assert_operator version("1.2.3rc3"), :>, version("1.2.3rc2")
+ assert_operator version("1.2.3rc3"), :<, version("1.2.3rc4")
+ assert_operator version("1.2.3rc3"), :<, version("1.2.3rc10")
+
+ assert_operator version("1.2.3rc3"), :>, version("1.2.3alpha4")
+ assert_operator version("1.2.3rc3"), :>, version("1.2.3beta2")
+ assert_operator version("1.2.3rc3"), :<, version("1.2.3")
+ assert_operator version("1.2.3rc3"), :<, version("1.2.3-p34")
+ end
+
+ def test_comparing_patchlevel_versions
+ assert_operator version("1.2.3-p34"), :==, version("1.2.3-P34")
+ assert_operator version("1.2.3-p34"), :>, version("1.2.3-p33")
+ assert_operator version("1.2.3-p34"), :<, version("1.2.3-p35")
+ assert_operator version("1.2.3-p34"), :>, version("1.2.3-p9")
+
+ assert_operator version("1.2.3-p34"), :>, version("1.2.3alpha4")
+ assert_operator version("1.2.3-p34"), :>, version("1.2.3beta2")
+ assert_operator version("1.2.3-p34"), :>, version("1.2.3rc3")
+ assert_operator version("1.2.3-p34"), :>, version("1.2.3")
end
def test_comparing_unevenly_padded_versions
@@ -57,10 +96,6 @@ class VersionComparisonTests < Homebrew::TestCase
assert_raises(ArgumentError) { v > Object.new }
end
- def test_compare_patchlevel_to_non_patchlevel
- assert_operator version("9.9.3-P1"), :>, version("9.9.3")
- end
-
def test_erlang_version
versions = %w[R16B R15B03-1 R15B03 R15B02 R15B01 R14B04 R14B03
R14B02 R14B01 R14B R13B04 R13B03 R13B02-1].reverse