aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/test_compiler_queue.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/test/test_compiler_queue.rb')
-rw-r--r--Library/Homebrew/test/test_compiler_queue.rb38
1 files changed, 38 insertions, 0 deletions
diff --git a/Library/Homebrew/test/test_compiler_queue.rb b/Library/Homebrew/test/test_compiler_queue.rb
new file mode 100644
index 000000000..6dee1ab37
--- /dev/null
+++ b/Library/Homebrew/test/test_compiler_queue.rb
@@ -0,0 +1,38 @@
+require 'testing_env'
+require 'compilers'
+
+class CompilerQueueTests < Test::Unit::TestCase
+ FakeCompiler = Struct.new(:name, :priority)
+
+ def setup
+ @q = CompilerQueue.new
+ end
+
+ def test_shovel_returns_self
+ assert_same @q, (@q << Object.new)
+ end
+
+ def test_empty
+ assert @q.empty?
+ end
+
+ def test_queues_items
+ a = FakeCompiler.new(:foo, 0)
+ b = FakeCompiler.new(:bar, 0)
+ @q << a << b
+ assert_equal a, @q.pop
+ assert_equal b, @q.pop
+ assert_nil @q.pop
+ end
+
+ def test_pops_items_by_priority
+ a = FakeCompiler.new(:foo, 0)
+ b = FakeCompiler.new(:bar, 0.5)
+ c = FakeCompiler.new(:baz, 1)
+ @q << a << b << c
+ assert_equal c, @q.pop
+ assert_equal b, @q.pop
+ assert_equal a, @q.pop
+ assert_nil @q.pop
+ end
+end