mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #6911 from abonec/master
Bug with FileUpdateChecker with wrong mtime
This commit is contained in:
commit
1abe31670f
2 changed files with 17 additions and 1 deletions
|
@ -101,7 +101,9 @@ module ActiveSupport
|
||||||
end
|
end
|
||||||
|
|
||||||
def updated_at(paths)
|
def updated_at(paths)
|
||||||
@updated_at || paths.map { |path| File.mtime(path) }.max || Time.at(0)
|
time_now = Time.now
|
||||||
|
@updated_at || paths.map { |path| File.mtime(path) }.
|
||||||
|
reject { |time| time > time_now }.max || Time.at(0)
|
||||||
end
|
end
|
||||||
|
|
||||||
def compile_glob(hash)
|
def compile_glob(hash)
|
||||||
|
|
|
@ -48,6 +48,20 @@ class FileUpdateCheckerWithEnumerableTest < ActiveSupport::TestCase
|
||||||
assert_equal 1, i
|
assert_equal 1, i
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_should_be_robust_to_handle_files_with_wrong_modified_time
|
||||||
|
i = 0
|
||||||
|
time = 1.year.from_now # wrong mtime from the future
|
||||||
|
File.utime time, time, FILES[2]
|
||||||
|
|
||||||
|
checker = ActiveSupport::FileUpdateChecker.new(FILES){ i += 1 }
|
||||||
|
|
||||||
|
sleep(0.1)
|
||||||
|
FileUtils.touch(FILES[0..1])
|
||||||
|
|
||||||
|
assert checker.execute_if_updated
|
||||||
|
assert_equal 1, i
|
||||||
|
end
|
||||||
|
|
||||||
def test_should_cache_updated_result_until_execute
|
def test_should_cache_updated_result_until_execute
|
||||||
i = 0
|
i = 0
|
||||||
checker = ActiveSupport::FileUpdateChecker.new(FILES){ i += 1 }
|
checker = ActiveSupport::FileUpdateChecker.new(FILES){ i += 1 }
|
||||||
|
|
Loading…
Reference in a new issue