aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2012-04-27 13:49:45 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2012-04-27 13:49:45 -0700
commit3ca7b137fbc7001a9b3384d2a44132913a93bb4b (patch)
tree9dc5814567b6053f19276541e668a22b5ab1240b
parent4dcaffb04c8e35493b257f532ed3a5e0378d606f (diff)
parent804db94471b7f7d222fd7371de7443df86bfb7c8 (diff)
downloadrails-3ca7b137fbc7001a9b3384d2a44132913a93bb4b.tar.gz
rails-3ca7b137fbc7001a9b3384d2a44132913a93bb4b.tar.bz2
rails-3ca7b137fbc7001a9b3384d2a44132913a93bb4b.zip
Merge pull request #6020 from 7even/test_queue_order
Rails::Queueing::TestQueue run order
-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..3dfe586110 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