aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
authorJack Nagel2013-05-06 16:08:50 -0500
committerJack Nagel2013-05-06 16:08:50 -0500
commit62389cc27456151b8f3be1d064e14412cb907066 (patch)
treef8e9a87a8b51b4a76a08495dd953778ccff353bc /Library/Homebrew/test
parent0d001785fdb2a6a422debd2f1756e9813ef8c04d (diff)
downloadhomebrew-62389cc27456151b8f3be1d064e14412cb907066.tar.bz2
Reduce allocations in dependency construction
By always passing around a single, unnested array rather than splatting and then defensively flattening and compacting things, we can avoid allocating a bunch of unnecessary arrays. This gives a performance boost of roughly 4% when enumerating 2500 formulae, and has the side effect of cleaning up the dependency API.
Diffstat (limited to 'Library/Homebrew/test')
-rw-r--r--Library/Homebrew/test/test_comparableset.rb12
-rw-r--r--Library/Homebrew/test/test_dependency.rb4
-rw-r--r--Library/Homebrew/test/test_dependency_collector.rb2
-rw-r--r--Library/Homebrew/test/test_requirement.rb8
4 files changed, 11 insertions, 15 deletions
diff --git a/Library/Homebrew/test/test_comparableset.rb b/Library/Homebrew/test/test_comparableset.rb
index ee3f46f93..3e823597c 100644
--- a/Library/Homebrew/test/test_comparableset.rb
+++ b/Library/Homebrew/test/test_comparableset.rb
@@ -17,25 +17,25 @@ class ComparableSetTests < Test::Unit::TestCase
def test_comparison_prefers_larger
@set << X11Dependency.new
- @set << X11Dependency.new('x11', '2.6')
+ @set << X11Dependency.new('x11', %w{2.6})
assert_equal 1, @set.count
- assert_equal [X11Dependency.new('x11', '2.6')], @set.to_a
+ assert_equal [X11Dependency.new('x11', %w{2.6})], @set.to_a
end
def test_comparison_does_not_merge_smaller
- @set << X11Dependency.new('x11', '2.6')
+ @set << X11Dependency.new('x11', %w{2.6})
@set << X11Dependency.new
assert_equal 1, @set.count
- assert_equal [X11Dependency.new('x11', '2.6')], @set.to_a
+ assert_equal [X11Dependency.new('x11', %w{2.6})], @set.to_a
end
def test_merging_sets
@set << X11Dependency.new
@set << Requirement.new
- reqs = Set.new [X11Dependency.new('x11', '2.6'), Requirement.new]
+ reqs = Set.new [X11Dependency.new('x11', %w{2.6}), Requirement.new]
assert_same @set, @set.merge(reqs)
assert_equal 2, @set.count
- assert_equal X11Dependency.new('x11', '2.6'), @set.find {|r| r.is_a? X11Dependency}
+ assert_equal X11Dependency.new('x11', %w{2.6}), @set.find {|r| r.is_a? X11Dependency}
end
end
diff --git a/Library/Homebrew/test/test_dependency.rb b/Library/Homebrew/test/test_dependency.rb
index 2eac358e6..0f030afd6 100644
--- a/Library/Homebrew/test/test_dependency.rb
+++ b/Library/Homebrew/test/test_dependency.rb
@@ -20,7 +20,7 @@ end
class DependencyTests < Test::Unit::TestCase
def test_accepts_single_tag
- dep = Dependency.new("foo", "bar")
+ dep = Dependency.new("foo", %w{bar})
assert_equal %w{bar}, dep.tags
end
@@ -30,7 +30,7 @@ class DependencyTests < Test::Unit::TestCase
end
def test_preserves_symbol_tags
- dep = Dependency.new("foo", :build)
+ dep = Dependency.new("foo", [:build])
assert_equal [:build], dep.tags
end
diff --git a/Library/Homebrew/test/test_dependency_collector.rb b/Library/Homebrew/test/test_dependency_collector.rb
index bf2612cfe..e780ed5a3 100644
--- a/Library/Homebrew/test/test_dependency_collector.rb
+++ b/Library/Homebrew/test/test_dependency_collector.rb
@@ -30,7 +30,7 @@ class DependencyCollectorTests < Test::Unit::TestCase
end
def test_dependency_tags
- assert Dependency.new('foo', :build).build?
+ assert Dependency.new('foo', [:build]).build?
assert Dependency.new('foo', [:build, :optional]).optional?
assert Dependency.new('foo', [:universal]).options.include? '--universal'
assert_empty Dependency.new('foo').tags
diff --git a/Library/Homebrew/test/test_requirement.rb b/Library/Homebrew/test/test_requirement.rb
index 682ee432e..ccf137e4d 100644
--- a/Library/Homebrew/test/test_requirement.rb
+++ b/Library/Homebrew/test/test_requirement.rb
@@ -3,27 +3,23 @@ require 'requirement'
class RequirementTests < Test::Unit::TestCase
def test_accepts_single_tag
- dep = Requirement.new("bar")
+ dep = Requirement.new(%w{bar})
assert_equal %w{bar}, dep.tags
end
def test_accepts_multiple_tags
dep = Requirement.new(%w{bar baz})
assert_equal %w{bar baz}.sort, dep.tags.sort
- dep = Requirement.new(*%w{bar baz})
- assert_equal %w{bar baz}.sort, dep.tags.sort
end
def test_preserves_symbol_tags
- dep = Requirement.new(:build)
+ dep = Requirement.new([:build])
assert_equal [:build], dep.tags
end
def test_accepts_symbol_and_string_tags
dep = Requirement.new([:build, "bar"])
assert_equal [:build, "bar"], dep.tags
- dep = Requirement.new(:build, "bar")
- assert_equal [:build, "bar"], dep.tags
end
def test_dsl_fatal