aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Romashov <7@7vn.ru>2012-04-28 00:15:51 +0400
committerVsevolod Romashov <7@7vn.ru>2012-04-28 00:15:51 +0400
commit9d630d4368a2a8c0d7f1797486f1c3ad37e03185 (patch)
tree97b5fb63337e5b40ef889f25fe3b9cba5eb7db3b
parentcd50b60431881b808d596f394befd38a2d453603 (diff)
downloadrails-9d630d4368a2a8c0d7f1797486f1c3ad37e03185.tar.gz
rails-9d630d4368a2a8c0d7f1797486f1c3ad37e03185.tar.bz2
rails-9d630d4368a2a8c0d7f1797486f1c3ad37e03185.zip
fixes run order in Rails::Queueing::TestQueue
-rw-r--r--railties/lib/rails/queueing.rb2
-rw-r--r--railties/test/queueing/test_queue_test.rb13
2 files changed, 14 insertions, 1 deletions
diff --git a/railties/lib/rails/queueing.rb b/railties/lib/rails/queueing.rb
index b77940f821..4892f85ae1 100644
--- a/railties/lib/rails/queueing.rb
+++ b/railties/lib/rails/queueing.rb
@@ -18,7 +18,7 @@ module Rails
# run the jobs in a separate thread so assumptions of synchronous
# jobs are caught in test mode.
t = Thread.new do
- while job = @contents.pop
+ while job = @contents.shift
job.run
end
end
diff --git a/railties/test/queueing/test_queue_test.rb b/railties/test/queueing/test_queue_test.rb
index de30e8cffd..46c6a1dc82 100644
--- a/railties/test/queueing/test_queue_test.rb
+++ b/railties/test/queueing/test_queue_test.rb
@@ -25,6 +25,19 @@ class TestQueueTest < ActiveSupport::TestCase
assert_equal [job], @queue.contents
end
+ def test_order
+ time1 = time2 = nil
+
+ job1 = Job.new(1) { time1 = Time.now }
+ job2 = Job.new(2) { time2 = Time.now }
+
+ @queue.push job1
+ @queue.push job2
+ @queue.drain
+
+ assert time1 < time2, "Jobs run in the same order they were added"
+ end
+
def test_drain
t = nil
ran = false