aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
authorMisty De Meo2016-11-14 13:44:03 -0800
committerGitHub2016-11-14 13:44:03 -0800
commit30fdbe089b6a7d91dd12132b46436f90dad60c88 (patch)
treee6795dfbc3549722dfb536d5c1503776ea5e0d0d /Library/Homebrew/test
parent3a01fbadcd14fb180635d6464f2c600a738d50b5 (diff)
parentc7be025229dbbe86d85982a135c75b04c9ba00f2 (diff)
downloadbrew-30fdbe089b6a7d91dd12132b46436f90dad60c88.tar.bz2
Merge pull request #1435 from mistydemeo/dev_tools_version
Add "null version" class, and return compiler versions/build versions as Version objects
Diffstat (limited to 'Library/Homebrew/test')
-rw-r--r--Library/Homebrew/test/test_compiler_selector.rb16
-rw-r--r--Library/Homebrew/test/test_versions.rb32
-rw-r--r--Library/Homebrew/test/testing_env.rb2
3 files changed, 42 insertions, 8 deletions
diff --git a/Library/Homebrew/test/test_compiler_selector.rb b/Library/Homebrew/test/test_compiler_selector.rb
index 0363cacd2..b1591bdbe 100644
--- a/Library/Homebrew/test/test_compiler_selector.rb
+++ b/Library/Homebrew/test/test_compiler_selector.rb
@@ -15,15 +15,17 @@ class CompilerSelectorTests < Homebrew::TestCase
:clang_build_version
def initialize
- @gcc_4_0_build_version = nil
- @gcc_build_version = 5666
- @clang_build_version = 425
+ @gcc_4_0_build_version = Version::NULL
+ @gcc_build_version = Version.create("5666")
+ @llvm_build_version = Version::NULL
+ @clang_build_version = Version.create("425")
end
def non_apple_gcc_version(name)
case name
- when "gcc-4.8" then "4.8.1"
- when "gcc-4.7" then "4.7.1"
+ when "gcc-4.8" then Version.create("4.8.1")
+ when "gcc-4.7" then Version.create("4.7.1")
+ else Version::NULL
end
end
end
@@ -101,13 +103,13 @@ class CompilerSelectorTests < Homebrew::TestCase
end
def test_missing_gcc
- @versions.gcc_build_version = nil
+ @versions.gcc_build_version = Version::NULL
@f << :clang << :llvm << { gcc: "4.8" } << { gcc: "4.7" }
assert_raises(CompilerSelectionError) { actual_cc }
end
def test_missing_llvm_and_gcc
- @versions.gcc_build_version = nil
+ @versions.gcc_build_version = Version::NULL
@f << :clang << { gcc: "4.8" } << { gcc: "4.7" }
assert_raises(CompilerSelectionError) { actual_cc }
end
diff --git a/Library/Homebrew/test/test_versions.rb b/Library/Homebrew/test/test_versions.rb
index 21bf324a3..a6e922178 100644
--- a/Library/Homebrew/test/test_versions.rb
+++ b/Library/Homebrew/test/test_versions.rb
@@ -30,6 +30,29 @@ class VersionTokenTests < Homebrew::TestCase
end
end
+class NullVersionTests < Homebrew::TestCase
+ def test_null_version_is_always_smaller
+ assert_operator Version::NULL, :<, version("1")
+ end
+
+ def test_null_version_is_never_greater
+ refute_operator Version::NULL, :>, version("0")
+ end
+
+ def test_null_version_is_not_equal_to_itself
+ refute_eql Version::NULL, Version::NULL
+ end
+
+ def test_null_version_creates_an_empty_string
+ assert_eql "", Version::NULL.to_s
+ end
+
+ def test_null_version_produces_nan_as_a_float
+ # Float::NAN is not equal to itself so compare object IDs
+ assert_eql Float::NAN.object_id, Version::NULL.to_f.object_id
+ end
+end
+
class VersionNullTokenTests < Homebrew::TestCase
def test_inspect
assert_equal "#<Version::NullToken>", Version::NullToken.new.inspect
@@ -122,6 +145,15 @@ class VersionComparisonTests < Homebrew::TestCase
assert_operator version("2-p194"), :<, version("2.1-p195")
end
+ def test_comparing_against_nil
+ assert_operator version("2.1.0-p194"), :>, nil
+ end
+
+ def test_comparing_against_strings
+ assert_operator version("2.1.0-p194"), :==, "2.1.0-p194"
+ assert_operator version("1"), :==, 1
+ end
+
def test_comparison_returns_nil_for_non_version
v = version("1.0")
assert_nil v <=> Object.new
diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb
index b6612535a..3fbf3e4b5 100644
--- a/Library/Homebrew/test/testing_env.rb
+++ b/Library/Homebrew/test/testing_env.rb
@@ -36,7 +36,7 @@ module Homebrew
end
def assert_version_nil(url)
- assert_nil Version.parse(url)
+ assert Version.parse(url).null?
end
end