aboutsummaryrefslogtreecommitdiffstats
path: root/activejob/test/integration
diff options
context:
space:
mode:
authorWill Jessop <will@willj.net>2015-11-21 05:01:56 +0000
committerWill Jessop <will@willj.net>2015-11-23 14:24:49 +0000
commit171e788ccd508caad5389edfe04e304a0da344a1 (patch)
treefeeb8e7d8bca174f9a8a35a7e8d2877a470ab531 /activejob/test/integration
parent4547e894e9f924221f1ec4ff8e71fa750bab3595 (diff)
downloadrails-171e788ccd508caad5389edfe04e304a0da344a1.tar.gz
rails-171e788ccd508caad5389edfe04e304a0da344a1.tar.bz2
rails-171e788ccd508caad5389edfe04e304a0da344a1.zip
Fix race condition testing for job execution order
On most filesystems file ctime is limited to 1 second granularity, which means that on faster computers multiple simple jobs (for instance dummy TestJob) can finish within the same second. The execution order test in ActiveJob integration tests relies on multiple TestJobs writing files then comparing the ctime. As a result integration tests would sometimes fail as the ctime of the files written by these TestJobs could have coincidental ctimes making the comparison for job order fail. This commit adds a far more precise execution time (to the extent that the Ruby Time class allows) to the file created by TestJob, and updates the execution order assertion to use it, removing the race condition.
Diffstat (limited to 'activejob/test/integration')
-rw-r--r--activejob/test/integration/queuing_test.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activejob/test/integration/queuing_test.rb b/activejob/test/integration/queuing_test.rb
index e435ed4aa6..d8425c9706 100644
--- a/activejob/test/integration/queuing_test.rb
+++ b/activejob/test/integration/queuing_test.rb
@@ -78,7 +78,7 @@ class QueuingTest < ActiveSupport::TestCase
TestJob.perform_later @id
wait_for_jobs_to_finish_for(5.seconds)
assert job_executed
- assert_equal 'de', job_output
+ assert_equal 'de', job_executed_in_locale
ensure
I18n.available_locales = [:en]
I18n.locale = :en