diff options
author | Will Jessop <will@willj.net> | 2015-11-21 05:01:56 +0000 |
---|---|---|
committer | Will Jessop <will@willj.net> | 2015-11-23 14:24:49 +0000 |
commit | 171e788ccd508caad5389edfe04e304a0da344a1 (patch) | |
tree | feeb8e7d8bca174f9a8a35a7e8d2877a470ab531 /activejob/test/integration | |
parent | 4547e894e9f924221f1ec4ff8e71fa750bab3595 (diff) | |
download | rails-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.rb | 2 |
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 |