Skip to content
Snippets Groups Projects
Commit 301d8854 authored by Martin Afanasjew's avatar Martin Afanasjew
Browse files

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: default avatarMartin Afanasjew <martin@afanasjew.de>
parent 74baec5e
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment