1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Remove Thread hack for Ruby 1.9

The hack so skip a Thread test for Ruby 1.9 can be removed now that
Rails requires Ruby >= 2.0.

Conflicts:
	activerecord/test/cases/transactions_test.rb
This commit is contained in:
claudiob 2014-11-28 18:55:11 -08:00 committed by Rafael Mendonça França
parent 185d7cdb42
commit a856b3dc2c

View file

@ -503,35 +503,30 @@ class TransactionTest < ActiveRecord::TestCase
assert topic.frozen?, 'not frozen'
end
# The behavior of killed threads having a status of "aborting" was changed
# in Ruby 2.0, so Thread#kill on 1.9 will prematurely commit the transaction
# and there's nothing we can do about it.
if !RUBY_VERSION.start_with?('1.9') && !in_memory_db?
def test_rollback_when_thread_killed
queue = Queue.new
thread = Thread.new do
Topic.transaction do
@first.approved = true
@second.approved = false
@first.save
def test_rollback_when_thread_killed
queue = Queue.new
thread = Thread.new do
Topic.transaction do
@first.approved = true
@second.approved = false
@first.save
queue.push nil
sleep
queue.push nil
sleep
@second.save
end
@second.save
end
queue.pop
thread.kill
thread.join
assert @first.approved?, "First should still be changed in the objects"
assert !@second.approved?, "Second should still be changed in the objects"
assert !Topic.find(1).approved?, "First shouldn't have been approved"
assert Topic.find(2).approved?, "Second should still be approved"
end
queue.pop
thread.kill
thread.join
assert @first.approved?, "First should still be changed in the objects"
assert !@second.approved?, "Second should still be changed in the objects"
assert !Topic.find(1).approved?, "First shouldn't have been approved"
assert Topic.find(2).approved?, "Second should still be approved"
end
def test_restore_active_record_state_for_all_records_in_a_transaction